2014-10-30 3 views
0

имеют набор данных (найдено здесь https://netfiles.umn.edu/users/nacht001/www/nachtsheim/Kutner/Appendix%20C%20Data%20Sets/APPENC01.txt), и я сделал некоторое R-кодирование для линейной регрессии. В прикрепленном наборе данных столбцы не помечены. Я должен был пометить столбцы набора данных и сохранить его как csv, и я извиняюсь, что не могу получить это здесь ... но столбцами, которые я использую, является столбец столбца столбца номер 3 (возраст) столбца 4 (инфекция) 5 (culratio) 10 (перепись) и столбец 12 (служба), столбец 9 (регион). Я назвал больницу данных.Множественная линейная регрессия и MSE от R

Я предполагаю, что «для каждой географической области регрессируйте риск заражения (Y) против векторов-предикторов, возраст, культуру, перепись, обслуживание с использованием модели регрессии первого порядка. Затем мне нужно найти MSE для каждого региона. это код у меня есть.

NE<- subset(hospital, region=="1") 
NC<- subset(hospital, region=="2") 
S<- subset(hospital, region=="3") 
W<- subset(hospital, region=="4") 

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

NE.Model<- lm(NE$infection~ NE$age + NE$culratio + NE$census + NE$service) 
summary(NE.Model) 

и я могу получить скорректированный R значение квадрата, но как я найти MSE с этого выхода?

+0

'mean (NE.Model $ остатки^2)' должен работать. – Gregor

ответ

0

Перемещение моего комментария к ответу. «Ошибки» или «остатки» являются частью объекта модели, NE.Model$residuals, поэтому получение среднеквадратической ошибки так же просто: mean(NE.Model$residuals^2).

Как и примечание, вы можете сделать это за меньшее количество шагов, установив в модели модель фиксированного эффекта region, а затем вычислив MSE для каждого подмножества остатков. То же самое, действительно.

+0

Большое спасибо. У меня есть другой вопрос, но я не могу опубликовать его прямо сейчас, потому что я просто разместил этот. Как бы я нашел 98% -ный доверительный интервал для взаимосвязи между двумя переменными в этом случае? У меня есть код g <- lm (больничная инфекция ~ госпиталь $ medschool) pred (g, interval = "trust", level = .98), но он возвращает слишком много результатов, как я могу получить только один интервал? – hk47

+0

@ hk47 Мне нравится пакет 'arm' для функции' se.coef', которая извлекает стандартные ошибки коэффициентов. Таким образом, ширина вашего CI - это 'se.coef (NE.Model)' раз любой альфа-уровень, который вы хотите, например. 'qnorm (0.975)' для 95% или 'qnorm (0.99)' для 98%. – Gregor

Смежные вопросы