Macro'nun yorumu, Andy'ninki gibi doğrudur. İşte bir örnek.
> 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
x2
Ve x2^2
terimlerini ayrı ayrı düşünmek yerine , "yığın testi", bu terimlerin katsayılarının her ikisinin de sıfır olduğuna dair sıfır hipotezini test eden 2-df testidir. ). Bu test için p değeri, tarafından verilen 0.0037'dir anova(ols1)
.
O Not rms
pakette, belirttiğiniz zorunda x2
gibi terimler pol(x2, 2)
için anova.rms()
birlikte test edilecek olduğunu bilmek.
anova.rms()
örneğin, rcs(x2, 3)
kategorik öngörücü değişkenler kullanılarak kısıtlı kübik spline olarak temsil edilen öngörücü değişkenler için benzer testler yapacaktır . Ayrıca "parçalara" etkileşim terimlerini de içerecektir.
Alıntıda belirtildiği gibi genel "rakip" öngörücü değişkenler için bir yığın testi yapmak isterseniz, iki modeli ayrı ayrı takarak ve sonra kullanarak manuel olarak yapmanız gerekeceğine inanıyorum anova(model1, model2)
. [Düzenle: bu yanlış - Frank Harrell'in cevabına bakınız.]