Ch2f2的电子式:R中 β 1= β2的F检验(f test linear regression)

关于Ch2f2的电子式的问题,在f test linear regression中经常遇到, 如果我的模型看起来像这样,Y = β 0 + β 1X1 + β 2X2 + β 3X3 + β 4X4,我想在 R 中对 β 1 = β 2 进行 F 测试(5 %),我该怎么办?

如果我的模型看起来像这样,Y = β 0 + β 1X1 + β 2X2 + β 3X3 + β 4X4,我想在 R 中对 β 1 = β 2 进行 F 测试(5 %),我该怎么办?

1

是 R 测试vs的系数是否与am的系数相同的示例:

data(mtcars)
mod <- lm(mpg ~ hp + disp + vs + am, data=mtcars)
library(car)
linearHypothesis(mod, "vs=am")
# Linear hypothesis test
# 
# Hypothesis:
#   vs - am = 0
# 
# Model 1: restricted model
# Model 2: mpg ~ hp + disp + vs + am
# 
# Res.Df    RSS Df Sum of Sq      F Pr(>F)
# 1     28 227.07                           
# 2     27 213.52  1    13.547 1.7131 0.2016
1

multcomp包中的glht函数可以做到这一点(除其他外)。例如,如果您的模型是

mod1 <-lm( y ~ x1 + x2 + x3 + x4)

那么你可以使用:

summary(multcomp::glht(mod1, "x1-x2=0"))
1

带和不带约束运行模型,然后使用 anova 进行比较。没有使用包

mod1 <- lm(mpg ~ cyl + disp + hp + drat, mtcars)
mod2 <- lm(mpg ~ I(cyl + disp) + hp + drat, mtcars) # constraint imposed
anova(mod2, mod1)

给:

Analysis of Variance Table
Model 1: mpg ~ I(cyl + disp) + hp + drat
Model 2: mpg ~ cyl + disp + hp + drat
  Res.Df    RSS Df Sum of Sq      F Pr(>F)
1     28 252.95                           
2     27 244.90  1    8.0513 0.8876 0.3545

基本计算如下。它给出了与上面相同的结果。

L <- matrix(c(0, 1, -1, 0, 0), 1)  # hypothesis is L %*% beta == 0
q <- nrow(L) # 1
co <- coef(mod1)
resdf <- df.residual(mod1) # = s(mod1) - length(co) = 32 - 5 = 27
SSH <- t(L %*% co) %*% solve(L %*% vcov(mod1) %*% t(L)) %*% L %*% co
SSH/q # F value
##           [,1]
## [1,] 0.8876363
pf(SSH/q, q, resdf, lower.tail = FALSE) # p value
##           [,1]
## [1,] 0.3544728

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(74)
C语言算术平方根:使用整数算术计算平方根(arithmetic square)
上一篇
Ovf20变频器调试资料:将 OVF转换为物理机(convert physical machine to vm)
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(54条)