单因素重复Anova不平衡设计

时间:2016-12-07 14:06:09

标签: r anova

我试图在数据集上实现Anova 1因子,对一个主题进行多次测量。

> str(LMDAv) #To check class
'data.frame':   1075 obs. of  11 variables:
 $ CowID       : Factor w/ 71 levels "1921","1923",..: 1 1 1 2 2 2 3 3 3 4 ...
 $ Date        : Date, format: "2014-01-27" "2014-01-28" "2014-01-29" ...
 $ Feeding     : Factor w/ 2 levels "hoko","strap": 1 1 1 1 1 1 1 1 1 1 ...
 $ Mean        : num  246 232 159 115 154 ...
 $ SD          : num  291.7 178.4 161.2 141.1 73.3 ...
 $ Min         : num  27 20 14 16 35 13 15 25 37 9 ...
 $ Max         : num  1634 821 547 838 440 ...
 $ MeasTime    : Factor w/ 38 levels "60","120","180",..: 1 1 1 1 1 1 1 1 1 1 ...
 $ NumObs      : num  121 120 121 121 121 122 121 121 121 121 ...
 $ MeasTimeLow : Factor w/ 4 levels "60","120","180",..: 1 1 1 1 1 1 1 1 1 1 ...
 $ MeasTimeHigh: Factor w/ 5 levels "60","120","180",..: 1 1 1 1 1 1 1 1 1 1 ...

我感兴趣的专栏是: - 意思,我要解释的变量; - CowID,这是主题; - MeasTimeLow,这是我想测试的测量时间=因子。 这种分析的目的是看它是否改变了测量60,120,180或240s的东西。因此,对于每个CowID,我有几个测量时间但不是相同的数字。每对夫妻CowID:MeasurementTime至少有3个均值。所以这里我的主题是CowID,我想比较每个CowID的每个测量时间。

> table(LMDAv$CowID, LMDAv$MeasTimeLow)

       60 120 180 240
  1921  3   3   3   6
  1923  3   3   3   6
  1924  3   3   3   6
  1953  3   3   3   6
  1962  3   3   3   6
  1967  3   3   3   6
  1982  3   3   5   4
  1989  3   3   3   6
  1990  2   2   4   2
  1993  3   3   3   6
  1995  3   3   3   6
  2003  3   3   3   6
  2005  3   3   3   6
  2007  3   3   3   6
  2019  3   3   3   6
  2023  3   3   3   6
  2028  3   3   3   6
  2038  3   3   3   6
  2040  3   3   3   6
  2045  3   3   3   6
  2046  3   3   3   6
  2047  3   3   3   6
  2049  3   3   3   6
  2053  3   3   3   6
  2062  3   3   3   6
  2067  3   3   3   6
  2069  3   3   5   4
  2070  3   3   3   6
  2094  3   3   3   6
  2103  3   3   5   4
  2108  3   3   3   6
  2111  3   3   3   6
  2112  3   3   3   6
  2118  3   3   3   6
  2124  3   3   3   6
  2132  3   3   5   4
  2133  3   3   3   6
  2134  3   3   3   6
  2136  3   3   3   6
  2138  3   3   3   6
  2140  6   6   6  12
  2143  3   3   5   4
  2155  3   3   3   6
  2161  3   3   3   6
  2163  3   3   3   6
  2165  3   3   3   6
  2171  3   3   3   6
  2183  3   3   3   6
  2187  3   3   3   6
  2200  3   3   3   6
  2209  3   3   3   6
  2211  3   3   3   6
  2213  3   3   3   6
  2222  3   3   3   6
  2223  3   3   3   6
  2227  3   3   3   6
  2228  3   3   3   6
  2234  3   3   3   6
  2235  3   3   3   6
  2239  3   3   3   6
  2242  3   3   3   6
  2245  3   3   3   6
  2246  3   3   3   6
  2248  3   3   3   6
  2252  3   3   3   6
  2254  3   3   3   6
  2257  3   3   3   6
  2259  3   3   3   6
  2261  3   3   3   6
  2265  3   3   3   6
  2275  3   3   3   6

