假设检验斜率系数是否为 1.75 时得不到 p 值
Get no p-value when making hypothesis test on whether slope coefficient is 1.75
我要检验Ho: ß1 = 1.75
的假设。我这样写:
model1<- lm (y - x)
model2<- lm (y - x, offset = 1.75*x)
anova(model1, model2)
但我无法获得 P 值。
有什么想法吗?谢谢。
编者注
这不是错字(所以不要因为错字而关闭); OP 的 ANOVA 输出显示他/她设法 运行 lm
成功,因此 -
很可能是错误输入。真正的问题在于 anova
.
的使用
存在语法错误:使用波浪号 ~
作为公式。阅读 ?lm
和 ?formula
了解更多。
您想对系数执行 t 检验。默认的 NULL 假设是 0 系数。如您所知,我们可以使用 offset
或类似的东西来移动系数。
summary
将为系数生成一个 table / 矩阵,您可以使用 coef
提取该 table / 矩阵:
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 检验?
您的问题因打字错误而被关闭,但实际上不止于此。您肯定不想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 相同。
回想一下,如果 m1
和 m2
有自由度 d1
和 d2
,F 统计量是
( (RSS1 - RSS2) / (d2 - d1) ) / ( RSS2 / (n - d2) )
具有自由度为 (d2 - d1, n - d2)
的 F 分布。如果d1 = d2
和RSS1 = RSS2
,你怎么构造F-statistic???
我要检验Ho: ß1 = 1.75
的假设。我这样写:
model1<- lm (y - x)
model2<- lm (y - x, offset = 1.75*x)
anova(model1, model2)
但我无法获得 P 值。
有什么想法吗?谢谢。
编者注
这不是错字(所以不要因为错字而关闭); OP 的 ANOVA 输出显示他/她设法 运行 lm
成功,因此 -
很可能是错误输入。真正的问题在于 anova
.
存在语法错误:使用波浪号 ~
作为公式。阅读 ?lm
和 ?formula
了解更多。
您想对系数执行 t 检验。默认的 NULL 假设是 0 系数。如您所知,我们可以使用 offset
或类似的东西来移动系数。
summary
将为系数生成一个 table / 矩阵,您可以使用 coef
提取该 table / 矩阵:
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 检验?
您的问题因打字错误而被关闭,但实际上不止于此。您肯定不想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 相同。
回想一下,如果 m1
和 m2
有自由度 d1
和 d2
,F 统计量是
( (RSS1 - RSS2) / (d2 - d1) ) / ( RSS2 / (n - d2) )
具有自由度为 (d2 - d1, n - d2)
的 F 分布。如果d1 = d2
和RSS1 = RSS2
,你怎么构造F-statistic???