Перевірка статистичних гіпотез

В цьому розділі ми навчимося перевіряти наступні гіпотези:
1. Про адекватність моделі.
2. Про значення коефіцієнта моделі.
3. Про стійкість моделі
4. Про лінійні обмеження моделі.

Для роботи потрібно завантажити три модуля: перший потрен для побудови регресії, 
другий - для визначень значень розподілів Фішера та Стьюдента, 
третій - для роботи з матрицями.

<< Statistics`LinearRegression`

<< Statistics`ContinuousDistributions`

<<Statistics`DataManipulation`

Розглянемо функцію сукупного споживання харчових продуктів:
		y= \(ln \((FoodConsumptionPerCapita\_t)\) = β\_0 + \(β\_1\) ln \((FoodPrice\_t)\)\  + \(β\_2\) 
                      ln \((ConsumerIncome\_t)\) + \ ϵ\_\(\(\ \)\(t\)\)\) ,  
\(де\ \ \ \ FoodConsumptionPerCapita - споживання\ харчових\ продуктів\ на\ душу\ населення\),
         \(FoodPrice - індекс\ цін\ на\ харчові\ продукти\),
          \(ConsumerIncome - \(\(індекс\)\(\ \)\(доходів\)\(\ \)\(на\)\(\ \)\(душу\)\(\ \)\(населення\)\(\ \ \ \ \ \ \ \ \ \ \ \ \)\)\)

Гіпотези будемо перевіряти на основі наступних данних: 

FoodConsumptionPerCapita={88.9, 88.9, 89.1, 88.7, 88. , 85.9, 86. , 87.1, 85.4, 88.5, 
          88.4, 88.6, 91.7, 93.3, 95.1, 96.7, 96.7, 98. , 96.1, 98.1, 99.1, 
          99.1, 99.8, 101.5, 99.9, 99.1, 101.0, 100.7, 100.8, 101. };
FoodPrice= {91.7, 92. , 93.1, 90.9, 82.3, 76.3, 78.3, 84.3, 88.1, 88. , 
          88.4, 83.5, 82.4, 83. , 86.2, 105.3, 102. , 102.4, 105.4, 105. , 
          102.6, 101.9, 100.8, 100. , 99.8, 101.2, 98.8, 98.4, 98.8, 
          98.4};
ConsumerIncome={57.7, 59.3, 62. , 56.3, 52.7, 44.4, 43.8, 47.8, 52.1, 58. , 
          59.8, 55.9, 60.3, 64.1, 73.7, 82.1, 83.1, 88.6, 88.3, 89.1, 92.1, 
          91.7, 96.5, 99.8, 99.9, 98.4, 101.8, 101.8, 103.1, 105.5}; DFData=Transpose[{FoodPrice, ConsumerIncome, 
            FoodConsumptionPerCapita}];
Z =Log[DFData];

Таким чином, матриця Z є необхідною матрицею для побудови регресії.

r = Regress[Z,  {1, t1, t2}, {t1, t2}]

1. Гіпотеза про адекватність моделі

Для перевірки моделі на адекватність необхідно порівняти практично знайдене значення F-статистики 
з теоретичним значенням. Адекватність моделі означє, що відхиляється гіпотеза про те, що всі 
коефіцієнти моделі одночасно дорівнюють 0. В данному випадку, практичне значення дорівнює 488.315. 
Теоретичне значення можна знайти з таблиця розподілу Фішера з 2 та 27 ступенями свободи та заданим 
рівнем значущості. Нижче наведений фрагмент програми, який робить необхідні обчислення.

α = 0.05;

Fpr = (ANOVATable  /. r)[[1, 1, 4]];
regr1 = (ANOVATable  /. r)[[1, 1, 1]];
regr2 = (ANOVATable  /. r)[[1, 2, 1]];
Fteor = 
        Quantile[FRatioDistribution[regr1,  regr2], 
          1 - α];
If[Fpr > Fteor,  
        Print["\:041c\:043e\:0434\:0435\:043b\:044c \
\:0430\:0434\:0435\:043a\:0432\:0430\:0442\:043d\:0430"],  
        Print["\:041c\:043e\:0434\:0435\:043b\:044c \
\:043d\:0435\:0430\:0434\:0435\:043a\:0432\:0430\:0442\:043d\:0430"]];

2. Гіпотеза про значення коефіцієнта моделі