由于样本量不同,我无法做aov。所以我试图运行xyplot:

library(Matrix)
library(nlme)
library(lme4)
xyplot(Mean~MeasTimeLow|CowID, type=c("p","r"), data=LMDAv)

但我有一条错误消息告诉我它无法找到命令" xyplot"所以我跑了一个lme:

> Time.Cow<-lme(Mean~MeasTimeLow,random=~1|CowID/MeasTimeLow, data=LMDAv)
> summary(Time.Cow)
Linear mixed-effects model fit by REML
 Data: LMDAv 
       AIC      BIC   logLik
  11014.08 11048.91 -5500.04

Random effects:
 Formula: ~1 | CowID
        (Intercept)
StdDev:    23.50398

 Formula: ~1 | MeasTimeLow %in% CowID
        (Intercept) Residual
StdDev: 0.002203522 38.24478

Fixed effects: Mean ~ MeasTimeLow 
                   Value Std.Error  DF  t-value p-value
(Intercept)    135.80891  3.820368 791 35.54865  0.0000
MeasTimeLow120   7.64225  3.688654 210  2.07183  0.0395
MeasTimeLow180   8.59529  3.644843 210  2.35821  0.0193
MeasTimeLow240  12.81500  3.211478 210  3.99037  0.0001
 Correlation: 
               (Intr) MTL120 MTL180
MeasTimeLow120 -0.483              
MeasTimeLow180 -0.489  0.506       
MeasTimeLow240 -0.554  0.574  0.579

Standardized Within-Group Residuals:
        Min          Q1         Med          Q3         Max 
-2.41920844 -0.64816910 -0.05149839  0.59765336  4.81399462 

Number of Observations: 1075
Number of Groups: 
                 CowID MeasTimeLow %in% CowID 
                    71                    284 

它给了我我想要的东西:不同测量时间之间的比较,但我不确定解释,以及它确实给了我正在寻找的东西。 如果我把第一张表放在&#34;固定效果:Mean~MeasTimeLow&#34;,我可以得出结论,60s的测量值与120,180或240s的显着不同对吗? 第二个是比较另一个吧?

然后,我只是想知道这个测试是否可以用于几个CowID的缺失值:MeasurementTime。 (这不是这里的情况,但我可能需要进行另一次测试)。 那么,lme功能是否会因两个因素和不平衡设计而起作用?变量之间的顺序是否重要? 最后,这个平均值来自另一个数据框,它是60,120,180和240s每个CowID的平均值。这就是为什么有一个专栏SD的原因。我是否可以对标准偏差进行测试以确保分析正常? 感谢

1 个答案:

答案 0 :(得分:0)

使用您的LME模型,您已根据基线值测试了所有值。这是R中使用的标准对比形式。因此,您的输出告诉您60的平均值为135,并且该值与零显着不同。你的120现在高7个值(7前面没有负号)所以120的平均值是135 + 7 = 142 + -3.6。该值与135(截距)显着不同,p = 0.035。下一个值180是高于135 = 143的8个值,​​但我认为它与120没有显着差异.p值与截距(135)与180(143)的值的比较有关。最后,240是高于135的12个值并且非常重要。

你对cowID的随机效应(这些真的是牛?)告诉你所有cowID值的标准偏差是23.5,这是预期的,因为你的数据有所增加。

有两件事可以改善您的模型。首先,取出嵌套的随机效果。 cowID应该够了吗?由于MeasTimeLow是您感兴趣的参数(固定),所以您的实际治疗方法,为什么您还应该将其作为随机项?

其次,如果您对任何其他时间类彼此不同感兴趣,可以添加多重比较,即计划对比或简单的事后测试。查看R。

中的multcomp软件包

HTH