จะตีความความแตกต่างที่กำหนดเองเหล่านี้ได้อย่างไร


10

ฉันกำลังทำ ANOVA ทางเดียว (ต่อสปีชีส์) ด้วยความแตกต่างที่กำหนดเอง

     [,1] [,2] [,3] [,4]
0.5    -1    0    0    0
5       1   -1    0    0
12.5    0    1   -1    0
25      0    0    1   -1
50      0    0    0    1

ที่ฉันเปรียบเทียบความเข้ม 0.5 กับ 5, 5 กับ 12.5 และอื่น ๆ นี่คือข้อมูลที่ฉันกำลังทำอยู่

ป้อนคำอธิบายรูปภาพที่นี่

ด้วยผลลัพธ์ต่อไปนี้

Generalized least squares fit by REML
  Model: dark ~ intensity 
  Data: skofijski.diurnal[skofijski.diurnal$species == "niphargus", ] 
       AIC      BIC    logLik
  63.41333 67.66163 -25.70667

Coefficients:
            Value Std.Error  t-value p-value
(Intercept) 16.95 0.2140872 79.17334  0.0000
intensity1   2.20 0.4281744  5.13809  0.0001
intensity2   1.40 0.5244044  2.66970  0.0175
intensity3   2.10 0.5244044  4.00454  0.0011
intensity4   1.80 0.4281744  4.20389  0.0008

 Correlation: 
           (Intr) intns1 intns2 intns3
intensity1 0.000                      
intensity2 0.000  0.612               
intensity3 0.000  0.408  0.667        
intensity4 0.000  0.250  0.408  0.612 

Standardized residuals:
       Min         Q1        Med         Q3        Max 
-2.3500484 -0.7833495  0.2611165  0.7833495  1.3055824 

Residual standard error: 0.9574271 
Degrees of freedom: 20 total; 15 residual

16.95 เป็นค่าเฉลี่ยทั่วโลกสำหรับ "niphargus" ในความเข้ม 1 ฉันกำลังเปรียบเทียบความเข้ม 0.5 กับ 5

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

ce1 <- skofijski.diurnal$intensity
levels(ce1) <- c("0.5", "5", "0", "0", "0")
ce1 <- as.factor(as.character(ce1))
tapply(skofijski.diurnal$dark, ce1, mean)
       0    0.5      5 
  14.500 11.875 13.000 
diff(tapply(skofijski.diurnal$dark, ce1, mean))/2
      0.5       5 
  -1.3125  0.5625 

คุณสามารถให้ฟังก์ชั่น lm () จาก R ที่คุณใช้ในการประมาณ คุณใช้ฟังก์ชันความเปรียบต่างอย่างไร
ฟิลิปป์

btw geom_points(position=position_dodge(width=0.75))จะแก้ไขวิธีที่คะแนนในพล็อตของคุณไม่สอดคล้องกับกล่อง
บิน

@flies ตั้งแต่คำถามของฉันมีการแนะนำตัวgeom_jitterซึ่งเป็นทางลัดสำหรับพารามิเตอร์ geom_point () ทั้งหมดที่กระวนกระวายใจ
Roman Luštrik

ฉันไม่ได้สังเกตเห็นความกระวนกระวายใจที่นั่น ไม่geom_jitter(position_dodge)ทำงานหรือไม่ ฉันใช้geom_points(position_jitterdodge)เพื่อเพิ่มจุดลงในกล่องสี่เหลี่ยมด้วยการหลบ
บิน

@flies ดูเอกสารสำหรับที่นี่geom_jitter จากประสบการณ์ของฉันตั้งแต่คำตอบข้างต้นฉันพบว่าไม่จำเป็นต้องใช้ boxplots เคย ถ้าฉันมีหลายจุดฉันใช้จุดไวโอลินซึ่งแสดงความหนาแน่นของจุดในรายละเอียดปลีกย่อยกว่า boxplots Boxplots ถูกประดิษฐ์ขึ้นมาใหม่เมื่อทำการพล็อตหลาย ๆ จุดหรือความหนาแน่นไม่สะดวก อาจถึงเวลาที่เราจะเริ่มคิดถึงการสร้างภาพข้อมูล (สำหรับผู้พิการ)
Roman Luštrik

คำตอบ:


10

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

ถ้าMเป็นเมทริกซ์ของคุณ:

M

#     [,1] [,2] [,3] [,4]
#0.5    -1    0    0    0
#5       1   -1    0    0
#12.5    0    1   -1    0
#25      0    0    1   -1
#50      0    0    0    1 

ตอนนี้คำนวณค่าผกผันทั่วไปที่ใช้ginvและแปลงผลลัพธ์โดยใช้t:

library(MASS)
t(ginv(M))

#     [,1] [,2] [,3] [,4]
#[1,] -0.8 -0.6 -0.4 -0.2
#[2,]  0.2 -0.6 -0.4 -0.2
#[3,]  0.2  0.4 -0.4 -0.2
#[4,]  0.2  0.4  0.6 -0.2
#[5,]  0.2  0.4  0.6  0.8

ผลลัพธ์จะเหมือนกับของ @Greg Snow ใช้เมทริกซ์นี้สำหรับการวิเคราะห์ของคุณ

นี่เป็นวิธีที่ง่ายกว่าการทำด้วยตนเอง


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

library(MASS)
contr.sdif(5)

#   2-1  3-2  4-3  5-4
#1 -0.8 -0.6 -0.4 -0.2
#2  0.2 -0.6 -0.4 -0.2
#3  0.2  0.4 -0.4 -0.2
#4  0.2  0.4  0.6 -0.2
#5  0.2  0.4  0.6  0.8

4

หากเมทริกซ์ที่ด้านบนเป็นวิธีการที่คุณเข้ารหัสตัวแปรดัมมี่ (สิ่งที่คุณกำลังส่งผ่านไปยังCหรือcontrastฟังก์ชันใน R) พวกเขาคนแรกจะเปรียบเทียบระดับที่ 1 กับคนอื่น ๆ (จริง ๆ แล้วคูณ 0.8 ครั้งที่ 1 จาก 0.2 เท่า ผลรวมของคนอื่น ๆ )

เทอมที่สองเปรียบเทียบระดับ 2 1 กับ 3 ล่าสุดอันดับที่ 3 เปรียบเทียบระดับ 3 1 กับ Last2 และ 4 เปรียบเทียบระดับ 1 4 กับระดับสุดท้าย

หากคุณต้องการทำการเปรียบเทียบที่คุณอธิบาย (เปรียบเทียบแต่ละคู่) การเข้ารหัสตัวแปรดัมมี่ที่คุณต้องการคือ:

      [,1] [,2] [,3] [,4]
[1,] -0.8 -0.6 -0.4 -0.2
[2,]  0.2 -0.6 -0.4 -0.2
[3,]  0.2  0.4 -0.4 -0.2
[4,]  0.2  0.4  0.6 -0.2
[5,]  0.2  0.4  0.6  0.8

การใช้เมทริกซ์ inverese ทั่วไปนี้จำเป็นต้องใช้aov()แทนlm()หรือไม่? ฉันถามเพราะฉันได้อ่านบทช่วยสอนหลายชุดซึ่งเมทริกซ์ความคมชัดaov()นั้นถูกสร้างขึ้นเช่นเดียวกับที่โรมันให้ไว้ เช่นดูบทที่ 5 ในcran.r-project.org/doc/contrib/Vikneswaran-ED_companion.pdf
crsh

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