Regression with Time-Series Data: Nonstationary Variables Chapter 2 Regression with Time-Series Data: Nonstationary Variables Dr. Woraphon Yamaka https://wyamaka.wordpress.com
Spurious Regression (การถดถอยที่ไม่แท้จริง) ปัญหานี้จะทำให้แบบจำลองเศรษฐมิติโดยเฉพาะแบบจำลองที่ใช้ข้อมูล Time series และ Panel เกิดการถดถอย ไม่แท้จริง กล่าวคือเราได้ผลการศึกษาที่มีระดับนัยสำคัญ ทั้งที่มันไม่ควรจะมีนัยสำคัญขึ้นจริง เช่น เราทำการหา ผลกระทบของการเจริญเติบโตของเส้นผลต่อการเปลี่ยนแปลงของ GDP และเมื่อเราประมาณแบบจำลองไปเราอาจ พบว่าการเจริญเติบโตของเส้นส่งผลต่อการเปลี่ยนแปลงของ GDP ซึ่งในทางทฤษฎีแล้วสองตัวแปรนี้ไม่น่าสัมพันธ์กัน การเกิดผลการประมาณแบบนี้แสดงว่าแบบจำลองที่เราทำการประมาณอาจเกิดปัญหา Spurious นั่นเอง สาเหตุหลักที่ทำให้เกิดปัญหาคือ ตัวแปรข้อมูลที่เราใช้ในแบบจำลองไม่มีลักษณะนิ่งนั่นเอง หรือข้อมูลที่เราเก็บมาไม่มี ลักษณะ Integrated zero หรือเรียกสั้นว่า I(0) ทำไมเราได้ผลความสัมพันธ์ที่มีระดับนัยสำคัญทั้งๆที่ ตัวแปรของเราไม่น่าจะสัมพันธ์กัน คำตอบคือ เมื่อเราประมาณ แบบจำลอง เราจะได้ค่า 𝛽 และ se(𝛽) ซึ่งเมื่อเราคำนวณค่า se(𝛽) ในแบบจำลองที่เป็น spurious เราจะได้ค่า se(𝛽) ที่ต่ำหรือสูงเกินไปกว่าที่ควรจะเป็น t-stat ก็เลยผิด การทดสอบระดับนัยสำคัญก็เลยผิดตาม วิธีการแก้ไขเบื้องต้นคือ เมื่อเราข้อมูลไม่มิ่งนิ่งก็ transform มันนิ่งก่อนแล้วค่อยนำไปประมาณในแบบจำลองต่อไป หรือเราอาจ transform โดยใช้วิธี first difference หรือ 𝛥 𝑦 𝑡 หรือทำให้ข้อมูลมีลักษณะ I(1) นั่นเอง
Spurious Regression (การถดถอยที่ไม่แท้จริง) Example สมมุติว่าแบบจำลองนี้ 𝑌 𝑡 และ 𝑋 𝑡 ไม่มีลักษณะไม่นิ่ง แสดงว่าเราอาจเดาได้ว่าแบบจำลองข้างต้นอาจมีปัญหา Spurious ขึ้น ดังนั้นเราต้องแก้โดยทำการแปลงข้อมูลให้นิ่ง ดังนี้ เลือกวิธีใดวิธีหนึ่งไปประมาณหาค่า 𝛽 โดยวิธี OLS ( อย่าลืมเอาตัวแปรที่เราแปลงไปเช็ค Unit root test ก่อน) 𝑌 𝑡 = 𝑋 𝑡 𝛽+ 𝑢 𝑡 ln 𝑌 𝑡 =ln 𝑋 𝑡 𝛽+ 𝑢 𝑡 −→วิธีที่ 1 𝛥 𝑌 𝑡 =𝛥 𝑋 𝑡 𝛽+ 𝑢 𝑡 −→วิธีที่ 2 𝛥ln 𝑌 𝑡 =𝛥ln 𝑋 𝑡 𝛽+ 𝑢 𝑡 −→วิธีที่ 3
Spurious Regression (การถดถอยที่ไม่แท้จริง) ถ้าเราไม่อยากแปลงข้อมูล เนื่องจากกลัวแปลผลยาก เราจะทำอย่างไร? คำตอบ เราสามารถประมาณผลตามปกติได้ ถ้าเราพบว่าแบบจำลองของเรามีลักษณะที่เรียกว่า Cointegration หรือก็คือ มีลักษณะ Long run relationship นั่นเอง Cointegration คืออะไร คำตอบ คือภาวะทีถึงแม้ว่าตัวแปรข้อมูลมีลักษณะไม่นิ่ง เช่น X และ Y ไม่เป็น I(0) แต่ทั้งสองตัวแปรยังมีความสัมพันธ์ระยะยาว เนื่องจากมีกลไกบางอย่างในการปรับตัวในระยะสั้น ทำให้ในระยะยาวแล้ว X และ Y สัมพันธ์กัน ตัวอย่าง GDP และ Consumption เรารู้ว่ามีความสัมพันธ์กันแน่นอน สมมุติเราไม่รู้อะไรเลยและทำการเก็บข้อมูล 10 ปี เราพบว่า GDP และ Consumption ไม่นิ่งเลย ทำให้เราหาความสัมพันธ์ได้ยาก ในปี 1-2 ที่เราทำการเก็บข้อมูล แต่เราพบว่าปีที่ 3 เป็นต้นไป เริ่มมีการเคลื่อนไหวที่สัมพันธ์กันมากขึ้น เราจะเรียกช่วงนี้กว่าช่วงการปรับตัวในระยะสั้น และเริ่มกลับมามีความสัมพันธ์อีกในปีที่ 4-10 ดังนั้นเราจะเห็นว่ามีช่วงของการปรับตัวอยู่ ซึ่งช่วงระยะสั้นในปีที่ 3 เราเรียกว่าการปรับตัวระยะสั้น (Short run adjustment) การปรับตัวในปีที่ 3 อาจเกิดมาจากหลายสาเหตุ เช่น การแทรกแซงของรัฐบาล เป็นต้น
คุณสมบัติ Cointegration Some rules on linear combinations of I(0) and I(1) processes Definition
การทดสอบ Cointegration Engle and Granger (1987) ทำการตรวจสอบว่า 𝑋 𝑡 และ 𝑌 𝑡 เป็น integration order อะไรโดยใช้ ADF test - ถ้าพบว่าตัวแปรอย่างน้อยหนึ่งตัวไม่มีลักษณะนิ่งที่ I(0) เราจะต้องทำการทดสอบ Cointegration - ถ้าพบว่าตัวแปรทุกตัวมีลักษณะนิ่งที่ I(0) เราไม่ต้องทำการทดสอบแล้วเราประมาณแบบจำลองต่อไปได้เลย 2. ทดสอบ Cointegration ระหว่าง 𝑋 𝑡 และ 𝑌 𝑡 .ทำได้ดังนี้ Step 1 : ประมาณแบบจำลอง Step 2 : หาค่า error 𝑢 𝑡 =𝑌 𝑡 𝛼 ⌢ + 𝛽 ⌢ 𝑋 𝑡 Step 3 : check ความนิ่งของ error โดย ADF test
การทดสอบ Cointegration Engle and Granger (1987) Augmented DICKEY–FULLER TEST กรณีไม่มีค่าคงที่และค่าแนวโน้ม กรณีมีค่าคงที่และไม่มีค่าแนวโน้มเวลา กรณีมีค่าคงที่และมีค่าแนวโน้มเวลา
การทดสอบภายใต้ DICKEY–FULLER TEST การทดสอบ Cointegration Engle and Granger (1987) Step 4 : ทดสอบสมมุติฐาน การทดสอบภายใต้ DICKEY–FULLER TEST ในกรณีเราจะดูว่า ค่า 𝛾 =0 หรือไม่ ดังนั้นเราจะตั้งสมมุติฐานได้ว่า
การทดสอบ Cointegration Engle and Granger (1987) Warning: ในการทดสอบความนิ่งโดย ADF test เราจะไม่ใช้ตารางสถิติ critical value แบบปกติทั่วไปหรือของ ADF แต่เราจะใช้ของ Engle-Granger (1989) หรือ McKinnon (1990) แทน
Error Correction Model(ECM) ถ้า 𝑋 𝑡 , 𝑌 𝑡 มีลักษณะ cointegration ดังนั้นเราจะเราสามารถประมาณแบบจำลองปกติได้เลยเนื่องจากไม่เกิด Spurious ในแบบจำลองของเรา คำถามต่อมาคือ เราแบบจำลองของเรามีความสัมพันธ์ระยะยาวหรือ cointegration ได้อย่างไร คำตอบคือ มันมีการปรับตัวในระยะสั้น นั่นเอง และเราสามารถวิเคราะห์การปรับตัวระยะสั้นได้ โดยใช้ ECM ซึ่งมี ลักษณะดังนี้ พูดง่ายๆ ก็คือ เมื่อ Y เบ้ออกจากความสัมพันธ์ระยะยาวกับ X ECM จะทำหน้าที่ดึงตัวแปร Y กลับเข้ามาสัมพันธ์กับ X เหมือนเดิม ค่า 𝜌 มีความสำคัญมากในแบบจำลองนี้ เนื่องจากแสดงว่า ECM ทำหน้าที่ในการในการดึงเข้า Y ให้เข้าที่ เข้าทางได้เร็วแค่ไหน ซึ่งค่าที่เหมาะสมคือ -1< 𝜌<0 เราเรียกค่าๆ นี้ว่า speed of adjustment
Geometric ของ Error Correction Model การทำงานของ ECM Short-run dynamics: การปรับตัวใน short run โดย ECM จะทำให้เกิดความสัมพันธ์ระหว่าง X ต่อ Y ในดุลยภาพระยะยาว (Long-run equilibrium)
การใช้โปรแกรมทางเศรษฐมิติ R program Eviews
R code: Spurious regression # Simulate Y and X T <- 1000 set.seed(1357) y <- ts(rep(0,T)) vy <- ts(rnorm(T)) for (t in 2:T){ y[t] <- y[t-1]+vy[t] } set.seed(4365) x <- ts(rep(0,T)) vx <- ts(rnorm(T)) x[t] <- x[t-1]+vx[t] y <- ts(y) x <- ts(x) ts.plot(y,x, ylab="y and x")
Plot Result
R code: Spurious regression ## Run regression with spurious regression model=lm(y~x) summary(model)
R code: Test Cointegration # Step 1 : ทำการประมาณแบบจำลองที่มีลักษณะ spurious regression model=lm(y~x) # Step 2 : หา error จากแบบจำลอง regression res=residuals(model) # Step 3 : เช็คความนิ่งของ error โดยใช้ Package urca library(urca) test1=ur.df(res,type="none",selectlags = c("AIC")) test2=ur.df(res,type="drift",selectlags = c("AIC")) test3=ur.df(res,type="trend",selectlags = c("AIC"))
R code: Test Cointegration and ECM model ตัวอย่างการประมาณแบบจำลองที่มีลักษณะ Cointegration ในตัวอย่างนี้ เราจะศึกษาผลกระทบของ การบริโภค (Consumption) ต่อ รายได้ (Income) โดยข้อมูลเอามาจาก usdata.csv # import example data data=read.csv(file.choose(),head=TRUE) attach(data) LR=lm(LY~LC ) summary(LR) ecm=residuals(LR) test1=ur.df(ecm,type="none",selectlags = c("AIC")) test2=ur.df(ecm,type="drift",selectlags = c("AIC")) test3=ur.df(ecm,type="trend",selectlags = c("AIC")) summary(test1)
ตัวอย่างผลของการทดสอบความนิ่งของ error (กรณี no intercept and Trend)
R code: Test Cointegration and ECM model # ECM model n=length(LY) dLY=c(0,diff(LY)) dLC=c(0,diff(LC)) ecm1=c(0,ecm)[1:n] SR=lm(dLY~dLC+ecm1) summary(SR)
ผลการประมาณ ECM
Eview : ECM (STEP 1 นำข้อมูลเข้า) ตัวแปร LC และ LY
Eview : ECM (STEP 2 Unit root test)
Eview : ECM (STEP 3 ประมาณ Long run regression)
Eview : ECM (STEP 3 ประมาณ Long run regression)
Eview : ECM (STEP 4 Test cointegration)
Eview : ECM (STEP 4 Test cointegration)
Eview : ECM (STEP 4 Test cointegration)
Eview : ECM (STEP 4 Test cointegration) Check Unit root test ของ ค่า ECM
Eview : ECM (STEP 5 Run ECM ) Run regression นั่นเอง
Eview : ผลการประมาณการปรับตัวระยะสั้น ECM
แบบฝึกหัด บทที่ 2 (ทฤษฎี) 1. ECM และ Cointegration มีความเกี่ยวพันกันอย่างไร 2. สมการ Regression และสมการ ECM เหมือนหรือแตกต่างกันอย่างไร 3. ถ้าเราพบว่า ตัวแปร Y มีลักษณะ I(0) และ 𝑋 1 และ 𝑋 2 นิ่งที่ 𝐼 1 และ 𝑋 3 มีลักษณะนิ่งที่ 𝐼 2 เมื่อพบสถาณการณ์แบบนี้ นักศึกษาจะทำการประมาณอย่างไรต่อไป จงอธิบายความเป็นไปได้ทั้งหมด ที่ จะทำได้ และให้เหตุผลประกอบคำอธิบาย 4. ถ้าเราอยากทราบว่า การปรับตัวในระยะสั้นของความสัมพันธ์ระหว่าง X และ Y เราจะตรวจสอบได้ อย่างไร
แบบฝึกหัด บทที่ 2 (Code) จงทำการประมาณสมการ โดยใช้ข้อมูลจาก UStreasury10.xlsx ถ้าเราต้องการศึกษาว่า ผลตอบแทนของตั๋วเงินคลังอายุ 3 เดือน (𝑇𝐵3) มีผลต่อผลตอบแทนของพันธบัตร รัฐบาล (𝐺𝑆10) หรือไม่ อย่างไร จงแสดงผลการศึกษาพร้อมกับขั้นตอนในการศึกษา โดยละเอียด ถ้าเราต้องการศึกษาว่า ถ้าตั๋วเงินคลังอายุ 3 เดือน (𝑇𝐵3) เปลี่ยนแปลงไป 1 % จะมีผลกระทบพันธบัตร รัฐบาล (𝐺𝑆10) หรือไม่ อย่างไร จงแสดงผลการศึกษาพร้อมกับขั้นตอนในการศึกษา โดยละเอียด หมายเหตุ นักศึกษาสามารถใช้ Eview หรือ R code อย่างใดอย่างหนึ่งก็ได้ และแสดงผลการประมาณ พร้อม อธิบายพอสังเขป