Показать сообщение отдельно
Старый 02.12.2012, 16:14   #11
Hogfather
Platinum Member
 
Аватар для Hogfather
 
Регистрация: 22.07.2010
Адрес: Санкт-Петербург
Сообщений: 3,281
По умолчанию Множественная регрессия. Краткий справочник.

Попробуем резюмировать.
Для подгонки модели МНК, используем код
Код:
> fit <- lm(lnZ ~ x + y, data=myData)
> summary(fit)

Call:
lm(formula = lnZ ~ x + y, data = myData)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.61700 -0.30351 -0.03218  0.19850  0.81873 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept) -0.5939071  0.3067107  -1.936   0.0678 .  
x            0.0016541  0.0012529   1.320   0.2025    
y            0.0029021  0.0002526  11.488  5.4e-10 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 0.4538 on 19 degrees of freedom
Multiple R-squared: 0.889,	Adjusted R-squared: 0.8773 
F-statistic: 76.08 on 2 and 19 DF,  p-value: 8.53e-10
Также можно вызвать следующие функции

Код:
> coefficients(fit) # коэффициенты модели
 (Intercept)            x            y 
-0.593907127  0.001654092  0.002902143 
> confint(fit, level=0.95) # доверительные интервалы для параметров модели 
                    2.5 %      97.5 %
(Intercept) -1.2358599183 0.048045664
x           -0.0009683542 0.004276538
y            0.0023733723 0.003430914
> fitted(fit) [COLOR="rgb(46, 139, 87)"]# вычисленные значения[/COLOR]
        1         2         3         4         5         6         7         8 
0.6184535 1.3439892 2.4322929 3.8833645 1.0225736 0.7011581 2.8777654 1.8308140 
        9        10        11        12        13        14        15        16 
3.2818856 2.0898271 4.0487737 0.8252150 2.6390544 3.0431746 1.9962232 3.4472948 
       17        18        19        20        21        22 
4.1728306 3.8514150 0.9906242 2.2965886 4.2555352 3.5299994 
> residuals(fit) # остатки модели
          1           2           3           4           5           6           7 
-0.24551154 -0.03430598  0.50459127  0.03730105 -0.35167208  0.11950244  0.81873492 
          8           9          10          11          12          13          14 
-0.61649494  0.58275224 -0.59378185 -0.03005108  0.13451833 -0.43331068 -0.31506039 
         15          16          17          18          19          20          21 
 0.02651567 -0.14198445 -0.07559024 -0.26886877  0.21982761  0.81652665 -0.61700212 
         22 
 0.46336392 
> anova(fit) [COLOR="rgb(46, 139, 87)"]# дисперсионный анализ[/COLOR]
Analysis of Variance Table

Response: lnZ
          Df  Sum Sq Mean Sq F value    Pr(>F)    
x          1  4.1589  4.1589  20.192 0.0002488 ***
y          1 27.1795 27.1795 131.963 5.395e-10 ***
Residuals 19  3.9133  0.2060                      
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
> vcov(fit) # ковариационная матрица для параметров модели
              (Intercept)             x             y
(Intercept)  9.407143e-02 -2.162456e-04 -4.568268e-05
x           -2.162456e-04  1.569874e-06 -8.310037e-08
y           -4.568268e-05 -8.310037e-08  6.382438e-08
> influence(fit) # анализ регрессионной модели
$hat
         1          2          3          4          5          6          7 
0.19665640 0.14809675 0.14788589 0.28317818 0.13829845 0.15275498 0.09302145 
         8          9         10         11         12         13         14 
0.06408668 0.09164807 0.05113364 0.14270474 0.15836003 0.04654710 0.05902938 
        15         16         17         18         19         20         21 
0.09846547 0.08567971 0.13738973 0.12649809 0.29922020 0.15799923 0.18148452 
        22 
0.13986129 

$coefficients
    (Intercept)             x             y
