2013-07-08 27 views
5

Tôi đang làm việc trên thiết kế hỗn hợp ANOVA và muốn chạy TukeyHSD cho bài kiểm tra sau Hoc của nó.
tôi tiếp tục nhận được lỗi "Lỗi trong UseMethod (" TukeyHSD "):. không có phương pháp áp dụng cho 'TukeyHSD' áp dụng cho một đối tượng của lớp "c ('aovlist', 'listof')"Lỗi trong TukeyHSD trong R

tôi đã nhìn thấy một số câu hỏi về lỗi này trong một số trang web Q F &, nhưng tôi vẫn không thể tìm thấy một giải pháp

bộ dữ liệu của tôi trông như thế này:.

subject response time group 
1  S1 0.99676 time1 task1 
2  S2 1.00220 time1 task1 
3  S3 1.00420 time1 task1 
4  S4 0.99467 time1 task1 
5  S5 0.97906 time1 task1 
6  S6 0.99162 time1 task1 
7  S7 0.99771 time1 task1 
8  S8 1.01780 time1 task2 
9  S9 0.98682 time1 task2 
10  S10 0.99124 time1 task2 
11  S11 1.01670 time1 task2 
12  S12 0.99769 time1 task2 
13  S13 1.02090 time1 task2 
14  S14 1.01740 time1 task2 
15  S15 0.98851 time1 task3 
16  S16 1.00690 time1 task3 
17  S17 0.99717 time1 task3 
18  S18 0.98945 time1 task3 
19  S19 1.00270 time1 task3 
20  S20 1.02690 time1 task3 
21  S21 1.00050 time1 task3 
22  S1 0.96908 time2 task1 
23  S2 0.94024 time2 task1 
...... 

Sau đó, kết quả ANOVA là:

ANOVA = AOV (phản ứng ~ (nhóm * Thời gian) + Lỗi (môn học/thời gian), dữ liệu) tóm tắt (ANOVA)

Error: subject 
     Df Sum Sq Mean Sq F value Pr(>F) 
group  2 0.00381 0.001907 0.701 0.509 
Residuals 18 0.04896 0.002720    

Error: subject:time 
     Df Sum Sq Mean Sq F value Pr(>F)  
time  3 0.08205 0.027351 42.80 2.68e-14 *** 
group:time 6 0.00272 0.000454 0.71 0.643  
Residuals 54 0.03451 0.000639      

Nếu tôi chạy TukeyHSD:

TukeyHSD (ANOVA)
Lỗi trong UseMethod ("TukeyHSD"): không có phương pháp áp dụng cho 'TukeyHSD' áp dụng cho một đối tượng của lớp "c ('aovlist', 'listof')"

Có gì sai với lệnh hoặc tập dữ liệu của tôi không? Tôi biết đây là một câu hỏi rất quan trọng ... nhưng nếu có ai có thể giúp tôi, nó sẽ được đánh giá cao! Cảm ơn.

Trả lời

7

Những gì bạn đang xử lý là các biện pháp lặp lại ANOVA và bạn cần thực hiện kiểm tra hậu-hoc chính xác cho điều đó. Xem dưới đây liên kết để biết thêm:

Post hoc tests with ezANOVA output

Post hoc test after ANOVA with repeated measures using R

[R] Tukey HSD (or other post hoc tests) following repeated measures ANOVA

Tôi nghĩ rằng bạn tốt nhất nên xây dựng một mô hình hỗn hợp tác dụng tuyến tính với cấu trúc lỗi quy định này, theo đề nghị ở trên liên kết. Dưới đây là một ví dụ nhân tạo bộ dữ liệu gần như của bạn và sau hoc thử nghiệm từ multcomp -package cho mô hình được xây dựng sử dụng nlme -package:

set.seed(1) 
dat <- cbind(expand.grid(time = paste("time", 1:3, sep=""), group = paste("task", 1:3, sep=""), subject = paste("S", 1:20, sep="")), response = rnorm(3*3*20)) 
# Add task1-specific effect (== task1.timeANY) 
dat$response <- dat$response + as.numeric(dat$group=="task1") 
# Extra effect in the last timepoint of task1 (== task1.time3) 
dat$response <- dat$response + as.numeric(dat$group=="task1")*as.numeric(dat$time=="time3") 
# Randomness specific for each subject 
dat$response <- dat$response + rep(rnorm(20), each=3) 
dat$grtim <- interaction(dat$group, dat$time) 
# Interaction term specified above 
#> head(dat) 
# time group subject response  grtim 
#1 time1 task1  S1 -0.85777723 task1.time1 
#2 time2 task1  S1 -0.04768010 task1.time2 
#3 time3 task1  S1 -0.06695203 task1.time3 
#4 time1 task2  S1 2.57917637 task2.time1 
#5 time2 task2  S1 1.31340334 task2.time2 
#6 time3 task2  S1 0.16342719 task2.time3 

# Reason why TukeyHSD-function fails: 
#anova = aov(response~(group*time)+Error(subject/time),dat) 
#summary(anova) 
#TukeyHSD(anova) 
#Error in UseMethod("TukeyHSD") : 
# no applicable method for 'TukeyHSD' applied to an object of class "c('aovlist', 'listof')" 
#> class(anova) 
#[1] "aovlist" "listof" 

