Le commentaire de Macro est correct, tout comme Andy. Voici un exemple.
> 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
Au lieu de considérer les termes x2
et x2^2
séparément, le "test de bloc" est le test à 2 df qui teste l'hypothèse nulle selon laquelle les coefficients de ces termes sont tous deux nuls (je crois qu'il est plus communément appelé quelque chose comme un "test F linéaire général" ). La valeur de p pour ce test est le 0,0037 donné par anova(ols1)
.
Notez que dans le rms
package, vous devez spécifier les x2
termes que pol(x2, 2)
pour anova.rms()
savoir qu'ils doivent être testés ensemble.
anova.rms()
effectuera des tests similaires pour les variables prédictives qui sont représentées comme des splines cubiques restreintes en utilisant, par exemple rcs(x2, 3)
, et pour les variables prédictives catégorielles. Il inclura également des termes d'interaction dans les "morceaux".
Si vous vouliez faire un test en bloc pour les variables prédictives «concurrentes» générales, comme mentionné dans la citation, je pense que vous devriez le faire manuellement en ajustant les deux modèles séparément puis en les utilisant anova(model1, model2)
. [Modifier: c'est incorrect - voir la réponse de Frank Harrell.]