การพยากรณ์อนุกรมเวลาหลายตัวแปรพร้อมชุดข้อมูล 3 เดือน


12

ฉันมีข้อมูล 3 เดือน (แต่ละแถวสอดคล้องกับในแต่ละวัน) ที่สร้างขึ้นและฉันต้องการทำการวิเคราะห์อนุกรมเวลาหลายตัวแปรในลักษณะเดียวกัน:

คอลัมน์ที่มีอยู่คือ -

Date    Capacity_booked Total_Bookings  Total_Searches  %Variation

Each Date มี 1 รายการในชุดข้อมูลและมีข้อมูล 3 เดือนและฉันต้องการให้พอดีกับตัวแบบอนุกรมหลายตัวแปรเพื่อคาดการณ์ตัวแปรอื่น ๆ เช่นกัน

จนถึงตอนนี้เป็นความพยายามของฉันและฉันพยายามที่จะบรรลุเดียวกันโดยการอ่านบทความ

ฉันทำเช่นเดียวกัน -

df['Date'] = pd.to_datetime(Date , format = '%d/%m/%Y')

data = df.drop(['Date'], axis=1)

data.index = df.Date

from statsmodels.tsa.vector_ar.vecm import coint_johansen
johan_test_temp = data
coint_johansen(johan_test_temp,-1,1).eig



#creating the train and validation set
train = data[:int(0.8*(len(data)))]
valid = data[int(0.8*(len(data))):]

freq=train.index.inferred_freq

from statsmodels.tsa.vector_ar.var_model import VAR

model = VAR(endog=train,freq=train.index.inferred_freq)
model_fit = model.fit()


# make prediction on validation
prediction = model_fit.forecast(model_fit.data, steps=len(valid))

cols = data.columns

pred = pd.DataFrame(index=range(0,len(prediction)),columns=[cols])
    for j in range(0,4):
        for i in range(0, len(prediction)):
           pred.iloc[i][j] = prediction[i][j]

ฉันมีชุดการตรวจสอบและการทำนาย อย่างไรก็ตามการคาดการณ์นั้นแย่กว่าที่คาดการณ์ไว้

แปลงของชุดข้อมูลคือ - 1% การเปลี่ยนแปลง ป้อนคำอธิบายรูปภาพที่นี่

  1. Capacity_Booked ป้อนคำอธิบายรูปภาพที่นี่

  2. การจองและการค้นหาทั้งหมด ป้อนคำอธิบายรูปภาพที่นี่

ผลลัพธ์ที่ฉันได้รับคือ -

ทำนาย dataframe -

ป้อนคำอธิบายรูปภาพที่นี่

การตรวจสอบความถูกต้องของข้อมูล -

ป้อนคำอธิบายรูปภาพที่นี่

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

แก้ไข

ลิงก์ไปยังชุดข้อมูล - ชุดข้อมูล

ขอบคุณ


คุณสามารถโพสต์ std ของชั้นเรียนได้
Swarathesh Addanki

@SwaratheshAddanki ฉันได้เพิ่มลิงก์ไปยังชุดข้อมูลในคำถาม ... คุณสามารถดูได้
dper

คุณสามารถลองใช้อัลกอริทึมการเรียนรู้ของเครื่องคลาสสิกโดยใช้คุณสมบัติ "ทำที่บ้าน" ตัวอย่างเช่นคุณสามารถลองฝึก perceptron หรือ SVM หรือ Random Forest สำหรับวันเดียวโดยใช้ช่วง 7 วันที่ผ่านมา (ทำหนึ่งแถวด้วยคุณสมบัติ 4 * 7) นอกจากนี้คุณยังสามารถคำนึงถึงวันเดียวกันของสัปดาห์ที่แล้ว (วันพุธหากคุณต้องการทำนายวันพุธ) และค่าเฉลี่ยของทุกวันพุธของเดือนที่แล้ว นอกจากนี้ใช้การตรวจสอบความถูกต้องแบบไขว้เพื่อให้ได้การวัดประสิทธิภาพที่สมจริงยิ่งขึ้น
politinsa

@politinsa คุณช่วยยกตัวอย่างให้เหมือนกันได้ไหม?
dper

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

คำตอบ:


1

วิธีหนึ่งในการปรับปรุงความแม่นยำของคุณคือดูที่ความสัมพันธ์อัตโนมัติของแต่ละตัวแปรตามที่แนะนำในหน้าเอกสาร VAR:

https://www.statsmodels.org/dev/vector_ar.html

ค่าความสัมพันธ์อัตโนมัติที่ใหญ่กว่าสำหรับความล่าช้าที่เฉพาะเจาะจงความล่าช้านี้มีประโยชน์มากขึ้นสำหรับกระบวนการ

ความคิดที่ดีอีกข้อหนึ่งคือมองไปที่เกณฑ์ AIC และเกณฑ์ BIC เพื่อยืนยันความถูกต้องของคุณ (ลิงก์เดียวกันด้านบนมีตัวอย่างการใช้งาน) ค่าที่น้อยลงบ่งชี้ว่ามีความน่าจะเป็นที่ยิ่งใหญ่กว่าที่คุณได้พบตัวประมาณที่แท้จริง

ด้วยวิธีนี้คุณสามารถเปลี่ยนลำดับของโมเดลการตอบโต้อัตโนมัติของคุณและดูลำดับที่ให้ AIC และ BIC ที่ต่ำที่สุดซึ่งทั้งคู่วิเคราะห์ร่วมกัน หาก AIC บ่งชี้ว่าแบบจำลองที่ดีที่สุดคือด้วยความล่าช้า 3 และ BIC ระบุว่าแบบจำลองที่ดีที่สุดมีความล่าช้า 5 คุณควรวิเคราะห์ค่าของ 3,4 และ 5 เพื่อดูแบบที่มีผลลัพธ์ที่ดีที่สุด

สถานการณ์ที่ดีที่สุดคือการมีข้อมูลมากขึ้น (เนื่องจาก 3 เดือนไม่มาก) แต่คุณสามารถลองวิธีการเหล่านี้เพื่อดูว่ามันช่วยได้หรือไม่

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