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


15

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

คำถามของฉันคือที่ไหนผมผิดหรือเปล่า?


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

ฉันสร้างชุดข้อมูลที่ทำซ้ำได้ขนาดเล็ก(รหัสด้านล่าง) :

   exporter importer      flow     dist intraUS
1    Canada   Canada  996.8677 6.367287       0
2   Florida   Canada  995.8219 9.190562       0
3     Texas   Canada 1001.6475 4.359063       0
4    Mexico   Canada 1002.4371 7.476649       0
5    Canada  Florida 1002.8789 5.389223       0
6   Florida  Florida 1007.5589 6.779686       1
7     Texas  Florida  996.8938 1.570600       1
8    Mexico  Florida 1005.6247 5.910133       0
9    Canada    Texas  999.9190 7.887672       0
10  Florida    Texas 1004.1061 7.187803       1
11    Texas    Texas 1004.5949 7.564273       1
12   Mexico    Texas 1000.3728 2.021297       0
13   Canada   Mexico 1003.0991 5.887743       0
14  Florida   Mexico  999.2210 3.058495       0
15    Texas   Mexico  997.6092 6.835883       0
16   Mexico   Mexico 1006.7934 5.794425       0

แต่ละผู้ส่งออกผู้นำเข้าและเวลาเป็นรัฐของสหรัฐอเมริกาหุ่นเป็นintraUS1

ตอนนี้ผมดำเนินการถดถอยของ (การค้าบริการ) flowบนexporterและimporterหุ่นdistance และintraUSหุ่น การให้อาหาร R ด้วยสูตรต่อไปนี้lm(flow ~ dist + exporter + importer + intraUS, data = dat)จะคืนค่าประมาณของสัมประสิทธิ์ทั้งหมดไม่มีค่าขาดหายไปหรือคำเตือนเกี่ยวกับภาวะเอกฐาน:

(Intercept)            dist exporterFlorida   exporterTexas  exporterMexico importerFlorida   importerTexas  importerMexico        intraUS1 
995.1033157       0.5744661      -1.2340338      -1.8792073       3.7375783       3.0361727       1.3256032       3.3225512       4.2429599

ปริศนานี้ฉันเพราะเมทริกซ์ regressor อย่างชัดเจนบ่งชี้ว่าintraUSคือการรวมกันเชิงเส้นของexporterFlorida, importerFlorida, exporterTexasและimporterTexas:

> mmat <- data.frame(model.matrix(lm(flow ~ dist + exporter + importer + intraUS, data = dat)))

   X.Intercept.     dist exporterFlorida exporterTexas exporterMexico importerFlorida importerTexas importerMexico intraUS1
1             1 6.367287               0             0              0               0             0              0        0
2             1 9.190562               1             0              0               0             0              0        0
3             1 4.359063               0             1              0               0             0              0        0
4             1 7.476649               0             0              1               0             0              0        0
5             1 5.389223               0             0              0               1             0              0        0
6             1 6.779686               1             0              0               1             0              0        1
7             1 1.570600               0             1              0               1             0              0        1
8             1 5.910133               0             0              1               1             0              0        0
9             1 7.887672               0             0              0               0             1              0        0
10            1 7.187803               1             0              0               0             1              0        1
11            1 7.564273               0             1              0               0             1              0        1
12            1 2.021297               0             0              1               0             1              0        0
13            1 5.887743               0             0              0               0             0              1        0
14            1 3.058495               1             0              0               0             0              1        0
15            1 6.835883               0             1              0               0             0              1        0
16            1 5.794425               0             0              1               0             0              1        0

การคำนวณexporterFlorida * importerFlorida + exporterFlorida * importerTexas + exporterTexas * importerFlorida + exporterTexas * importerTexasให้ - ไม่น่าแปลกใจ - intraUS1ตรงค่าใน

ดังนั้นคำถามของฉันคืออีกครั้ง : เหตุใดการถดถอยนี้จึงไม่ล้มเหลวเนื่องจากตัวแปรหนึ่งเป็นชุดค่าผสมเชิงเส้นของตัวแปรอื่น


ด้านล่างของรหัสที่สมบูรณ์ทำให้เกิดการประมาณค่าใหม่:

## Generate data ####

set.seed(1)
states <- c("Canada", "Florida", "Texas", "Mexico")
dat <- expand.grid(states, states)
colnames(dat) <- c("exporter", "importer")

dat[, "flow"] <- NA
dat[, "dist"] <- NA
dat[, "intraUS"] <- 0

for (i in 1:nrow(dat)) {
  dat[i, c("flow", "dist")] <- c(rnorm(1, mean = 1000, sd = 5), rnorm(1, mean = 6, sd = 2))
  if (dat[i, "exporter"] %in% states[2:3] && dat[i, "importer"] %in% states[2:3]) {
    dat[i, "intraUS"] <- 1
  }
}
dat$intraUS <- factor(dat$intraUS)

## Run regression - works! ####

summary(lm(flow ~ dist + exporter + importer + intraUS, data = dat))

## Show that "intraUS1" is a linear combination of the dummies. ####

mmat <- data.frame(model.matrix(lm(flow ~ dist + exporter + importer + intraUS, data = dat)))

cbind(mmat, test = with(mmat,
                        exporterFlorida * importerFlorida + exporterFlorida * importerTexas +
                        exporterTexas * importerFlorida + exporterTexas * importerTexas
                        ))[, c("intraUS1", "test")]

9
Downvoters คุณจะอธิบายสิ่งที่ฉันทำผิดหรือเปล่า? ฉันไม่คุ้นเคยกับ Crossvalidated และต้องการทราบว่ามีอะไรผิดปกติกับคำถามนี้ดังนั้นฉันสามารถทำได้ดีขึ้นในครั้งต่อไป
CL

คำตอบ:


30

exporterFlorida * importerFlorida + exporterFlorida * importerTexas + exporterTexas * importerFlorida + exporterTexas * importerTexas

นี่คือไม่ได้รวมกันเชิงเส้นของexporterFlorida, importerFlorida, และimporterTexas exporterTexasในการรวมกันเชิงเส้นค่าสัมประสิทธิ์ของเวกเตอร์จะต้องมีค่าคงที่ ดังนั้นสิ่งที่ชอบ

2*importerFlorida + 3*importerTexas - exporterFlorida - 2*exporterTexas

คือการรวมกันเชิงเส้น

สิ่งที่คุณอาจเรียกได้ว่าเป็นการผสมผสานที่เป็นกำลังสอง แต่นั่นก็เป็นการขยายคำศัพท์ไปสู่ดินแดน "ฉันกำลังทำสิ่งต่าง ๆ "


2
ประณาม…นี่คือการลงโทษที่ไม่เคยเข้าร่วมหลักสูตรคณิตศาสตร์ แต่เริ่มต้นด้วยสถิติแทน ขอขอบคุณ!
CL

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