สอนทำ Heteroskedasticity and Autocorrelation Consistent ใน Excel

Tutorial for HAC (Newey–West estimator) using Excel

Sasiwut Chaiyadecha
4 min readDec 21, 2022
Newey–West estimator statistics econometrics covariance matrix regression analysis linear regression assumptions Whitney K. Newey Kenneth D. West autocorrelation serial correlation error terms time series data heteroskedasticity and autocorrelation consistent HAC estimators consistent estimator least squares residuals ordinary least squares OLS python statsmodels excel tutorial

จากตอนก่อนหน้านี้ได้รู้เกี่ยวกับการกับ HAC หรือ Heteroskedasticity and Autocorrelation Consistent ด้วย Newey–West estimator ทั้งในเรื่องของการนำไปใช้งาน พร้อมกับการใช้ Library ใน Python ในการทำ Analysis กันไปแล้ว

สำหรับเนื้อหาของ Blog ตอนนี้ยังคงเรื่องเดิม แต่ขอเปลี่ยนเป็น Tool ที่ใช้งานกันเป็นส่วนมากอย่าง Microsoft Excel เพื่อในใช้การแก้ไขปัญหา Autocorrelation ด้วย HAC Adjustment แบบ Step by step

Dataset

เริ่มต้นที่ Dataset ใช้เป็นข้อมูลเดิม ๆ เหมือนตอนก่อนหน้านี้ เพื่อให้สามารถเปรียบเทียบตัวเลขกันได้อย่างถูกต้อง แต่สิ่งที่อยากให้เพิ่มเติมเข้ามาคือ Intercept หรือค่าคงที่ที่อยู่ใน Regression model ถ้าใช้เป็น Python library อยากมีคำสั่ง add_constant() อยู่แล้ว แต่ใน Tutorial นี้ต้องเพิ่มเป็นอีก 1 Column เพราะมีผลในการทำ HAC Adjustment ที่กำลังจะพูดถึงใน Step ถัดไป

Newey–West estimator statistics econometrics covariance matrix regression analysis linear regression assumptions Whitney K. Newey Kenneth D. West autocorrelation serial correlation error terms time series data heteroskedasticity and autocorrelation consistent HAC estimators consistent estimator least squares residuals ordinary least squares OLS python statsmodels excel tutorial
ใส่เป็นค่า Constant เลข 1 ตลอดทั้ง Column

Regression analysis

เริ่มต้นให้สร้างเป็น Linear regression model ด้วย Excel สามารถทำได้ด้วยการไปที่ Tap Data → Data Analysis เลือกเป็น Regression จากนั้นให้ใส่ Input Y Range เป็น Column logitODR และ Input X Range เป็น Intercept, GDP_C_lg12, MPI_C_lg12 ที่ Residualห้ติ๊กที่เครื่องหมายถูก เพื่อให้ Excel return ค่า Residual หรือ Error ออกมาด้วย

Newey–West estimator statistics econometrics covariance matrix regression analysis linear regression assumptions Whitney K. Newey Kenneth D. West autocorrelation serial correlation error terms time series data heteroskedasticity and autocorrelation consistent HAC estimators consistent estimator least squares residuals ordinary least squares OLS python statsmodels excel tutorial
ตัวอย่าง Model residuals ที่ได้จากผลต่างระหว่าง Actual logitODR และ Predict logitODR

ต่อมาเป็นการสร้าง Parameters ที่เกี่ยวข้องในการทำ HAC Adjustment:

  • T คือจำนวน Observation ทั้งหมดที่อยู่ใน Regression model จากตัวอย่างนี้คือจำนวนเดือนทั้งหมด 59 เดือน หรือ 59 Observation potins
  • k คือจำนวน Explainable variables หรือตัวแปร X ทั้งหมดที่รวม Intercept หรือค่าคงที่ด้วย
  • df คือ Degrees of freedom หาได้จาก T-k = 59–3 = 56
  • error คือ Standard error หาได้จาก Square root ของ Sum of square error ทั้งหมดหารด้วย Degrees of freedom ได้ค่าออกมาประมาณ 4.50%
