ความคิดเห็นของมาโครนั้นถูกต้องเช่นเดียวกับแอนดี้ นี่คือตัวอย่าง
> 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
และx2^2
เงื่อนไขแยกกัน "การทดสอบก้อน" คือการทดสอบ 2 มิติซึ่งทดสอบสมมติฐานว่างว่าสัมประสิทธิ์ของคำเหล่านั้นมีค่าเป็นศูนย์ทั้งคู่ (ฉันเชื่อว่ามันมักจะเรียกกันว่าอะไรบางอย่าง ) P-คุ้มค่าสำหรับการทดสอบว่าเป็น 0.0037 anova(ols1)
กำหนดโดย
โปรดทราบว่าในrms
แพ็คเกจคุณต้องระบุx2
เงื่อนไขpol(x2, 2)
เพื่อanova.rms()
ให้ทราบว่าจะต้องทดสอบด้วยกัน
anova.rms()
จะทำการทดสอบที่คล้ายกันสำหรับตัวแปรของตัวทำนายซึ่งจะแสดงเป็นเส้นโค้งลูกบาศก์แบบ จำกัด โดยใช้ตัวอย่างเช่นrcs(x2, 3)
และสำหรับตัวแปรตัวทำนายเชิงหมวดหมู่ นอกจากนี้ยังจะรวมคำที่มีการโต้ตอบไว้ใน "ชิ้นข้อมูล" ด้วย
ถ้าคุณอยากจะทำแบบทดสอบอันทั่วไป "การแข่งขัน" anova(model1, model2)
ตัวแปรตามที่กล่าวไว้ในใบเสนอราคาผมเชื่อว่าคุณจะต้องทำด้วยตนเองโดยการปรับทั้งสองรุ่นแยกแล้วใช้ [แก้ไข: สิ่งนี้ไม่ถูกต้อง - ดูคำตอบของ Frank Harrell]