Il commento di Macro è corretto, così come Andy. Ecco un esempio
> 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
Invece di considerare separatamente i termini x2e x2^2, il "chunk test" è il test 2-df che verifica l'ipotesi nulla che i coefficienti di questi termini siano entrambi zero (credo che sia più comunemente chiamato qualcosa come un "test F lineare generale" ). Il valore p per quel test è lo 0,0037 fornito da anova(ols1).
Si noti che nel rmspacchetto, è necessario specificare i x2termini pol(x2, 2)per anova.rms()sapere che devono essere testati insieme.
anova.rms()eseguirà test simili per variabili predittive che sono rappresentate come spline cubiche limitate utilizzando, ad esempio rcs(x2, 3), e per variabili predittive categoriali. Includerà anche termini di interazione nei "blocchi".
Se volessi fare un test di blocco per variabili predittive "concorrenti" generali, come menzionato nella citazione, credo che dovresti farlo manualmente montando i due modelli separatamente e quindi usando anova(model1, model2). [Modifica: questo non è corretto - vedi la risposta di Frank Harrell.]