Для перевірки гіпотези про значення m коефіцієнта (Subscript[β, i]) моделі необіхдно порівняти практично знайдне 
значення t-статистики розподілу Стьюдента з теоретичним значенням (зауважте, що підраховується 
1-α/2 квантиль). 
Практичне значення підраховується за формулою:
	tpr=\(TraditionalForm\`\(\(|\)\(β\_i - m\)\(|\)\)\/s . e . \((β\_i)\)\)
де	(Subscript[β, i]) - коефіцієнт, значення якого первіряється;
	i - номер коефіцієнта; i=0,1,...;
	m   - значення для перевірки;
	s.e.((Subscript[β, i]))  - стандартне відхилення для даного коефіцієнта.	 
Відповідна програма має вигляд:

m = 4;  i = 0; α = 0.05;
tpr = 
        Abs[(ParameterTable  /. r) [[1, i + 1, 1]] - 
              m]/(ParameterTable  /. r) [[1, i + 1, 
              2]];
regr = (ANOVATable  /. r)[[1, 2, 1]];
tteor = 
        Quantile[StudentTDistribution[regr], 1 - α/2];
If[tpr > tteor,  
        Print["\:041a\:043e\:0435\:0444\:0456\:0446\:0456\:0454\:043d\:0442 \
\:043d\:0435 \:043c\:043e\:0436\:043d\:0430 \:043f\:0440\:0438\:0439\:043d\
\:044f\:0442\:0438 \:0440\:0456\:0432\:043d\:0438\:043c ",  m], 
        Print["\:041a\:043e\:0435\:0444\:0456\:0446\:0456\:0454\:043d\:0442 \
\:043c\:043e\:0436\:043d\:0430 \:043f\:0440\:0438\:0439\:043d\:044f\:0442\
\:0438 \:0440\:0456\:0432\:043d\:0438\:043c ",  m]];

3. Гіпотеза про стійкість моделі

Припустимо, що на протязі спостережень відбулася економічна реформа. Постає питання: чи можна 
користуватися єдиною моделлю, яка охоплюватиме до- і післяреформений час. Відповідь на це отримують
за допомогою гіпотези про стійкість моделі. Як правило, вся сукупність спостережень розбивається на 
дві групи, в яких a та a спостережень відповідно.

3.1. Критерій дисперсійного аналізу

В цьому критерії побудова регресії здійснюється триччі: по всіх спостереженнях та по кожній з груп. Тоді
RSS - сума квадратів залишків моделі, яка оцінена по всіх спостереженнях;
RSS1 - сума квадратів залишків моделі, яка оцінена по a спостереженнях;
RSS2 - сума квадратів залишків моделі, яка оцінена по a спостереженнях.
Практичне значення F-статистики є
	\(Fpr = \(\(RSS - \((RSS1 + RSS2)\)\)\/k\)\/\(\(RSS1 + RSS2\)\/\(n - 2*k\)\)\)
Фрагмент програми перевірки виглядає так:

n1 = 10;  n = Length[Z]; n2 = n - n1;  α = 0.05;

r1 = Regress[Take[Z, n1],  {t1, t2}, {t1, t2}];
r2 = Regress[Take[Z, -n2],  {t1, t2}, {t1, t2}];
RSS = (ANOVATable  /. r )[[1, 2, 2]];
RSS1 = (ANOVATable  /. r1)[[1, 2, 2]];
RSS2 = (ANOVATable  /. r2)[[1, 2, 2]];
k = (ANOVATable  /. r )[[1, 1, 1]] + 1;
Fpr = ((((RSS - (RSS1 + RSS2))/k))/(((RSS1 + RSS2)/(n - 2*k))));
Fteor = 
        Quantile[FRatioDistribution[k, n - 2*k], 1 - α];
If[Fpr > Fteor,  
        Print["\:041c\:043e\:0434\:0435\:043b\:044c \:043d\:0435 \:0454 \
\:0441\:0442\:0456\:0439\:043a\:043e\:044e"],  
        Print["\:041c\:043e\:0434\:0435\:043b\:044c \:0454 \:0441\:0442\
\:0456\:0439\:043a\:043e\:044e"]];

3.2. Критерій Чоу

Цей критерій використовується, коли одна з груп нараховує малу кількість даних. Нехай для 
визначенності n1>n2. Для перевірки гіпотези необхідно оцінити модель двіччі: за всіма спостереженнями 
і за більшою групою. Позначимо:
RSS - сума квадратів залишків моделі, яка оцінена по всіх спостереженнях;
RSS1 - сума квадратів залишків моделі, яка оцінена по n1 спостереженнях.
Практичне значення статистики Фішера підраховується за формулою:
	Fpr=(((((RSS - RSS1))/n2))/((RSS1/(n1 - k))))
Теоретичне значення береться з таблиці розподілу Фішера з a та a ступенями свободи. 
Необхідний фрагмент програми наведений нижче.

n1 = 25; n = Length[Z]; n2 = n - n1;  α = 0.05;

r1 = Regress[Take[Z, n1],  {t1, t2}, {t1, t2}];
RSS1 = (ANOVATable  /. r1)[[1, 2, 2]];
k = (ANOVATable  /. r )[[1, 1, 1]] + 1;
Fpr = ((RSS - RSS1)/n2)/(RSS1/(n1 - k));
Fteor = 
        Quantile[FRatioDistribution[n2, n1 - k], 1 - α];
If[Fpr > Fteor,  
        Print["\:041c\:043e\:0434\:0435\:043b\:044c \:043d\:0435 \:0454 \
\:0441\:0442\:0456\:0439\:043a\:043e\:044e"],  
        Print["\:041c\:043e\:0434\:0435\:043b\:044c \:0454 \:0441\:0442\
\:0456\:0439\:043a\:043e\:044e"]];

4. Гіпотеза про лінійні обмеження

Нехай потрібн перевірити гіпотезу:
(Subscript[H, 0]): {({{(Subscript[β, 1]) + (Subscript[β, 2]) = 0,}, {(Subscript[β, 0]) = 4.5.}})
\(Виразимо\ коефіцієнти\ системи\ один\ через\ інший\ та\ підставимо\ у\ початкову\ \(регресію : 

          y\) = \(4.5 + \(β\_1\) x\_1 - \(β\_1\) x\_2 + e = 
        4.5 + \(β\_1\) \((x\_1 - x\_2)\) + 
          e . 
Переносимо\ всі\ відомі\ величини\ ліворуч\), \ \(а\ невідомі\  - \ \(праворуч : 

            y - 4.5\) = \(\(β\_1\) \((x\_1 - x\_2)\) + 
            e . 
Робимо\ \(заміну : \ 
			yn\) = y - 4.5\);\)\)
			xn = ((Subscript[x, 1]) - (Subscript[x, 2]));
			\(γ\_1 = \(β\_1 . 
Отримуємо\ нову\ \(регресію : 
		yn\) = γ\_1*
              xn + 
            e . 
Оцінюємо\ нову\ регресію\), \ обраховуєму\ \(статистику : 
				F\) = \(\(RSS1 - RSS\)\/v\)\/\(RSS\/\(n - k\)\), 
де\ RSS\  - \ \ сума\ квадратів\ залишків\ початкової\ моделі \((0.00286946712507702539`)\), 
\ \ \ \ \ \ RSS1 - \ сума\ квадратів\ залишків\ у\ новій\ моделі, 
\ \ \ \ \ \ v\  - \ кількість\ лінійних\ обмежень \((2)\)\)
      \(n\  - \ кількість\ спостережень\ \((30)\), \ 
\ \ \ \ \ \ k\  - \ кількість\ регресорів\ \((3)\) . 
Необхідний\ фрагмент\ програми\ наведено\ \(\(нижче\)\(.\)\)\)