Newey–West estimator statistics econometrics covariance matrix regression analysis linear regression assumptions Whitney K. Newey Kenneth D. West autocorrelation serial correlation error terms time series data heteroskedasticity and autocorrelation consistent HAC estimators consistent estimator least squares residuals ordinary least squares OLS python statsmodels excel tutorial
สูตรสำหรับการหา Optimal lags ใน HAC Adjustment
  • lags คือจำนวน Lags ของ Error ที่ต้องการใช้ใน HAC Adjustment model ซึ่งสามารถใช้สูตร Optimal lags ที่เคยเขียนไว้ในตอนที่แล้ว โดยเมื่อแทนค่าจากสูตรได้ค่าออกมาที่ 3
Newey–West estimator statistics econometrics covariance matrix regression analysis linear regression assumptions Whitney K. Newey Kenneth D. West autocorrelation serial correlation error terms time series data heteroskedasticity and autocorrelation consistent HAC estimators consistent estimator least squares residuals ordinary least squares OLS python statsmodels excel tutorial
Parameters ทั้งหมดที่ได้จากการคำนวณตามที่อธิบายไว้ด้านบน

ขั้นตอนมาคือการสร้าง Covariance matrix (e(i)*e(j)) ที่เกิดจาก Model residual เกิดเป็น Symmetric matrix ขนาด TxT ตามจำนวนของ Observation ในโมเดล สามารถสร้างได้จาก Columns residual x Row residual เขียนเป็นสูตร Excel ได้เหมือนด้านล่าง

=MMULT(residual, TRANSPOSE(residual))
Newey–West estimator statistics econometrics covariance matrix regression analysis linear regression assumptions Whitney K. Newey Kenneth D. West autocorrelation serial correlation error terms time series data heteroskedasticity and autocorrelation consistent HAC estimators consistent estimator least squares residuals ordinary least squares OLS python statsmodels excel tutorial
Residual covariance matrix ที่ได้จากสูตรด้านบน

สิ่งที่แตกต่างระหว่าง OLS และ HAC (Newey–West estimator) คือ Covariance matrix ของ Independence variables โดยที่สูตร Covariance matrix ของ OLS คือ

Newey–West estimator statistics econometrics covariance matrix regression analysis linear regression assumptions Whitney K. Newey Kenneth D. West autocorrelation serial correlation error terms time series data heteroskedasticity and autocorrelation consistent HAC estimators consistent estimator least squares residuals ordinary least squares OLS python statsmodels excel tutorial

แต่เมื่อเป็น HAC (Newey–West estimator) สูตร Covariance matrix คือ

Newey–West estimator statistics econometrics covariance matrix regression analysis linear regression assumptions Whitney K. Newey Kenneth D. West autocorrelation serial correlation error terms time series data heteroskedasticity and autocorrelation consistent HAC estimators consistent estimator least squares residuals ordinary least squares OLS python statsmodels excel tutorial

การที่จะหา Covariance matrix ใหม่ได้ ยังขาดตัวแปร W ที่จำเป็นต้องคำนวณขึ้นมาใหม่จาก Covariance matrix ของ Model residual โดยที่สูตรในการคำนวณคือ

Newey–West estimator statistics econometrics covariance matrix regression analysis linear regression assumptions Whitney K. Newey Kenneth D. West autocorrelation serial correlation error terms time series data heteroskedasticity and autocorrelation consistent HAC estimators consistent estimator least squares residuals ordinary least squares OLS python statsmodels excel tutorial

สังเกตว่าใช้เป็น w ตัวเล็ก เพราะการสร้าง Covariance matrix (W) มีการใช้จำนวน Lags เข้ามาเกี่ยวข้อง โดยเมื่อจำนวน Lags เปลี่ยนไป Covariance matrix (W) ที่ได้ก็มีค่าเปลี่ยนไปเช่นกัน สามารถเขียนสูตร Excel ได้เหมือนด้านล่าง

=IF(ABS(i-j)>lags, 0, Error Covariance matrix*(1-ABS(i-j)/(lags+1)))
Newey–West estimator statistics econometrics covariance matrix regression analysis linear regression assumptions Whitney K. Newey Kenneth D. West autocorrelation serial correlation error terms time series data heteroskedasticity and autocorrelation consistent HAC estimators consistent estimator least squares residuals ordinary least squares OLS python statsmodels excel tutorial
ตัวอย่างการใช้ Lags = 3 ในการสร้าง Covariance matrix (W)

