Как провести t.тест на линейной модели для данного значения beta1? - PullRequest
0 голосов
/ 09 мая 2020
data("hprice2")
reg1 <- lm(price ~ rooms + crime + nox, hprice2)
summary(reg1)

Call:
lm(formula = price ~ rooms + crime + nox, data = hprice2)

Residuals:
   Min     1Q Median     3Q    Max 
-18311  -3218   -772   2418  39164 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) -19371.47    3250.94  -5.959 4.79e-09 ***
rooms         7933.18     407.87  19.450  < 2e-16 ***
crime         -199.70      35.05  -5.697 2.08e-08 ***
nox          -1306.06     266.14  -4.907 1.25e-06 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 6103 on 502 degrees of freedom
Multiple R-squared:  0.5634,    Adjusted R-squared:  0.5608 
F-statistic: 215.9 on 3 and 502 DF,  p-value: < 2.2e-16

Вопрос 1.

Выполните два альтернативных (двусторонних) t-теста для: H0: B1 = 8000

predict(reg1, data.frame(rooms=8000, crime = -199.70, nox =  -1306.06), interval = .99) 

Сообщите о своей t-статистике c и отклоняете ли вы или не отклоняете нулевое значение при уровнях достоверности 90, 95 и / или 99 процентов.

1 Ответ

2 голосов
/ 09 мая 2020

Я полагаю, что под beta1 вы имеете в виду rooms в данном случае. Ваш t.test в сводке протестирован против beta0 = 0, вы можете видеть из wiki :

enter image description here

, поэтому используйте пример nox:

tstat = (-1306.06 - 0)/266.14  
[2] -4.907417

И p.value

2*pt(-abs(tstat),502)
[2] 1.251945e-06

нулевая гипотеза в вашем случае будет 8000, а вы тестируете комнаты = 8000:

tstat = (7933.18 - 8000)/407.87
2*pt(-abs(tstat),502)

Вы также можете использовать linearHypothesis from cars, чтобы сделать вышеуказанное:

library(car)
linearHypothesis(reg1, c("rooms = 8000"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...