เส้นโค้งสามารถใช้ในการทำนายได้หรือไม่?


20

ฉันไม่สามารถระบุลักษณะของข้อมูลตามที่เป็นกรรมสิทธิ์ได้ แต่สมมติว่าเรามีข้อมูลเช่นนี้: ในแต่ละเดือนบางคนสมัครใช้บริการ จากนั้นในแต่ละเดือนถัดมาผู้คนเหล่านั้นอาจอัปเกรดบริการหยุดบริการหรือถูกปฏิเสธการบริการ (เช่นการไม่ชำระเงิน) สำหรับกลุ่มแรกสุดในข้อมูลของเราเรามีข้อมูลประมาณ 2 ปี (24 เดือน)

จำนวนคนที่เข้าร่วมในแต่ละเดือนนั้นมีมาก (ในช่วง 100,000) และจำนวนที่ทำในสามสิ่งนั้นอยู่ในหลักพัน อย่างไรก็ตามเราไม่ได้ใช้ข้อมูลระดับบุคคล (ซึ่งจะเป็นล้านแถว) แต่ข้อมูลจะถูกรวบรวมตามเดือนและรุ่น (สัดส่วนของกลุ่มแต่ละรุ่นจะทำในแต่ละเดือน)

เราได้รับการสร้างแบบจำลองข้อมูลที่มีอยู่โดยใช้เส้นโค้งการถดถอยแบบปรับตัวหลายตัวแปร (MARS) และค้นหาผลลัพธ์ที่น่าสนใจ อย่างไรก็ตามฉันกังวลเกี่ยวกับการใช้สิ่งเหล่านี้เพื่อคาดการณ์หรือทำนายอนาคต ความกังวลของฉันเป็นเพราะการคาดการณ์ในอนาคตจำเป็นต้องอยู่นอกพื้นที่ตัวอย่าง (ในแง่ของเวลา) และเส้นโค้งอาจไม่เสถียรสำหรับการคาดการณ์

นี่เป็นวิธีที่ถูกต้องหรือไม่? มีข้อกังวลอะไรบ้างและพวกเขาจะได้รับการจัดการอย่างไร


2
แน่นอนว่ามันสามารถใช้ในการทำนายได้ แต่คุณจะต้องใส่ใจกับวิธีการปรับพารามิเตอร์แบบจำลองให้เหมาะสม ทางเลือกของฟังก์ชั่นอิสระ (คงที่, เชิงเส้น, ลูกบาศก์) นอกจากนี้ยังมีความกังวลที่สำคัญ IIRC, ฟังก์ชั่นเชิงเส้นเชิงเส้นใน MARS มักจะถูกนำมาใช้และเส้นโค้งลำดับสูงกว่าหลีกเลี่ยงความกังวลสำหรับการคาดการณ์ / การใส่เกิน
Sycorax พูดว่า Reinstate Monica

1
มีบางสิ่งที่คุณกังวลเป็นพิเศษหรือไม่ซึ่งจะทำให้คุณสงสัยวิธีการที่คุณใช้ ความแม่นยำของคุณดูเหมือนต่ำอย่างไม่คาดคิดหรือเป็นอย่างนั้น? คุณลองวิธีอื่นแล้วหรือยัง พวกเขาเปรียบเทียบได้อย่างไร
one_observation

1
@Sophologist ส่วนใหญ่ว่าพวกเขาจะจบลงด้วยการปิดค่าใหม่เพราะ knots และบรรทัดทั้งหมดขึ้นอยู่กับค่าที่อยู่ในอดีต ดังนั้นเส้นโค้งเชิงเส้นที่ระบุว่า "เพิ่มขึ้น XXX สำหรับทุก ๆ ปีหลังจากปี 2014" จะขึ้นอยู่กับข้อมูลปี 2015 เท่านั้น แต่หากนำไปใช้กับ 2016 จะดำเนินต่อไปในทิศทางเดียวกัน
Peter Flom - Reinstate Monica

3
@ PeterFlom: จริง ๆ แล้วฉันสับสนมากเกี่ยวกับคำถามของคุณ (เส้นโค้งเป็นเรื่องธรรมดามากสำหรับการทำนาย) จนกว่าฉันจะอ่านคำตอบของคุณกับ Sophologist ฉันแก้ไขคำถามของคุณเพื่อช่วยเน้นสิ่งที่ฉันคิดว่ากังวลของคุณคือ กรุณาตรวจสอบ
หน้าผา AB

