Определение качества подгонки R с помощью lm () - PullRequest
1 голос
/ 19 августа 2011

Я научился получать линейное соответствие с некоторыми точками, используя lm в своем R-скрипте. Итак, я сделал это (что сработало хорошо) и распечатал подгонку:

lm(formula = y2 ~ x2)

Residuals:
         1          2          3          4 
 5.000e+00 -1.000e+01  5.000e+00  7.327e-15 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)   
(Intercept)   70.000     17.958   3.898  0.05996 . 
x2            85.000      3.873  21.947  0.00207 **
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 8.66 on 2 degrees of freedom
Multiple R-squared: 0.9959, Adjusted R-squared: 0.9938 
F-statistic: 481.7 on 1 and 2 DF,  p-value: 0.00207 

Я пытаюсь определить лучший способ оценить, насколько это подходит. Мне нужно сравнить это соответствие с несколькими другими (которые также являются линейными с использованием функции lm()). Какое значение из этого резюме будет лучшим способом оценить, насколько хорошо это подходит? Я думал использовать остаточную стандартную ошибку. Какие-либо предложения. Кроме того, как извлечь это значение из переменной соответствия?

Ответы [ 3 ]

2 голосов
/ 19 августа 2011

Этот код будет делать что-то похожее:

 y2 <- seq(1, 11, by=2)+rnorm(6)  # six data points to your four points
 x2=1:6
 lm(y2 ~ x2)
 summary(lm(y2 ~ x2))

Скорректированный R ^ 2 - это мера "добротности соответствия".Это говорит о том, что 99% дисперсии в y2 можно «объяснить» подгонкой по прямой линии от y2 к x2.Если вы хотите интерпретировать свою модель только с 4 точками данных на основе этого результата, это вопрос суждения.Это может показаться мне несколько опасным.

Чтобы извлечь остаточную сумму квадратов, которые вы используете:

summary(lm(y2~x2))$sigma

См. Это для более подробной информации:

?summary.lm
2 голосов
/ 19 августа 2011

Если вы хотите получить доступ к частям, созданным summary напрямую, вы можете просто вызвать summary и сохранить результат в переменной, а затем проверить полученный объект:

rs <- summary(lm1)
names(rs)

Возможно rs$sigma это то, что вы ищете?

EDIT

Прежде чем кто-то упрекнет меня, я должен указать, что для некоторой этой информации это не рекомендуемый способ доступа к ней. Скорее вы должны использовать назначенные экстракторы, такие как residuals() или coef.

1 голос
/ 19 августа 2011

Есть несколько хороших графиков регрессионной диагностики, на которые вы можете посмотреть с помощью

plot(YourRegression, which=1:6)

, где = 1: 6 дает вам все шесть графиков.Тест RESET и bptest будут тестировать на предмет неправильной спецификации и гетероскедастичности:

resettest(...)
bptest(...)

Существует множество ресурсов, чтобы подумать о подобных вещах. Подходящие распределения в R - один из них, а «Практическая регрессия и анова» Фаравея - классика R.Я в основном изучил эконометрику в R из статьи / книги Фарнсворта, хотя я не помню, есть ли у него что-нибудь о доброте соответствия.

Если вы собираетесь делать много эконометрики в R, Прикладная эконометрика в R - отличная книга с оплатой по счетам.И я много использовал веб-страницу R для экономистов .

Это первые, которые приходят на ум.Я еще немного обдумаю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...