v = 2;
α = 0.05;

xn = Column[Z, 1] - Column[Z, 2];
yn = Column[Z, 3] - 4.5;
Zn = Transpose[{xn, yn}];
rn = Regress[Zn,  {t}, {t}, IncludeConstant -> False];
RSS = (ANOVATable  /. r )[[1, 2, 2]];
RSS1 = (ANOVATable  /. rn)[[1, 2, 2]];
n = Length[Z];
k = (ANOVATable  /. r )[[1, 1, 1]] + 1;
Fpr = ((((RSS1 - RSS)/v))/((RSS/(n - k))));
Fteor =  
        Quantile[FRatioDistribution[v, n - k], 1 - α];
\(\(If[Fpr > Fteor, \ 
        Print["Гіпотеза відхиляється"], \ Print["Гіпотеза приймається"]];\)\)

Зверніть увагу, що якщо не включати константу до регресії, компілятор видає поперед- ження! 
В загальному випадку для перевірки подібної гіпотези необхідно:
1. виразити всі змінні ситеми, яка подана у гіпотезі, через найменшу кількість інших змінних, 
2. підставити всі знайдені тотожності до регресії, 
3. перенести всі відомі в ліву частину, невідомі - залишити праворуч, 
4. побудувати нову регресію, 
5. знайти практичне значення статистики Фішера, 
6. порівняти його з теоретичим і зробити висновок.
Будьте уважні! Якщо константа входить до нової регресії, то опцію IncludeConstant необіхдно убрати!

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

1. За допомогою комп'ютера розв'язати задачі: 2.20, 2.26

2. Розв'язати задачі: 2.6, 2.7, 2.8, 2.14, 2.16, 2.17.