การทำงานร่วมกันเป็นไปได้ระหว่างสองตัวแปรต่อเนื่องหรือไม่


27

ตัวแปรทั้งหมดของฉันนั้นต่อเนื่อง ไม่มีระดับ เป็นไปได้ไหมที่จะมีปฏิสัมพันธ์ระหว่างตัวแปร?

คำตอบ:


31

ใช่ทำไมล่ะ การพิจารณาเช่นเดียวกับตัวแปรเด็ดขาดจะนำมาใช้ในกรณีนี้: ผลของในผลYจะไม่เหมือนกันขึ้นอยู่กับค่าของX 2 เพื่อช่วยให้เห็นภาพได้คุณสามารถนึกถึงค่าที่ถ่ายโดยX 1เมื่อX 2รับค่าสูงหรือต่ำ ตรงกันข้ามกับตัวแปรเด็ดขาดนี่ปฏิสัมพันธ์เป็นตัวแทนเพียงแค่ผลิตภัณฑ์ของX 1และX 2 โปรดทราบว่าจะเป็นการดีที่จะจัดให้ตัวแปรสองตัวของคุณอยู่ตรงกลางก่อน (เพื่อให้สัมประสิทธิ์สำหรับการพูดX 1อ่านเป็นผลของX 1เมื่อXX1YX2X1X2X1X2X1X1อยู่ที่ค่าเฉลี่ยตัวอย่าง)X2

ตามที่ได้รับคำแนะนำจาก @whuber วิธีที่ง่ายในการดูว่าแตกต่างกับY อย่างไรในฐานะเป็นฟังก์ชันของX 2เมื่อรวมคำศัพท์ไว้ด้วยกันคือการเขียนรูปแบบE ( Y | X ) = β 0 + β 1 X 1 + β 2 X 2 + β 3 X 1 X 2X1YX2E(Y|X)=β0+β1X1+β2X2+β3X1X2

จากนั้นจะเห็นได้ว่าผลของการเพิ่มขึ้นหนึ่งหน่วยในเมื่อX 2นั้นคงที่อาจแสดงเป็น:X1X2

E(Y|X1+1,X2)E(Y|X1,X2)=β0+β1(X1+1)+β2X2+β3(X1+1)X2(β0+β1X1+β2X2+β3X1X2)=β1+β3X2

X2X1β2+β3X1X1β1X2β2

คุณสามารถดูหลายการถดถอย: การทดสอบและการตีความการโต้ตอบโดย Leona S. Aiken, Stephen G. West และ Raymond R. Reno (Sage Publications, 1996) เพื่อดูภาพรวมของผลกระทบจากการปฏิสัมพันธ์หลายชนิดในการถดถอยหลายครั้ง . (นี่อาจจะไม่ใช่หนังสือที่ดีที่สุด แต่มีให้บริการผ่าน Google)

นี่คือตัวอย่างของเล่นใน R:

library(mvtnorm)
set.seed(101)
n <- 300                      # sample size
S <- matrix(c(1,.2,.8,0,.2,1,.6,0,.8,.6,1,-.2,0,0,-.2,1), 
            nr=4, byrow=TRUE) # cor matrix
X <- as.data.frame(rmvnorm(n, mean=rep(0, 4), sigma=S))
colnames(X) <- c("x1","x2","y","x1x2")
summary(lm(y~x1+x2+x1x2, data=X))
pairs(X)

โดยที่เอาต์พุตอ่านจริง:

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -0.01050    0.01860  -0.565    0.573    
x1           0.71498    0.01999  35.758   <2e-16 ***
x2           0.43706    0.01969  22.201   <2e-16 ***
x1x2        -0.17626    0.01801  -9.789   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 0.3206 on 296 degrees of freedom
Multiple R-squared: 0.8828, Adjusted R-squared: 0.8816 
F-statistic: 743.2 on 3 and 296 DF,  p-value: < 2.2e-16 

และนี่คือลักษณะของข้อมูลจำลองที่มีลักษณะ:

ข้อความแสดงแทน

YX2X1

library(Hmisc)
X$x1b <- cut2(X$x1, g=5) # consider 5 quantiles (60 obs. per group)
coplot(y~x2|x1b, data=X, panel = panel.smooth)

ข้อความแสดงแทน


5
(+1) หากคุณมีเวลาและความโน้มเอียงคุณอาจเสริมคำตอบนี้โดยขยายการเรียกร้องของคุณซึ่งรวมถึง X1 * X2 ทำให้เอฟเฟ็กต์ X1 ต่อ Y แตกต่างกับ X2 โดยเฉพาะรุ่น Y = b0 + b1 * X1 + b2 * X2 + b3 * (X1 * X2) + ข้อผิดพลาดนอกจากนี้ยังสามารถดูว่ามีรูปแบบ Y = b0 + (b1 + b3 * X2) * X1 + b2 * X2 + ข้อผิดพลาดแสดงให้เห็นว่าสัมประสิทธิ์ของ X1 - ซึ่งเท่ากับ b1 + b3 * X2 - แตกต่างกันไปด้วย X2 (และสมมาตรสัมประสิทธิ์ของ X2 แตกต่างกับ X1) นั่นเป็นรูปแบบที่เรียบง่ายและเป็นธรรมชาติของ "การโต้ตอบ"
whuber

1
@chl - ขอบคุณสำหรับการตอบกลับ ปัญหาที่ฉันมีคือฉันมีขนาดใหญ่n(11K) และกำลังใช้ MiniTab ทำพล็อตการโต้ตอบและใช้เวลาตลอดไปในการคำนวณ แต่ไม่แสดงอะไรเลย ฉันแค่ไม่แน่ใจว่าฉันจะดูว่ามีปฏิสัมพันธ์กับชุดข้อมูลนี้หรือไม่
TheCloudlessSky

3
@TheCloudlessSky: วิธีหนึ่งคือการแบ่งข้อมูลลงในถังขยะตามค่าของ X1 พล็อต Y กับ X2 bin โดย bin ค้นหาการเปลี่ยนแปลงในความลาดเอียงเนื่องจากถังขยะแตกต่างกันไป ทำเช่นเดียวกันกับบทบาทของ X1 และ X2 ที่ตรงกันข้าม
whuber

3
@chl จอแสดงภาพตาข่ายเป็นภาพที่ดี การแบ่งหนึ่งตัวแปรในช่วงเวลาเท่ากันนั้นน่าสนใจ มีวิธีการอื่น เช่น Tukey แนะนำหั่นโดยลดลงครึ่งหนึ่งหาง: นั่นคือหั่นค่า X2 ลงครึ่งหนึ่งที่อยู่ตรงกลางแล้วหั่นครึ่งเหล่านั้นโดยพวกเขามีเดียแล้วหั่นต่ำกว่าครึ่งหนึ่งของกลุ่มต่ำสุดเฉลี่ยของมันและบนครึ่งหนึ่งของที่สูงที่สุด กลุ่มที่ค่ามัธยฐานของมันและอื่น ๆ อย่างต่อเนื่องตราบใดที่กลุ่มใหม่มีข้อมูลเพียงพอ
whuber

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