Answers:
这是适用于任何程序包的更广泛的解决方案,即使您只有回归输出(例如来自纸张),也可以使用。
取系数及其标准误差。
计算。t的df与H0:β=0的测试相同。
pt()
pt
-或其他任何具有t cdfs值的东西。许多包装都有这些,并且有广泛使用的t表。
您可以使用Glen_b建议的简单t检验,也可以使用更通用的Wald检验。
Wald检验允许在多个参数上检验多个假设。它被配制成:其中R选择(的组合)的系数,并且q指示针对要测试的值,β是所述标准regresison系数。
在您的示例中,对于一个参数只有一个假设,R是一个行向量,该参数的值是1,其他位置的值是0,q是要进行测试的限制的标量。
在R中,您可以从package car中运行带有函数linearHypothesis()的Wald测试。假设您要检查第二个系数(由参数hypothesis.matrix表示)是否不同于0.1(参数rhs):
reg <- lm(freeny)
coef(reg)
# wald test for lag.quarterly.revenue =0.1
>library(car)
>linearHypothesis(reg, hypothesis.matrix = c(0, 1, rep(0,3)), rhs=0.1)
#skip some result, look at last value on last row, of Pr(>F)
Res.Df RSS Df Sum of Sq F Pr(>F)
1 35 0.0073811
2 34 0.0073750 1 6.0936e-06 0.0281 0.8679
对于t检验,此函数实现Glen_b所示的t检验:
ttest <- function(reg, coefnum, val){
co <- coef(summary(reg))
tstat <- (co[coefnum,1]-val)/co[coefnum,2]
2 * pt(abs(tstat), reg$df.residual, lower.tail = FALSE)
}
> ttest(reg, 2,0.1)
[1] 0.8678848
通过比较第二个系数为零的标准假设,通过比较Wald,我们的t检验和R默认t检验,确保我们得到了正确的过程:
> linearHypothesis(reg, hypothesis.matrix = c(0, 1, rep(0,3)), rhs=0)[["Pr(>F)"]][2]
[1] 0.3904361
> ttest(reg, 2,0)
[1] 0.3904361
## The 'right' answer from R:
> coef(summary(reg))[2,4]
[1] 0.3904361
通过这三个过程,您应该获得相同的结果。
hypothesis.matrix
参数吗?
最后,最简单的解决方案是进行重新参数化:
gls(I(y - T*x) ~ x, ...)