การเพิ่มเอฟเฟกต์แบบสุ่มมีผลต่อการประมาณค่าสัมประสิทธิ์


10

ฉันได้รับการสอนเสมอว่าเอฟเฟกต์แบบสุ่มมีอิทธิพลต่อความแปรปรวน (ข้อผิดพลาด) เท่านั้นและเอฟเฟกต์แบบคงที่จะมีอิทธิพลต่อค่าเฉลี่ยเท่านั้น แต่ฉันได้พบตัวอย่างที่ผลกระทบแบบสุ่มมีอิทธิพลต่อค่าเฉลี่ย - การประมาณค่าสัมประสิทธิ์:

require(nlme)
set.seed(128)
n <- 100
k <- 5
cat <- as.factor(rep(1:k, each = n))
cat_i <- 1:k # intercept per kategorie
x <- rep(1:n, k)
sigma <- 0.2
alpha <- 0.001
y <- cat_i[cat] + alpha * x + rnorm(n*k, 0, sigma)
plot(x, y)

# simulate missing data
y[c(1:(n/2), (n*k-n/2):(n*k))] <- NA

m1 <- lm(y ~ x)
summary(m1)

m2 <- lm(y ~ cat + x)
summary(m2)

m3 <- lme(y ~ x, random = ~ 1|cat, na.action = na.omit)
summary(m3)

คุณจะเห็นว่าค่าสัมประสิทธิ์โดยประมาณสำหรับxจากรุ่นm1คือ -0.013780 ในขณะที่จากรุ่นm3คือ 0.0011713 - ทั้งคู่แตกต่างจากศูนย์อย่างมีนัยสำคัญ

โปรดทราบว่าเมื่อฉันลบบรรทัดที่จำลองข้อมูลที่หายไปผลลัพธ์จะเหมือนกัน (เป็นเมทริกซ์แบบเต็ม)

ทำไมถึงเป็นอย่างนั้น?

ป.ล. : โปรดทราบว่าฉันไม่ใช่นักสถิติมืออาชีพดังนั้นหากคุณกำลังจะตอบสนองด้วยคณิตศาสตร์จำนวนมากโปรดทำข้อสรุปง่ายๆสำหรับหุ่นจำลอง :-)


ผมคิดว่าคุณอยากจะบอกว่า "จากรุ่นm3มันเป็น 0.0011713" m2แทน
usεr11852