2
@PeterFlom: สมมติว่าการแก้ไขของฉันถูกต้องคุณเป็นแบบจำลองผลกระทบของเวลาด้วย spline หรือไม่? ถ้าเป็นเช่นนั้นฉันจะค่อนข้างกังวล อย่างไรก็ตามหากคุณกำลังสร้างแบบจำลองผลกระทบของเวลาด้วยเอฟเฟกต์ล่าช้าและค่าแปรปรวนร่วมอื่น ๆ ที่มีเส้นโค้งฉันจะไม่เห็นปัญหาใด ๆ
หน้าผา AB

คำตอบ:


15

จากการตีความคำถามของฉันคำถามพื้นฐานที่คุณถามคือคุณสามารถจำลองเวลาเป็นเส้นโค้งหรือไม่

คำถามแรกที่ฉันจะพยายามตอบคือคุณสามารถใช้ splines เพื่อคาดการณ์ข้อมูลของคุณได้หรือไม่ คำตอบสั้น ๆ ก็คือมันขึ้นอยู่กับว่า แต่ส่วนใหญ่แล้วเส้นโค้งนั้นไม่เหมาะสำหรับการคาดการณ์ Splines นั้นเป็นวิธีการแก้ไขที่สำคัญโดยแบ่งพาร์ติชั่นพื้นที่ที่ข้อมูลของคุณอยู่และแต่ละพาร์ติชั่นจะพอดีกับ regressor อย่างง่าย ลองมาดูวิธีการของ MARS กัน วิธีการ MARS ถูกกำหนดให้เป็น โดยที่เป็นค่าคงที่ที่คำว่า i ในรูปแบบ MARS ,เป็นฟังก์ชันฐานที่คำ i'th และ

^(x)=Σผม=1nαผมBผม(x[ผม])
αผมBผมx[ผม]แสดงให้เห็นถึงคุณสมบัติที่เลือกจากเวกเตอร์คุณสมบัติของคุณในระยะที่ฉัน ฟังก์ชันพื้นฐานอาจเป็นค่าคงที่หรืออาจเป็นฟังก์ชันบานพับ (rectifier) ฟังก์ชั่นบานพับเป็นเพียง สิ่งที่ฟังก์ชั่นบานพับบังคับให้แบบจำลองคือการสร้างฟังก์ชั่นเชิงเส้นเป็นชิ้น ๆ (เป็นที่น่าสนใจที่จะทราบว่าเครือข่ายประสาทที่มี ถูกมองว่าเป็นรุ่น superset ของโมเดล MARS)
ม.ax(0,x[ผม]+ผม)

ดังนั้นเพื่อกลับไปที่คำถามที่ว่าทำไม splines จึงไม่ค่อยดีนักสำหรับการคาดการณ์คือเมื่อรู้ว่าจุดที่คุณต้องการใช้การคาดการณ์เริ่มที่จะโกหกผ่านขอบเขตของการแก้ไขเพียงส่วนเล็ก ๆ ของแบบจำลองของคุณจะถูก "เปิดใช้งาน" หรือส่วนใหญ่ของมันจะถูก "เปิดใช้งาน" และดังนั้นพลังของแบบจำลองจะหายไป (เนื่องจากการขาดการเปลี่ยนแปลง) เพื่อให้ได้นิด ๆ หน่อย ๆ สัญชาตญาณเพิ่มเติมเกี่ยวกับเรื่องนี้ให้เราหลอกว่าเรากำลังพยายามที่จะพอดีกับรูปแบบ MARS พื้นที่คุณลักษณะนอนอยู่ใน{R} เมื่อได้ตัวเลขหนึ่งมาเราจึงพยายามทำนายตัวเลขอีกตัว รูปแบบ MARS เกิดขึ้นพร้อมกับฟังก์ชั่นที่มีลักษณะดังนี้: หากการคาดการณ์เกิดขึ้นเกินจำนวนR

^(x)=5+ม.ax(0,x-5)+2ม.ax(0,x-10)

