ความยากลำบากในการทดสอบความเป็นเชิงเส้นในการถดถอย


21

ในการสร้างแบบจำลองทางสถิติ: สองวัฒนธรรม Leo Breiman เขียน

แนวปฏิบัติที่ใช้ในปัจจุบันคือการตรวจสอบแบบจำลองข้อมูลโดยใช้การทดสอบแบบดีและการวิเคราะห์ส่วนที่เหลือ เมื่อถึงจุดหนึ่งหลายปีที่ผ่านมาฉันตั้งค่าปัญหาการถดถอยแบบจำลองในเจ็ดมิติด้วยจำนวนที่ไม่ควบคุมเชิงเส้น การทดสอบมาตรฐานของความดีพอดีไม่ได้ปฏิเสธความเป็นเชิงเส้นจนกว่าความไม่เชิงเส้นจะรุนแรงมาก

Breiman ไม่ได้ให้รายละเอียดเกี่ยวกับการจำลองของเขา เขาอ้างอิงกระดาษที่เขาบอกว่าให้เหตุผลทางทฤษฎีสำหรับการสังเกตของเขา แต่กระดาษไม่ได้ตีพิมพ์

มีใครเคยเห็นผลการจำลองที่ตีพิมพ์หรือรายงานทางทฤษฎีเพื่อสนับสนุนข้อเรียกร้องของ Brieman บ้างไหม?


1
สุดขีดเป็นการยากที่จะตัดสินทุกฟังก์ชั่นเข้าใกล้เป็นช่วง ๆ อย่างที่เรารู้จากการสลายตัวของซีรี่ส์เทย์เลอร์ ทำไมแนวทางของเกณฑ์ข้อมูลและข้อมูลของ Burnham และ Anderson ในการเลือกแบบจำลองจึงไม่สามารถแก้ปัญหานี้ได้ดี?
Patrick McCann

คำตอบ:


11

ฉันสร้างแบบจำลองที่จะตอบคำอธิบายของ Breiman และพบเฉพาะสิ่งที่ชัดเจน: ผลลัพธ์ขึ้นอยู่กับบริบทและ "ความรุนแรง"

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

set.seed(41)
p <- 7                                            # Dimensions
n <- 2^p                                          # Observations
x <- as.matrix(do.call(expand.grid, lapply(as.list(1:p), function(i) c(-1,1))))
x <- x + runif(n*p, min=-1, max=1)
x <- cbind(x, x.12 = x[,1]*x[,2])                 # The nonlinear part
x <- apply(x, 2, function(y) (y - mean(y))/sd(y)) # Standardization

สำหรับโมเดล OLS พื้นฐาน (โดยไม่มีความไม่เชิงเส้น) เราจะต้องระบุค่าสัมประสิทธิ์และค่าเบี่ยงเบนมาตรฐานของข้อผิดพลาดที่เหลือ นี่คือชุดของค่าสัมประสิทธิ์หน่วยและ SD เทียบเคียง:

beta <- rep(c(1,-1), p)[1:p]
sd <- 1

เพื่อแสดงให้เห็นถึงสถานการณ์นี่คือการวนซ้ำของฮาร์ดโค้ดของการจำลอง มันสร้างตัวแปรตาม, สรุปค่าของมัน, แสดงเมทริกซ์สหสัมพันธ์แบบเต็มของตัวแปรทั้งหมด (รวมถึงการมีปฏิสัมพันธ์), และแสดงเมทริกซ์กระจาย จากนั้นจะดำเนินการถดถอย OLS ในต่อไปนี้ค่าสัมประสิทธิ์การโต้ตอบที่จะมีค่าน้อยกว่าค่าสัมประสิทธิ์อื่น ๆ (เท่ากับหรือ ) ดังนั้นจึงยากที่จะเรียกว่า "สุดขีด":1/41-1

gamma = 1/4          # The standardized interaction term
df <- data.frame(x)
df$y <- x %*% c(beta, gamma) + rnorm(n, sd=sd)
summary(df)
cor(df)*100
plot(df, lower.panel=function(x,y) lines(lowess(y~x)), 
     upper.panel=function(x,y) points(x,y, pch=".", cex=4))
summary(lm(df$y ~ x))

