什么是组块测试?


13

在回答存在多重共线性的模型选择问题时,Frank Harrell 建议

将所有变量放入模型中,但不测试针对竞争变量的影响而调整的一个变量的影响...竞争变量的块测试功能强大,因为共线性变量在整体多自由度关联测试中共同作用,而不是当您分别测试变量时,彼此竞争。

什么是块测试?你能举一个例子说明他们的应用r吗?


3
我以为这是指一次测试变量块,其中所有潜在的共线性都发生在一个块内,这不会影响测试或似然比测试之类的综合测试,但我从未听说过“块测试”。F
2012年

2
我看到他们建议(并亲自完成)的一种情况是,您有一系列许多互斥的虚拟变量(例如,具有许多潜在类别的名义独立变量)。对与任何单个虚拟变量相关联的任何单个系数的测试不是很有趣,因为它会使用您选择的基准来测试特定的对比度。因此,更具信息性的测试是受限模型的似然比测试,其中省略了所有虚拟变量。
Andy W

2
分页@FrankHarrell ...
fmark

这是行不通的,fmark。:)
主教

1
真可惜

Answers:


13

@ mark999提供了一个很好的答案。除了共同检验多项式项,您还可以共同检验(“块检验”)任何变量集。假设您有一个模型,该模型具有竞争共线变量tricep圆周,腰围,臀围和所有身体尺寸度量。要进行整体体重测试,您可以

require(rms)
f <- ols(y ~ age + tricep + waist + pol(hip,2))
anova(f, tricep, waist, hip)  # 4 d.f. test

NAtricep, waist, hipR2


1
感谢您指出弗兰克。我不知道你能做到
mark999 2012年

12

宏的评论是正确的,安迪也是如此。这是一个例子。

> library(rms)
> 
> set.seed(1)
> d <- data.frame(x1 = rnorm(50), x2 = rnorm(50))
> d <- within(d, y <- 1 + 2*x1 + 0.3*x2 + 0.2*x2^2 + rnorm(50))
> 
> ols1 <- ols(y ~ x1 + pol(x2, 2), data=d) # pol(x2, 2) means include x2 and x2^2 terms
> ols1

Linear Regression Model

ols(formula = y ~ x1 + pol(x2, 2), data = d)

                Model Likelihood     Discrimination    
                   Ratio Test           Indexes        
Obs       50    LR chi2     79.86    R2       0.798    
sigma 0.9278    d.f.            3    R2 adj   0.784    
d.f.      46    Pr(> chi2) 0.0000    g        1.962    

Residuals

    Min      1Q  Median      3Q     Max 
-1.7463 -0.4789 -0.1221  0.4465  2.2054 

          Coef   S.E.   t     Pr(>|t|)
Intercept 0.8238 0.1654  4.98 <0.0001 
x1        2.0214 0.1633 12.38 <0.0001 
x2        0.2915 0.1500  1.94 0.0581  
x2^2      0.2242 0.1163  1.93 0.0602  


> anova(ols1)
                Analysis of Variance          Response: y 

 Factor     d.f. Partial SS MS          F      P     
 x1          1   131.894215 131.8942148 153.20 <.0001
 x2          2    10.900163   5.4500816   6.33 0.0037
  Nonlinear  1     3.196552   3.1965524   3.71 0.0602
 REGRESSION  3   156.011447  52.0038157  60.41 <.0001
 ERROR      46    39.601647   0.8609054              

无需单独考虑x2x2^2项,“块检验”是2-df检验,用于检验零项假设,即这些项的系数都为零(我相信通常将其称为“一般线性F检验”)。 )。该测试的p值为0.0037,由给出anova(ols1)

注意,在rms包中,您必须指定x2条款pol(x2, 2)anova.rms()知道,他们是一起测试。

anova.rms()将会对使用例如表示为受限三次样条的预测变量进行类似测试rcs(x2, 3),并对分类预测变量进行类似的测试。它还将在“块”中包括交互作用术语。

如引文中所述,如果您想对一般的“竞争性”预测变量进行大块测试,我相信您必须通过分别拟合两个模型然后使用来手动进行anova(model1, model2)。[编辑:这不正确-请参见弗兰克·哈雷尔的答案。]


2
Xcor(X,X2)=0

为了清楚起见,我认为这是作为“部分F检验”进行的,您可以在其中检验两个或多个变量的联合显着性。或者,模型中的变量子集是否比更严格的模型有所改进(就像似然比检验)。我对么?
C. Pieters'5

@ C.Pieters我不知道您是否正确,但这听起来很合理。
mark999 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.