1  -0.090100375  1.924032e-04  4.151880e-05
2  -0.009639360  2.941447e-05  2.351114e-06
3   0.092492681 -5.221326e-04  3.423996e-05
4   0.002356970 -5.638034e-05  1.107148e-05
5  -0.098292644  1.997504e-04  4.375226e-05
6   0.034179275 -3.504510e-05 -2.200750e-05
7   0.068581503 -4.974500e-04  6.895179e-05
8  -0.087542609  1.378093e-04  3.287562e-05
9   0.014114197 -2.636425e-04  6.738312e-05
10 -0.056330941  3.061248e-05  2.300041e-05
11  0.002092611  1.126132e-05 -6.043748e-06
12  0.026144651  5.165601e-05 -2.977428e-05
13 -0.011340740 -3.227886e-05 -3.357501e-06
14  0.009716284 -7.069650e-05 -1.206585e-05
15  0.000820820  1.626464e-05 -2.654591e-06
16  0.012887806 -5.454754e-05 -1.004487e-05
17  0.012131630 -2.194206e-05 -1.245702e-05
18  0.042158631 -1.512501e-04 -2.872849e-05
19  0.018378098  3.404810e-04 -7.109334e-05
20 -0.039976009  8.764986e-04 -8.455088e-05
21  0.143930409 -4.760290e-04 -9.195059e-05
22 -0.072988620  3.945329e-04  2.397855e-05

$sigma
        1         2         3         4         5         6         7         8 
0.4617764 0.4661857 0.4481136 0.4661523 0.4576378 0.4652627 0.4199357 0.4414127 
        9        10        11        12        13        14        15        16 
0.4434361 0.4435794 0.4662052 0.4649853 0.4543848 0.4599405 0.4662215 0.4649526 
       17        18        19        20        21        22 
0.4658732 0.4613113 0.4621416 0.4164320 0.4376836 0.4511520 

$wt.res
          1           2           3           4           5           6           7 
-0.24551154 -0.03430598  0.50459127  0.03730105 -0.35167208  0.11950244  0.81873492 
          8           9          10          11          12          13          14 
-0.61649494  0.58275224 -0.59378185 -0.03005108  0.13451833 -0.43331068 -0.31506039 
         15          16          17          18          19          20          21 
 0.02651567 -0.14198445 -0.07559024 -0.26886877  0.21982761  0.81652665 -0.61700212 
         22 
 0.46336392
Сравнение двух моделей
Код:
> fit1 <- lm(lnZ ~ y, data=myData)
> anova(fit,fit1)
Analysis of Variance Table

Model 1: lnZ ~ x + y
Model 2: lnZ ~ y
  Res.Df    RSS Df Sum of Sq      F Pr(>F)
1     19 3.9133                           
2     20 4.2723 -1  -0.35896 1.7428 0.2025
Остановлюсь на этом месте поподробнее. Когда мы добавляем или убавляем регрессоры, мы должны быть уверены, что принципиально это на дисперсию остатков не влияет. В данном случае используется нулевая гипотеза, что коэффициенты регрессоров равны между собой. Примерно то же самое мы делаем, когда проверяем саму модель на значимость(см. ниже), но в таком случаем сравниваем её с уравнением, где все регрессоры имеют коэффициенты 0. Аналогично описанному ниже, если Pr(>F) превышает 0.05, то гипотеза принимается. Т.е. в приведенном выше примере Pr(>F)=0.2025, отсюда разница между Model 1: lnZ ~ x + y и Model 2: lnZ ~ y является статистически незначимой.

Автоматическая подгонка модели посредством исключения незначимых членов.

Код:
> library(MASS)
> step <- stepAIC(fit, direction="both")
Start:  AIC=-31.99
lnZ ~ x + y

       Df Sum of Sq     RSS     AIC
- x     1     0.359  4.2723 -32.056
<none>               3.9133 -31.987
- y     1    27.180 31.0928  11.611

Step:  AIC=-32.06
lnZ ~ y

       Df Sum of Sq    RSS     AIC
<none>               4.272 -32.056
+ x     1     0.359  3.913 -31.987
- y     1    30.979 35.252  12.372
> step$anova # отображаем результаты
Stepwise Model Path 
Analysis of Deviance Table

Initial Model:
lnZ ~ x + y

Final Model:
lnZ ~ y


  Step Df  Deviance Resid. Df Resid. Dev       AIC
1                          19   3.913305 -31.98653
2  - x  1 0.3589588        20   4.272264 -32.05577
Прочую красоту смотреть вот здесь. А подробно проверка регрессионной модели описана вот тут.

Последний раз редактировалось Hogfather; 05.12.2012 в 14:11.
---------
DNF is not an option
Hogfather вне форума   Ответить с цитированием
Реклама