ฉันขอโทษ @ user11852 ใช่คุณถูกต้องขอบคุณ (BTW เพราะm2มันถูกต้องเช่นกัน (ซึ่งเป็นเรื่องของคำถามอื่น )
อยากรู้อยากเห็น

คำตอบ:


11

"ฉันได้รับการสอนเสมอว่าเอฟเฟกต์แบบสุ่มมีอิทธิพลต่อความแปรปรวน (ข้อผิดพลาด) เท่านั้นและเอฟเฟกต์แบบคงที่จะมีอิทธิพลต่อค่าเฉลี่ยเท่านั้น"

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

เมื่อเงื่อนไขเหล่านี้ไม่ถือ (เนื่องจากบ่อยครั้งมากไม่ได้อยู่ใน "โลกแห่งความเป็นจริง") เอฟเฟกต์แบบคงที่และแบบสุ่มจะไม่เป็นอิสระ นี่คือเหตุผลว่าทำไมโมเดลแบบผสม "สมัยใหม่" จึงถูกประเมินโดยใช้วิธีการปรับให้เหมาะสมแบบวนซ้ำมากกว่าที่จะได้รับการแก้ไขด้วยพีชคณิตเมทริกซ์เล็กน้อยในกรณีของ ANOVA ผสมแบบคลาสสิก: เพื่อประเมินผลคงที่ รู้เอฟเฟกต์แบบสุ่ม แต่เพื่อประเมินเอฟเฟกต์แบบสุ่มเราต้องรู้ถึงผลกระทบคงที่! มีความเกี่ยวข้องกับคำถามปัจจุบันมากขึ้นซึ่งหมายความว่าเมื่อข้อมูลไม่สมดุล / ไม่สมบูรณ์และ / หรือมีตัวทำนายอย่างต่อเนื่องในโมเดลจากนั้นปรับโครงสร้างผลกระทบแบบสุ่มของโมเดลผสมสามารถแก้ไขการประมาณของส่วนคงที่ของโมเดลได้ , และในทางกลับกัน.

แก้ไข 2016-07-05 จากความคิดเห็น: " คุณช่วยอธิบายหรืออธิบายได้ว่าทำไมตัวทำนายต่อเนื่องจะมีผลต่อค่าประมาณของส่วนที่คงที่ของตัวแบบ? "

การประมาณการสำหรับส่วนที่คงที่ของโมเดลจะขึ้นอยู่กับการประมาณการสำหรับส่วนที่สุ่มของโมเดลนั่นคือองค์ประกอบความแปรปรวนโดยประมาณ - หาก (แต่ไม่เพียง แต่ถ้า) ความแปรปรวนของตัวทำนายนั้นแตกต่างกันตามกลุ่ม ซึ่งเกือบจะเป็นจริงหากตัวทำนายใด ๆ มีข้อมูลอย่างต่อเนื่อง (อย่างน้อยในข้อมูล "โลกแห่งความจริง" - ในทางทฤษฎีมันอาจเป็นไปได้ที่สิ่งนี้จะไม่เป็นจริงเช่นในชุดข้อมูลที่สร้างขึ้น)


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

@ robin.datadrivers โอเคฉันได้เพิ่มเล็กน้อยเกี่ยวกับเรื่องนั้น
Jake Westfall

3

ในระดับแรกฉันคิดว่าคุณไม่สนใจการหดตัวต่อค่านิยมของประชากร " ความชันและวัตถุสกัดกั้นจากโมเดลผสมเอฟเฟกต์ใกล้เคียงกับค่าประมาณของประชากรมากกว่าการประมาณกำลังสองน้อยที่สุดภายในเรื่อง " [อ้างอิง 1] ลิงค์ต่อไปนี้อาจเป็นประโยชน์เช่นกัน ( คำอธิบายที่เหมาะสมในการมองหาโมเดลผสมของฉันคืออะไร ) ดูคำตอบของ Mike Lawrence)

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

ลองใช้รหัสต่อไปนี้ซึ่งมีกระบวนการเดียวกันโดยไม่มีค่าขาดหายไปในขณะนี้:

 cat <- as.factor(sample(1:5, n*k, replace=T) ) #This should be a bit unbalanced.
 cat_i <- 1:k # intercept per kategorie
 x <- rep(1:n, k)
 sigma <- 0.2
 alpha <- 0.001
 y <- cat_i[cat] + alpha * x + rnorm(n*k, 0, sigma) 

 m1 <- lm(y ~ x)  
 m3 <- lme(y ~ x, random = ~ 1|cat, na.action = na.omit) 

 round(digits= 7,fixef(m3)) ==  round(digits=7, coef(m1)) #Not this time lad.
 #(Intercept)           x 
 #      FALSE       FALSE 

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

ที่จริงถ้าคุณเล่นพร้อมกับรูปแบบค่าที่หายไปในทางที่งี่เง่า (เช่น:) y[ c(1:10, 100 + 1:10, 200 + 1:10, 300 + 1:10, 400 +1:10)] <- NAดังนั้นการออกแบบของคุณยังคงสมดุลอย่างสมบูรณ์คุณจะได้รับค่าสัมประสิทธิ์เดียวกันอีกครั้ง

 require(nlme)
 set.seed(128)
 n <- 100
 k <- 5
 cat <- as.factor(rep(1:k, each = n))
 cat_i <- 1:k # intercept per kategorie
 x <- rep(1:n, k)
 sigma <- 0.2
 alpha <- 0.001
 y <- cat_i[cat] + alpha * x + rnorm(n*k, 0, sigma)
 plot(x, y)

 # simulate missing data in a perfectly balanced way
 y[ c(1:10, 100 + 1:10, 200 + 1:10, 300 + 1:10, 400 +1:10)] <- NA

 m1 <- lm(y ~ x)  
 m3 <- lme(y ~ x, random = ~ 1|cat, na.action = na.omit) 

 round(digits=7,fixef(m3)) ==  round(digits=7, coef(m1)) #Look what happend now...
 #(Intercept)           x 
 #       TRUE        TRUE 

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

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

การอ้างอิง 1: Douglas Bates lme4: การสร้างโมเดลผสมเอฟเฟกต์ด้วย R , หน้า 71-72

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