require(nlme) 
# Below call does not work for glht, thus we created the interaction term in the data frame 
#model <- lme(response ~ group*time, random = ~ 1 | subject/time, dat) 
model <- lme(response ~ grtim, random = ~ 1 | subject/time, dat) 
require(multcomp) 
summary(glht(model, linfct=mcp(grtim="Tukey")), test = adjusted(type = "bonferroni")) 

này kết quả đầu ra khá một danh sách dài các kết hợp có thể, nhưng chúng tôi lưu ý rằng task1, đặc biệt là task1.time3, hoàn toàn khác với phần còn lại như mong đợi:

  Simultaneous Tests for General Linear Hypotheses 

Multiple Comparisons of Means: Tukey Contrasts 


Fit: lme.formula(fixed = response ~ grtim, data = dat, random = ~1 | 
    subject/time) 

Linear Hypotheses: 
           Estimate Std. Error z value Pr(>|z|)  
task2.time1 - task1.time1 == 0 -0.66574 0.40907 -1.627 1.000000  
task3.time1 - task1.time1 == 0 -0.21758 0.40907 -0.532 1.000000  
task1.time2 - task1.time1 == 0 0.46382 0.40907 1.134 1.000000  
task2.time2 - task1.time1 == 0 -0.63987 0.40907 -1.564 1.000000  
task3.time2 - task1.time1 == 0 -0.86698 0.40907 -2.119 1.000000  
task1.time3 - task1.time1 == 0 1.17238 0.40907 2.866 0.149667  
task2.time3 - task1.time1 == 0 -1.15241 0.40907 -2.817 0.174433  
task3.time3 - task1.time1 == 0 -0.70811 0.40907 -1.731 1.000000  
task3.time1 - task2.time1 == 0 0.44816 0.40907 1.096 1.000000  
task1.time2 - task2.time1 == 0 1.12956 0.40907 2.761 0.207272  
task2.time2 - task2.time1 == 0 0.02587 0.40907 0.063 1.000000  
task3.time2 - task2.time1 == 0 -0.20124 0.40907 -0.492 1.000000  
task1.time3 - task2.time1 == 0 1.83812 0.40907 4.493 0.000252 *** 
task2.time3 - task2.time1 == 0 -0.48667 0.40907 -1.190 1.000000  
task3.time3 - task2.time1 == 0 -0.04237 0.40907 -0.104 1.000000  
task1.time2 - task3.time1 == 0 0.68140 0.40907 1.666 1.000000  
task2.time2 - task3.time1 == 0 -0.42229 0.40907 -1.032 1.000000  
task3.time2 - task3.time1 == 0 -0.64940 0.40907 -1.587 1.000000  
task1.time3 - task3.time1 == 0 1.38996 0.40907 3.398 0.024451 * 
task2.time3 - task3.time1 == 0 -0.93483 0.40907 -2.285 0.802723  
task3.time3 - task3.time1 == 0 -0.49053 0.40907 -1.199 1.000000  
task2.time2 - task1.time2 == 0 -1.10369 0.40907 -2.698 0.251098  
task3.time2 - task1.time2 == 0 -1.33080 0.40907 -3.253 0.041077 * 
task1.time3 - task1.time2 == 0 0.70856 0.40907 1.732 1.000000  
task2.time3 - task1.time2 == 0 -1.61623 0.40907 -3.951 0.002802 ** 
task3.time3 - task1.time2 == 0 -1.17193 0.40907 -2.865 0.150188  
task3.time2 - task2.time2 == 0 -0.22711 0.40907 -0.555 1.000000  
task1.time3 - task2.time2 == 0 1.81225 0.40907 4.430 0.000339 *** 
task2.time3 - task2.time2 == 0 -0.51254 0.40907 -1.253 1.000000  
task3.time3 - task2.time2 == 0 -0.06824 0.40907 -0.167 1.000000  
task1.time3 - task3.time2 == 0 2.03936 0.40907 4.985 2.23e-05 *** 
task2.time3 - task3.time2 == 0 -0.28543 0.40907 -0.698 1.000000  
task3.time3 - task3.time2 == 0 0.15887 0.40907 0.388 1.000000  
task2.time3 - task1.time3 == 0 -2.32479 0.40907 -5.683 4.76e-07 *** 
task3.time3 - task1.time3 == 0 -1.88049 0.40907 -4.597 0.000154 *** 
task3.time3 - task2.time3 == 0 0.44430 0.40907 1.086 1.000000  
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
(Adjusted p values reported -- bonferroni method) 
+0

Cảm ơn. Các liên kết đã giúp tôi rất nhiều. Tuy nhiên, điều này là dữ liệu của tôi không hiển thị phản hồi tuyến tính theo thời gian. Nói cách khác, giả thuyết tuyến tính không thể áp dụng cho dữ liệu này. Có cách nào khác để làm bài kiểm tra sau giờ học không? Ngoài ra, tôi vẫn không hoàn toàn không hiểu lý do tại sao TukeyHSD không hoạt động ... – Rachel

Các vấn đề liên quan