ฉันจะอธิบายความแปรปรวนเชิงพื้นที่ในรูปแบบเชิงเส้นได้อย่างไร


10

พื้นหลัง

ฉันมีข้อมูลจากการศึกษาภาคสนามซึ่งมีสี่ระดับการรักษาและหกซ้ำในแต่ละช่วงตึก (4x6x2 = 48 การสังเกต)

บล็อกอยู่ห่างกันประมาณ 1 ไมล์และภายในบล็อกมีตารางของ 42, 2m x 4m แปลงและทางเดินกว้าง 1m; การศึกษาของฉันใช้เพียง 24 แปลงในแต่ละบล็อก

ฉันต้องการประเมินความแปรปรวนร่วมเชิงพื้นที่

นี่คือตัวอย่างการวิเคราะห์โดยใช้ข้อมูลจากบล็อกเดียวโดยไม่มีการบัญชีสำหรับความแปรปรวนร่วมเชิงพื้นที่ ในชุดข้อมูลplotคือ id ของพล็อตxคือตำแหน่ง x และyตำแหน่ง y ของแต่ละพล็อตที่มีพล็อต 1 อยู่ตรงกลางที่ 0, 0 levelคือระดับการรักษาและresponseเป็นตัวแปรตอบกลับ

layout <- structure(list(plot = c(1L, 3L, 5L, 7L, 8L, 11L, 12L, 15L, 16L, 
17L, 18L, 22L, 23L, 26L, 28L, 30L, 31L, 32L, 35L, 36L, 37L, 39L, 
40L, 42L), level = c(0L, 10L, 1L, 4L, 10L, 0L, 4L, 10L, 0L, 4L, 
0L, 1L, 0L, 10L, 1L, 10L, 4L, 4L, 1L, 1L, 1L, 0L, 10L, 4L), response = c(5.93, 
5.16, 5.42, 5.11, 5.46, 5.44, 5.78, 5.44, 5.15, 5.16, 5.17, 5.82, 
5.75, 4.48, 5.25, 5.49, 4.74, 4.09, 5.93, 5.91, 5.15, 4.5, 4.82, 
5.84), x = c(0, 0, 0, 3, 3, 3, 3, 6, 6, 6, 6, 9, 9, 12, 12, 12, 
15, 15, 15, 15, 18, 18, 18, 18), y = c(0, 10, 20, 0, 5, 20, 25, 
10, 15, 20, 25, 15, 20, 0, 15, 25, 0, 5, 20, 25, 0, 10, 20, 
25)), .Names = c("plot", "level", "response", "x", "y"), row.names = c(NA, 
-24L), class = "data.frame")

model <- lm(response ~ level, data = layout)      
summary(model)

คำถาม

  1. ฉันจะคำนวณเมทริกซ์ความแปรปรวนร่วมได้อย่างไรและรวมไว้ในการถดถอยของฉันได้อย่างไร
  2. บล็อกมีความแตกต่างกันมากและมีการโต้ตอบที่รุนแรงกับบล็อก * การวิเคราะห์แยกต่างหากเหมาะสมหรือไม่

1
แปลงที่ 37 และ 39 มีทั้งที่ x = 18, y = 10 สะกดผิด?
แอรอนออกจาก Stack Overflow

@Aaron ขอบคุณสำหรับการชี้ให้เห็นว่า y = [0,10] แก้ไขแล้ว.
David LeBauer

คำตอบ:


10

1) คุณสามารถจำลองความสัมพันธ์เชิงพื้นที่กับnlmeห้องสมุด; มีหลายรุ่นที่คุณอาจเลือกได้ ดูหน้า 260-266 ของ Pinheiro / Bates

ขั้นตอนแรกที่ดีคือการสร้าง Variogram เพื่อดูว่าค่าสหสัมพันธ์ขึ้นอยู่กับระยะทางอย่างไร

library(nlme)
m0 <- gls(response ~ level, data = layout)  
plot(Variogram(m0, form=~x+y))

ตัวอย่าง semivariogram เพิ่มขึ้นตามระยะทางซึ่งบ่งชี้ว่าการสังเกตมีความสัมพันธ์เชิงพื้นที่

ทางเลือกหนึ่งสำหรับโครงสร้างสหสัมพันธ์คือโครงสร้างทรงกลม ที่สามารถจำลองได้ด้วยวิธีต่อไปนี้

m1 <- update(m0, corr=corSpher(c(15, 0.25), form=~x+y, nugget=TRUE))

แบบจำลองนี้ดูเหมือนจะดีกว่าแบบจำลองที่ไม่มีโครงสร้างสหสัมพันธ์แม้ว่าจะเป็นไปได้ทั้งหมดก็สามารถปรับปรุงได้ด้วยโครงสร้างความสัมพันธ์อื่นที่เป็นไปได้

> anova(m0, m1)
   Model df     AIC      BIC    logLik   Test  L.Ratio p-value