10ตอนนี้ฟังก์ชั่นนี้จะกลายเป็น แบบจำลอง MARS ที่เราเคยทำก่อนหน้านี้จะลดลงเป็นฟังก์ชันเชิงเส้นเดียวดังนั้นพลังของแบบจำลอง MARS จะหายไป (นี่คือ กรณีของคำส่วนใหญ่ "เปิดใช้งาน") สิ่งเดียวที่จะเกิดขึ้นสำหรับการคาดการณ์ก่อนจำนวน5ผลลัพธ์ของโมเดล MARS จะเป็นค่าคงที่ นี่คือเหตุผลที่เวลาส่วนใหญ่เส้นโค้งไม่เหมาะสำหรับการคาดการณ์ สิ่งนี้ยังอธิบายถึงปัญหาที่คุณกล่าวถึงในความคิดเห็นของโพสต์ของคุณเกี่ยวกับการคาดการณ์ที่คาดการณ์ว่า "ไม่ดีสำหรับค่าใหม่" และพวกเขามีแนวโน้มที่จะ "ดำเนินการต่อในทิศทางเดียวกัน" สำหรับอนุกรมเวลาต่างๆ
^(x)=10+2(x-10)=2x-10
5

ตอนนี้ให้กลับไปซีรีส์เวลา อนุกรมเวลาเป็นกรณีพิเศษในการเรียนรู้ของเครื่อง พวกเขามีแนวโน้มที่จะมีโครงสร้างเล็กน้อยไม่ว่าจะเป็นบางส่วนในความแปรปรวนหรือหนึ่งในโครงสร้างย่อยหลายประเภทและโครงสร้างนี้สามารถใช้ประโยชน์ได้ แต่จำเป็นต้องใช้อัลกอริทึมพิเศษที่สามารถใช้ประโยชน์จากโครงสร้างนี้ได้โชคไม่ดีที่ splines ไม่ทำสิ่งนี้

มีสองสามสิ่งที่ฉันอยากจะแนะนำให้คุณลอง คนแรกจะเป็นเครือข่ายที่ผิดปกติ หากอนุกรมเวลาของคุณไม่ยาว (และไม่มีการขึ้นต่อกันในระยะยาว) คุณควรจะสามารถหนีไปได้ด้วยการใช้เครือข่ายวานิลลาซ้ำ ๆ หากคุณต้องการที่จะเข้าใจสิ่งที่เกิดขึ้นคุณสามารถใช้หน่วยเชิงเส้นที่แก้ไขด้วยอคติเป็นฟังก์ชั่นการเปิดใช้งานและนั่นจะเทียบเท่ากับการทำแบบจำลอง MARS บนเซตย่อยของไทม์เซ็ตและ "หน่วยความจำ" ที่เครือข่ายประสาทกำเริบ ถือ มันยากที่จะตีความว่าหน่วยความจำได้รับการจัดการโดยเน็ต แต่คุณควรเข้าใจว่าการจัดการพื้นที่ย่อยนั้นเกี่ยวข้องกับฟังก์ชั่นเชิงเส้นที่ถูกสร้างขึ้น นอกจากนี้หากคุณมีคุณสมบัติคงที่ที่ไม่ได้เป็นของอนุกรมเวลามันค่อนข้างง่ายที่จะยังคงใช้พวกเขาในเน็ต

หากอนุกรมเวลาที่คุณมีนั้นยาวมากและอาจมีการพึ่งพาระยะยาวฉันแนะนำให้ใช้หนึ่งในเครือข่ายที่เกิดขึ้นซ้ำ gated เช่น GRU หรือ LSTM

ในด้านคลาสสิกของการจำแนกอนุกรมเวลาคุณสามารถใช้โมเดลมาร์คอฟที่ซ่อนอยู่ได้ ฉันจะไม่เข้าไปเพิ่มเติมในสิ่งเหล่านี้เพราะฉันไม่คุ้นเคยกับพวกเขา

โดยสรุปฉันจะไม่แนะนำให้ใช้ Splines ด้วยเหตุผลสองประการ ข้อแรกมันไม่สามารถจัดการกับปัญหาการคาดการณ์ที่ซับซ้อนซึ่งดูเหมือนจะเป็นปัญหาที่คุณกำลังอธิบาย และสองเส้นโค้งไม่ใช้โครงสร้างย่อยของอนุกรมเวลาซึ่งมีประสิทธิภาพมากในการจำแนกอนุกรมเวลา

หวังว่านี่จะช่วยได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.