ผลลัพธ์ที่ได้คือ Covariance matrix (W) โดยที่ Cell ที่มีค่ามากกว่า Lags ที่ใช้งาน เลื่อนไปทางขวาและด้านล่างของ Diagonal มีค่าเป็น 0 ทั้งหมด ส่วน Cell ที่เหลือจะมีค่าตามสูตรด้านบน

หากดูที่ตารางตัวอย่างที่ Weights = 1 Cell จะมีค่าทั้งหมด 3 ช่องทางด้านขวาและด้านล่างจาก Weights = 1 เมื่อ Weights = 2 Cell จะมีค่าทั้งหมด 3 ช่องจากทางด้านขวาและด้านล่างเช่นกัน

Newey–West estimator statistics econometrics covariance matrix regression analysis linear regression assumptions Whitney K. Newey Kenneth D. West autocorrelation serial correlation error terms time series data heteroskedasticity and autocorrelation consistent HAC estimators consistent estimator least squares residuals ordinary least squares OLS python statsmodels excel tutorial

เมื่อได้ตัวแปรครบตามที่ต้องการแล้ว สามารถผูกสูตรเพื่อหา Covariance matrix (HAC) ได้ตามตัวอย่างสูตร Excel ด้านล่าง

=MMULT(MMULT(MINVERSE(MMULT(TRANSPOSE(X),X)),MMULT(MMULT(TRANSPOSE(X),W),X)),MINVERSE(MMULT(TRANSPOSE(X),X)))
Newey–West estimator statistics econometrics covariance matrix regression analysis linear regression assumptions Whitney K. Newey Kenneth D. West autocorrelation serial correlation error terms time series data heteroskedasticity and autocorrelation consistent HAC estimators consistent estimator least squares residuals ordinary least squares OLS python statsmodels excel tutorial

จากนั้นสามารถสร้างตาราง HAC Regression coefficient จากการคำนวณทั้งหมดที่ผ่านมา โดยที่ Coefficient มีค่าเท่าเดิมกับผลลัพธ์ของ OLS Regression ส่วน Standard Error สามารถคำนวณจาก Square root ของ Diagonal Covariance matrix (HAC) ค่า t-stat สามารถหาได้จาก Standard Error / Coefficient

Newey–West estimator statistics econometrics covariance matrix regression analysis linear regression assumptions Whitney K. Newey Kenneth D. West autocorrelation serial correlation error terms time series data heteroskedasticity and autocorrelation consistent HAC estimators consistent estimator least squares residuals ordinary least squares OLS python statsmodels excel tutorial

ส่วนสุดท้ายเป็นการสรุปผลว่า เมื่อปรับ Weights regression ที่มีปัญหา Residual autocorrelation ด้วย HAC (Newey–West estimator) แล้ว ค่า P-Value ยัง Significant (5%) เหมือนเดิมหรือไม่ สามารถใช้สูตร Excel ได้ตามด้านล่าง

=T.DIST.2T(ABS(t-stat), Degrees of freedom)

ถ้า P-Value ให้ผลลัพธ์ที่น้อยกว่า 5% ยังถือว่า Model นี้สามารถใช้งานได้ เพราะเมื่อปรับ Weights เพื่อแก้ไข Residual autocorrelation ด้วย HAC (Newey–West estimator) แล้ว ทุกตัวแปรใน Model ยัง Statistical significant

Conclusion

จบแล้ว… สำหรับวิธีการใช้งาน Excel ในการทำ HAC Adjustment ถ้าบอกว่าเป็นเรื่องที่เข้าใจยากมันก็ยาก แต่ถ้าแตก Concept ออกมาให้ดูเป็น Excel แบบ Step by step แล้ว เชื่อว่าทำให้เห็นภาพและเกิดความเข้าใจมากขึ้นแน่นอน

สำหรับ Excel file ของเนื้อหา Blog ตอนนี้อาจไม่มี แต่สามารถ Follow ขั้นตอนที่เขียนอธิบายไว้อย่างละเอียดนี้สำหรับ HAC Adjustment ได้แน่นอน

--

--

Sasiwut Chaiyadecha
Sasiwut Chaiyadecha

No responses yet