m0     1  3 46.5297 49.80283 -20.26485                        
m1     2  5 43.3244 48.77961 -16.66220 1 vs 2 7.205301  0.0273

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

ที่นี่ฉันกำลังอัปเดตโมเดลดั้งเดิมแทนที่จะเป็น m0 เพราะฉันเปลี่ยนเฉพาะเอฟเฟกต์คงที่ดังนั้นโมเดลทั้งสองควรเหมาะสมโดยใช้โอกาสสูงสุด

> model2 <- update(model, .~.+x*y)
> anova(model, model2)
Analysis of Variance Table

Model 1: response ~ level
Model 2: response ~ level + x + y + x:y
  Res.Df    RSS Df Sum of Sq      F   Pr(>F)   
1     22 5.3809                                
2     19 2.7268  3    2.6541 6.1646 0.004168 **

ในการเปรียบเทียบทั้งสามรุ่นคุณจะต้องปรับให้พอดีกับทุกรุ่นglsและวิธีความน่าจะเป็นสูงสุดแทนที่จะเป็นวิธีเริ่มต้นของ REML

> m0b <- update(m0, method="ML")
> m1b <- update(m1, method="ML")
> m2b <- update(m0b, .~x*y)
> anova(m0b, m1b, m2b, test=FALSE)
    Model df      AIC      BIC     logLik
m0b     1  3 38.22422 41.75838 -16.112112
m1b     2  5 35.88922 41.77949 -12.944610
m2b     3  5 29.09821 34.98847  -9.549103

จำไว้ว่าโดยเฉพาะอย่างยิ่งเมื่อคุณมีความรู้เรื่องการศึกษาคุณอาจจะสามารถสร้างแบบจำลองที่ดีกว่าสิ่งเหล่านี้ นั่นคือแบบจำลองm2bไม่ควรได้รับการพิจารณาว่าดีที่สุด

หมายเหตุ: การคำนวณเหล่านี้ถูกดำเนินการหลังจากเปลี่ยนค่า x ของพล็อต 37 เป็น 0


ขอบคุณสำหรับคำตอบที่เป็นประโยชน์ของคุณ; ยังไม่ชัดเจนว่าทำไมในส่วนที่ 2 ที่คุณอัปเดตmodelแทนm0เช่น m2 <- update(m0, .~.+x*y)เพื่อให้ทุกคนสามรุ่นสามารถนำมาเปรียบเทียบโดยใช้anova(m0,m1,m2); หลังจากทำสิ่งนี้m2เป็นคนโยกตัวใหญ่ (AIC = 64) ดูเหมือนว่าคุณจะเป็นส่วนหนึ่งของคุณ
David LeBauer

ps บรรทัดสุดท้ายควรเป็น 'หลังจากเปลี่ยนค่า y ของพล็อต 37 เป็น 5' ค่าจริงคือ 0 แต่ผลลัพธ์จะเท่ากัน
David LeBauer

ถ้าคุณเปรียบเทียบm0, m1และm2ตามที่คุณขอแนะนำให้คุณได้รับคำเตือน: Fitted objects with different fixed effects. REML comparisons are not meaningful. การเปรียบเทียบผลคงที่คุณต้องใช้โอกาสสูงสุดปกติแทน REML ดูการแก้ไข
แอรอนออกจาก Stack Overflow

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

4

1) ตัวแปรอธิบายปริภูมิของคุณคืออะไร ดูเหมือนระนาบ x * y น่าจะเป็นแบบจำลองที่ไม่ดีสำหรับเอฟเฟกต์อวกาศ

แผนการรักษาและการตอบสนอง

i=c(1,3,5,7,8,11,14,15,16,17,18,22,23,25,28,30,31,32,35,36,39,39,41,42)
l=rep(NA,42)[i];l[i]=level
r=rep(NA,42)[i];r[i]=response
image(t(matrix(-l,6)));title("treatment")
image(t(matrix(-r,6)));title("response")

2) เมื่อเห็นว่าบล็อกอยู่ห่างกันแค่ 1 ไมล์และคุณคาดหวังว่าจะเห็นเอฟเฟกต์เพียงแค่ 30 เมตรเท่านั้นฉันจะบอกว่ามันเหมาะสมอย่างยิ่งที่จะวิเคราะห์มันแยกกัน


การสร้างภาพข้อมูลนั้นมีประโยชน์ แต่ถ้าคุณเปรียบเทียบด้านล่างขวากับด้านบนขวาของตัวเลขดูเหมือนว่าตำแหน่งจะมีผลมากกว่าระดับ (ps ฉันคิดว่า l [i] = การตอบสนองควรเป็น r [i] = ... )
David LeBauer

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

@sesqu ... ไม่มีข้อมูลที่ขาดหายไปข้อมูลจากทั้ง 24 แปลงที่อยู่แบบสุ่มมี
David LeBauer

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