включить слагаемые ошибки в модель линейной регрессии с R - PullRequest
4 голосов
/ 26 ноября 2009

Мне было интересно, есть ли способ включить термины ошибок для модели линейной регрессии, такие как:

r = lm(y ~ x1+x2)

1 Ответ

4 голосов
/ 27 ноября 2009

Код r = lm(y ~ x1+x2) означает, что мы моделируем y как линейную функцию от x1 и x2. Так как модель не будет идеальной, будет остаточный член (то есть остаток, который модель не смогла уместить).

В математике, как отметил Роб Хиндман в комментариях, y = a + b1*x1 + b2*x2 + e, где a, b1 и b2 - константы, а e - ваш остаток (который предполагается нормально распределенным).

Чтобы посмотреть на конкретный пример, рассмотрим данные радужной оболочки, которые поставляются с R.

model1 <- lm(Sepal.Length ~ Sepal.Width + Petal.Length + Petal.Width, data=iris)

Теперь мы можем извлечь константы из модели (эквивалентно a, b1, b2 и в этом случае b3 тоже).

> coefficients(model1)
(Intercept)  Sepal.Width Petal.Length  Petal.Width 
1.8559975    0.6508372    0.7091320   -0.5564827

Остатки были рассчитаны для каждой строки данных, которая использовалась в модели.

> residuals(model1)
           1             2             3             4             5       
0.0845842387  0.2100028184 -0.0492514176 -0.2259940935 -0.0804994772
# etc. There are 150 residuals and 150 rows in the iris dataset.

(РЕДАКТИРОВАТЬ: вырезать сводную информацию как неприемлемую.)


EDIT:

Значение Error, которое вы упомянули в своих комментариях, объяснено на странице помощи aov.

If the formula contains a single ‘Error’ term, this is used to
specify error strata, and appropriate models are fitted within
each error stratum.

Сравните следующее (адаптировано со страницы ?aov.)

> utils::data(npk, package="MASS")
> aov(yield ~  N*P*K, npk)
Call:
   aov(formula = yield ~ N * P * K, data = npk)

Terms:
                       N        P        K      N:P      N:K      P:K    N:P:K Residuals
Sum of Squares  189.2817   8.4017  95.2017  21.2817  33.1350   0.4817  37.0017  491.5800
Deg. of Freedom        1        1        1        1        1        1        1        16

Residual standard error: 5.542901 
Estimated effects may be unbalanced

> aov(yield ~  N*P*K + Error(block), npk)
Call:
aov(formula = yield ~ N * P * K + Error(block), data = npk)

Grand Mean: 54.875 

Stratum 1: block

Terms:
                    N:P:K Residuals
Sum of Squares   37.00167 306.29333
Deg. of Freedom         1         4

Residual standard error: 8.750619 
Estimated effects are balanced

Stratum 2: Within

Terms:
                        N         P         K       N:P       N:K       P:K Residuals
Sum of Squares  189.28167   8.40167  95.20167  21.28167  33.13500   0.48167 185.28667
Deg. of Freedom         1         1         1         1         1         1        12

Residual standard error: 3.929447 
1 out of 7 effects not estimable
Estimated effects may be unbalanced
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...