แทนที่จะดูผลลัพธ์ทั้งหมดที่นี่ลองดูข้อมูลเหล่านี้โดยใช้ผลลัพธ์ของplotคำสั่ง:

SPM

ร่องรอย lowess บนสามเหลี่ยมแสดงที่ต่ำกว่าหลักความสัมพันธ์เชิงเส้นตรงระหว่างไม่มีปฏิสัมพันธ์ ( x.12) และตัวแปรตาม ( y) และความสัมพันธ์เชิงเส้นเจียมเนื้อเจียมตัวระหว่างตัวแปรอื่น ๆ yและ ผลลัพธ์ของ OLS ยืนยันว่า ปฏิสัมพันธ์มีความสำคัญแทบ:

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   0.0263     0.0828    0.32    0.751    
xVar1         0.9947     0.0833   11.94   <2e-16 ***
xVar2        -0.8713     0.0842  -10.35   <2e-16 ***
xVar3         1.0709     0.0836   12.81   <2e-16 ***
xVar4        -1.0007     0.0840  -11.92   <2e-16 ***
xVar5         1.0233     0.0836   12.24   <2e-16 ***
xVar6        -0.9514     0.0835  -11.40   <2e-16 ***
xVar7         1.0482     0.0835   12.56   <2e-16 ***
xx.12         0.1902     0.0836    2.27    0.025 *  

ฉันจะใช้ค่า p-value ของเทอมการโต้ตอบเพื่อทดสอบความไม่เชิงเส้น: เมื่อค่า p นี้ต่ำพอ (คุณสามารถเลือกได้ว่าต่ำแค่ไหน) เราจะตรวจพบความไม่เชิงเส้น

(มีความละเอียดอ่อนที่นี่เกี่ยวกับสิ่งที่เรากำลังมองหาในทางปฏิบัติเราอาจจำเป็นต้องตรวจสอบทั้งหมด 7 * 6/2 = 21 ที่เป็นไปได้การโต้ตอบสมการกำลังสองเช่นเดียวกับบางทีอาจจะเป็นคำสองกำลังสองมากกว่าเน้นคำเดียว เราต้องการทำการแก้ไขสำหรับการทดสอบที่เกี่ยวข้องกับ 28 รายการนี้ฉันไม่ได้ทำการแก้ไขอย่างชัดเจนที่นี่เพราะแทนที่จะแสดงการกระจายแบบจำลองของค่า p คุณสามารถอ่านอัตราการตรวจจับได้โดยตรงจาก histograms ที่สิ้นสุดอยู่บนพื้นฐานของเกณฑ์อย่างมีนัยสำคัญ.)

แต่อย่าเพิ่งทำการวิเคราะห์ครั้งนี้ ลองทำหลาย ๆ ครั้งสร้างค่าใหม่ของyในแต่ละการวนซ้ำตามโมเดลเดียวกันและเมทริกซ์การออกแบบเดียวกัน ในการทำสิ่งนี้ให้สำเร็จเราใช้ฟังก์ชั่นในการทำซ้ำหนึ่งรอบและส่งคืนค่า p ของคำศัพท์โต้ตอบ:

test <- function(gamma, sd=1) {
  y <- x %*% c(beta, gamma) + rnorm(n, sd=sd)
  fit <- summary(lm(y ~ x))
  m <- coef(fit)
  n <- dim(m)[1]
  m[n, 4]
}

ฉันเลือกที่จะนำเสนอผลการจำลองเป็นฮิสโทแกรมของค่า p โดยแปรผันค่าสัมประสิทธิ์มาตรฐานgammaของคำที่ใช้โต้ตอบ ก่อนฮิสโตแกรม:

h <- function(g, n.trials=1000) {
  hist(replicate(n.trials, test(g, sd)), xlim=c(0,1), 
       main=toString(g), xlab="x1:x2 p-value")
}
par(mfrow=c(2,2)) # Draw a 2 by 2 panel of results

ตอนนี้ไปทำงาน ใช้เวลาสองสามวินาทีสำหรับการทดลอง 1,000 ครั้งต่อการจำลอง (และการจำลองสี่ครั้งโดยเริ่มจากค่าที่กำหนดของคำที่ใช้ในการโต้ตอบและลดลงครึ่งหนึ่งต่อเนื่องทุกครั้ง):

