我试图在数据集上实现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的原因。我是否可以对标准偏差进行测试以确保分析正常? 感谢
答案 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