在对斜率系数是否为1.75进行假设检验时,不得获得p值

时间:2016-11-27 09:44:30

标签: r regression linear-regression lm hypothesis-test

我必须检验Ho: ß1 = 1.75的假设。我写这个:

model1<- lm (y - x)
model2<- lm (y - x, offset = 1.75*x)
anova(model1, model2)

但我无法获得P值。

enter image description here

有什么想法吗?谢谢。

编辑注意

不是拼写错误(所以不要将其视为拼写错误); OP的ANOVA输出显示他/她设法成功运行lm,因此-可能是错误输入。真正的问题是使用anova

1 个答案:

答案 0 :(得分:1)

语法错误:对公式使用波浪号~。请阅读?lm?formula了解更多信息。

您想对系数执行 t-test 。默认的NULL假设是0系数。如您所知,我们可以使用offset或类似的东西来移动系数。

summary将为系数生成一个表/矩阵,您可以使用coef来提取该表/矩阵:

coef(summary(lm(y ~ x, offset = 1.75 * x)))

可重复的示例

set.seed(0)
xx <- rnorm(100)
yy <- 1.3 * xx - 0.2 + rnorm(100, sd = 0.5)

coef(summary(lm(yy ~ xx, offset = 1.75 * xx)))

#              Estimate Std. Error   t value     Pr(>|t|)
#(Intercept) -0.2243489 0.04814396 -4.659960 9.974037e-06
#xx          -0.3806026 0.05480131 -6.945137 4.170746e-10

系数xx的p值为~e-10,因此NULL假设被拒绝。

为什么不进行F-test?

您的问题因为拼写错误而被关闭,但事实上它不止于此。您绝对不希望anova在这里。以下模型是等效的:

m1 <- lm(y ~ x)
m2 <- lm(y ~ x, offset = 1.75 * x)

它们只有斜率系数不同,其他一切都相同(甚至是斜率的标准误差)。如果您使用anova

anova(m1, m2)

#Model 1: yy ~ xx
#Model 2: yy ~ xx  ## offset is not shown in formula
#  Res.Df  RSS Df  Sum of Sq F Pr(>F)
#1     98 22.7                       
#2     98 22.7  0 3.5527e-15  

我们确实看到了两种模型的相同模型自由度和RSS。

回想一下d1d2是否拥有自由度m1m2,F统计数据是

( (RSS1 - RSS2) / (d2 - d1) ) / ( RSS2 / (n - d2) )

具有自由度为(d2 - d1, n - d2)的F分布。如果d1 = d2RSS1 = RSS2,您如何构建F统计量