temp <- sapply(2^(-3:0) * gamma, h)

ผลลัพธ์ที่ได้:

histograms

อ่านย้อนกลับจากด้านล่างขวา, แปลงเหล่านี้แสดงให้เห็นว่านี้เมทริกซ์การออกแบบxสำหรับการนี้เบี่ยงเบนมาตรฐานของความผิดพลาดsdและสำหรับเหล่านี้ค่าสัมประสิทธิ์มาตรฐานbeta, OLS สามารถตรวจสอบการมีปฏิสัมพันธ์มาตรฐานของ (หนึ่งในสี่เพียงแค่ขนาดของค่าสัมประสิทธิ์อื่น ๆ ) น่าเชื่อถือมากกว่า 80% ของเวลา (ใช้เกณฑ์ 5% สำหรับ p-value - จำการอภิปรายสั้น ๆ เกี่ยวกับการแก้ไขสำหรับการเปรียบเทียบหลายซึ่งตอนนี้ฉันไม่สนใจ); มันสามารถตรวจจับขนาดการโต้ตอบที่ (ประมาณ 20% ของเวลา) บางครั้งมันจะตรวจจับการโต้ตอบขนาด1/41/81/16และไม่สามารถระบุการโต้ตอบที่น้อยลงได้จริงๆ ไม่แสดงที่นี่คือฮิสโตแกรมที่gammaมีค่าเท่ากับซึ่งแสดงให้เห็นว่าแม้ว่าเมื่อแก้ไขการเปรียบเทียบหลายครั้งแล้วการโต้ตอบแบบสมการกำลังสองที่มีขนาดใหญ่นี้จะถูกตรวจพบอย่างแน่นอน1/2

ไม่ว่าคุณจะใช้การโต้ตอบเหล่านี้ซึ่งมีขนาดตั้งแต่ไปจะเป็น "ที่สุด" หรือไม่ได้จะขึ้นอยู่กับมุมมองของคุณเกี่ยวกับสถานการณ์การถดถอย (ตามที่แสดงโดย, และ) อยู่กับจำนวนการทดสอบอิสระ คุณจินตนาการถึงการไม่เคลื่อนไหวและก้าวย่าง Breiman ที่ฉันให้ความเคารพอย่างมากบางทีคุณอาจมีขวานขวานบดหรือเปล่า แน่นอนว่าคุณสามารถทำให้ OLS ตรวจจับความไม่เชิงเส้นได้อย่างง่ายดาย: เพียงทำให้พองตัวเพื่อเพิ่มความไม่เป็นเชิงเส้นและทำการทดสอบต่าง ๆ เพื่อความเหมาะสม1/321/4xsdbetasd

กล่าวโดยย่อการจำลองสถานการณ์เช่นนี้สามารถพิสูจน์ได้ว่าคุณชอบอะไรถ้าคุณเพิ่งตั้งค่าและตีความอย่างถูกวิธี นั่นแสดงให้เห็นว่านักสถิติแต่ละคนควรดำเนินการสำรวจของตนเองซึ่งเหมาะสมกับปัญหาเฉพาะที่พวกเขาต้องเผชิญเพื่อที่จะเข้าใจความสามารถและจุดอ่อนของกระบวนการที่พวกเขาใช้อย่างลึกซึ้งและเป็นส่วนตัว


+1 แค่ FYI ฉันสังเกตว่าคุณเขียนฟังก์ชันของคุณเองเพื่อทำให้ข้อมูลของคุณเป็นมาตรฐานคุณอาจพบว่ามีประโยชน์
gung - Reinstate Monica

ขอบคุณ @gung ฉันแน่ใจว่ามีฟังก์ชั่นดังกล่าวอยู่ แต่ไม่สามารถนึกถึงชื่อของมันได้ ฉันค่อนข้างใหม่Rและชื่นชมตัวชี้ดังกล่าวอยู่เสมอ
whuber

1

ไม่แน่ใจว่ามันจะช่วยให้คำตอบสุดท้ายกับคำถาม แต่ผมจะให้ดูที่นี้ โดยเฉพาะอย่างยิ่งชี้ 2. ดูการอภิปรายในภาคผนวก A2 ของกระดาษ


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