Регресія з гетероскедастичними збуреннями

В цьому розділі будуть розглянуті такі методи для визначення наявності гетероскедастичності та методи оцінки регресій з гетероскедастичними збуреннями:
1. Критерій Голдфелда-Квондта.
2. Критерій Глейзера.
3. Зважений метод найменших квадратів.

<< Statistics`LinearRegression`

<< Statistics`ContinuousDistributions`

Нехай існують два набори даних:

y={190.1, 200.1, 221.7, 227.3, 208.1, 215.5, 230.9, 211.1, 
          230.3, 259.2, 250.9, 234.1, 271.9, 285.8, 380.5, 267.5, 322.1, 
          375.3, 297.1, 372.2, 287.1, 390.7, 490.3, 504.5, 338.5, 496.6, 
          461.2, 521.4, 482.1, 452.6}
x = {210.5, 220.6, 225.3, 237.7, 243.4, 246.2, 246.7, 252.8, 
          255.3, 267, 269, 283.3, 294.8, 308.9, 312, 314.3, 328, 377.7, 
          405.8, 406, 408.2, 419.5, 450.9, 467.7, 471.3, 498.5, 502.8, 514.8, 
          545.3, 627.6}

Для моделі a необхідно перевірити наявність гетероскедастичності.

Z = Transpose[{x, y}];

1. Критерій Голдфелда-Квондта

За цим критерієм всі данні розбивають на дві рівні групи розмірами n1 за деякою ознакою (наприклад, 
велиична незалежної змінної), причому n1+n2≤n. Після цього необіхдно підрахувати відношення F, 
яке має бути більшим одиниці (якщо це не так, то групи міняють місцями). Цю статистику порівнюють 
з табличним значенням розподілу Фішера з n1-k, n2-k ступенями волі. Фрагмент відповідної програми 
має вигляд (зверніть увагу, що данні вже відсортовані по y):

n1 = 10; α = 0.05;

r1 = Regress[Take[Z,  n1],  {1, t}, {t}];
r2 = Regress[Take[Z,  -n1],  {1, t}, {t}];
F = (EstimatedVariance  /. r1)/(EstimatedVariance  /. 
              r2);
Fpr = If[F < 1,  1/F,  F];
regr = (ANOVATable  /. r1) [[1, 2, 1]];
Fteor =  
        Quantile[FRatioDistribution[regr,  regr], 1 - α];
If[Fpr > Fteor,  
        Print["\:0413\:0435\:0442\:0435\:0440\:043e\:0441\:043a\:0435\:0434\
\:0430\:0441\:0442\:0438\:0447\:043d\:0456\:0441\:0442\:044c \:043c\:0430\
\:0454 \:043c\:0456\:0441\:0446\:0435"],  
        Print["\:0413\:0435\:0442\:0435\:0440\:043e\:0441\:043a\:0435\:0434\
\:0430\:0441\:0442\:0438\:0447\:043d\:043e\:0441\:0442\:0456 \:043d\:0435\
\:043c\:0430\:0454"]];

2. Критерій Глейзера

Порядок дій в цьому методі такий:
1. оцінюємо модель звичайним методом найменших квадратів;
2. знаходимо залишки моделі e;
3. будуємо допоміжну регресію    |e|=a+ax+e
4. перевіряємо гіпотезу про значущість допоміжної регресії: якщо вона є значущою, то 
гетерескедастичність має місце.
Фрагмент відповідної програми наведений нижче:

α = 0.05;

r  =  
        Regress[Z,  {1, t}, {t}, 
          RegressionReport -> {SummaryReport, 
              FitResiduals}];
e = FitResiduals /. r;
r1 =  Regress[Transpose[{x, Abs[e]}],  { 1, t}, {t}];
If[(ANOVATable  /. r1)[[1, 1, 5]] < α,  
        Print["\:0413\:0435\:0442\:0435\:0440\:043e\:0441\:043a\:0435\:0434\
\:0430\:0441\:0442\:0438\:0447\:043d\:0456\:0441\:0442\:044c \:043d\:0430\
\:044f\:0432\:043d\:0430"],  
        Print["\:0413\:0435\:0442\:0435\:0440\:043e\:0441\:043a\:0435\:0434\
\:0430\:0441\:0442\:0438\:0447\:043d\:043e\:0441\:0442\:0456 \:043d\:0435 \
\:0432\:0438\:044f\:0432\:043b\:0435\:043d\:043e"]];

3. Зважений метод найменших квадратів

Для використання методу необхідно знайти ваги w. Це можна зробити за допомогою критерію Глейзера.

\(\(\(\(r\  = \ 
        Regress[Z, \ {1, \ t}, {t}, 
          RegressionReport -> {SummaryReport, FitResiduals}];\)

    \(e = FitResiduals /. r;\)

    \(r1 = \ 
        Regress[Transpose[{x, Abs[e]}], \ {\ t}, {t}, 
          RegressionReport -> {SummaryReport, PredictedResponse}];\)

    \(w = PredictedResponse /. \ r1;\)

    rs = Regress[Z, \ {1, t}, {t}, 
        Weights -> 1/w^2]\)\(\ \)\)\)

Порівняйте, як змінилися коефіцієнти моделі за звичайним МНК та за зваженим МНК:

Print[(ParameterTable  /. 
          r),  "  ---  ",  (ParameterTable  /. rs)]

Самостійна робота

1. Для набору даних перевірити наявність гетероскедастичності

y={2.01, 2.045, 2.16, 2.38, 2.52, 2.63, 2.73, 2.75, 3.37, 3.79, 
          4.90, 4.94, 6.10, 6.40, 6.70, 6.90, 7.33, 7.71, 8.17, 8.92, 9.61, 
          10.29};
x={20.7, 17.2, 15.8, 19.3, 18.6, 17.9, 25.6, 36.5, 35.4, 24.2, 
          27.7, 27, 34.7, 36.8, 29.1, 24.9, 31.2, 21.4, 22.1, 33.3, 34, 
          30.5};

2. За допомогою комп'ютера розв'язати задачі: 3.4-3.11.

3. Розв'язати задачі: 3.2, 3.3.