การทดสอบชิ้นอะไรคืออะไร?


13

ในการตอบคำถามเกี่ยวกับการเลือกรูปแบบในการปรากฏตัวของพหุ , แฟรงก์ Harrell แนะนำ :

วางตัวแปรทั้งหมดในแบบจำลอง แต่ไม่ทดสอบผลของตัวแปรเดียวที่ปรับสำหรับผลกระทบของตัวแปรที่แข่งขันกัน ... การทดสอบกลุ่มของตัวแปรที่แข่งขันกันนั้นมีประสิทธิภาพเพราะตัวแปร collinear รวมเข้าด้วยกันในการทดสอบความสัมพันธ์แบบอิสระหลายระดับโดยรวม แข่งขันกับแต่ละอื่น ๆ เช่นเมื่อคุณทดสอบตัวแปรแต่ละรายการ

การทดสอบชิ้นอะไรคืออะไร? คุณสามารถยกตัวอย่างการใช้งานของพวกเขาได้rหรือไม่?


3
ฉันคิดว่านี่หมายถึงการทดสอบบล็อกของตัวแปรในแต่ละครั้งที่ความเป็นไปได้ทั้งหมดเกิดขึ้นภายในบล็อกซึ่งไม่มีผลต่อการทดสอบของรถโดยสารเช่นการทดสอบหรือการทดสอบอัตราส่วนความน่าจะเป็น แต่ฉันไม่เคยได้ยินคำว่า " การทดสอบก้อน " F
มาโคร

2
สถานการณ์หนึ่งที่ฉันได้เห็นพวกเขาแนะนำ (และทำด้วยตัวเอง) คือเมื่อคุณมีชุดของตัวแปรดัมมี่หลาย ๆ ตัวที่ไม่เกิดร่วมกัน (เช่นตัวแปรอิสระเล็กน้อยที่มีหมวดหมู่ที่มีศักยภาพมากมาย) การทดสอบสัมประสิทธิ์บุคคลใด ๆ ที่เกี่ยวข้องกับตัวแปรดัมมี่เดี่ยวนั้นไม่น่าสนใจมากนักเนื่องจากเป็นการทดสอบความแตกต่างเฉพาะกับสิ่งที่คุณเลือกเป็นพื้นฐาน ดังนั้นการทดสอบที่ให้ข้อมูลมากขึ้นคือการทดสอบอัตราส่วนความน่าจะเป็นของแบบจำลองที่ จำกัด ซึ่งตัดตัวแปรจำลองทั้งหมดออก
Andy W

2
Paging @FrankHarrell ...
fmark

ที่ใช้งานไม่ได้ fmark :)
สำคัญ

1
ความอัปยศที่มันควรจะ :)
fmark

คำตอบ:


13

@ mark999 ให้คำตอบที่ดีเยี่ยม นอกเหนือจากการทดสอบคำพหุนามร่วมกันคุณสามารถทดสอบร่วมกัน ("การทดสอบชิ้น") ชุดตัวแปรใดก็ได้ สมมติว่าคุณมีรูปแบบที่มีตัวแปร collinear แข่งขันเส้นรอบวง tricep, เอว, รอบสะโพก, การวัดขนาดร่างกายทั้งหมด หากต้องการรับการทดสอบขนาดร่างกายโดยรวมคุณสามารถทำได้

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

คุณสามารถได้รับการทดสอบเดียวกันโดยการปรับแบบจำลองที่มีเพียงอายุเท่านั้น (หากไม่มีNAในtricep, waist, hip) และทำการทดสอบ "ความแตกต่างในการทดสอบ " การทดสอบที่เท่าเทียมกันเหล่านี้ไม่ได้รับผลกระทบที่รุนแรงแม้แต่น้อยในสามตัวแปรนี้R2


1
ขอบคุณที่ชี้แฟรงค์ออกมา ฉันไม่รู้ว่าคุณสามารถทำได้
mark999

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              

แทนที่จะพิจารณาข้อตกลง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]


2
(+1) นอกจากนี้ยังเป็นที่น่าสังเกตว่าการทดสอบคำพหุนามแต่ละรายการอาจเป็นปัญหาได้เนื่องจากยกเว้นในกรณีพิเศษ (เช่นเมื่อตัวทำนายมีความสมมาตรรอบศูนย์ ) พวกเขาเป็น collinear (มักจะสูงมาก) กับคำพหุนามอื่น ๆ c o r ( X , X 2 ) = 0Xcor(X,X2)=0
มาโคร

เพื่อความชัดเจนฉันคิดว่าฉันได้รับการสอนว่าเป็น "การทดสอบ F บางส่วน" ซึ่งคุณทดสอบตัวแปร 2 ตัวหรือมากกว่านั้นเพื่อความสำคัญร่วมกัน หรือไม่ว่าชุดย่อยของตัวแปรในแบบจำลองของคุณจะได้รับการปรับปรุงมากกว่าแบบจำลองที่ จำกัด มากขึ้น (เช่นเดียวกับการทดสอบอัตราส่วนความน่าจะเป็น) ฉันถูกไหม?
C. Pieters

@ C.Pieters ฉันไม่รู้ว่าคุณถูกต้อง แต่ฟังดูสมเหตุสมผล
mark999
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.