pip install spyder
我已经制作了一小部分数据集,它会查看2年内3个地点的平均百分比覆盖率。我相信我需要做一个双因素方差分析作为统计检验,但是,我遇到了一些麻烦。到目前为止,这是我的代码:
pip install jupyter
具体来说,我想看一下比较例如:位置1在2010年和2011年,但当我运行我的pairwise.t.test R只比较例如位置1和位置2等我想确保我的R代码专门查看我想要的比较,但我一般都不确定,所以我希望得到一些帮助。
我的ANOVA输出最后一点说我的d.f. = 1,我不太确定应该是这样的。我哪里错了?
答案 0 :(得分:0)
您应该使用正确的结构创建数据。年份和地点都明显是离散的,即R因子。你应该使用R公式界面。公式AVGCover ~ Location * Year
包括所有主要影响:
txt <- "Year Location AVGCover
2010 1 0.1
2010 1 0.5
2010 1 1
2010 2 0.75
2010 2 0.8
2010 2 1.6
2010 3 1.1
2010 3 0.5
2010 3 0.6
2011 1 0.2
2011 1 0.2
2011 1 0.3
2011 2 0.5
2011 2 0.7
2011 2 0.4
2011 3 0.6
2011 3 0.1
2011 3 0"
dfrm <- read.table(text=txt, header=TRUE, colClasses=c("factor", "factor", "numeric") )
请注意,我没有使用df
作为名称,因为这是F分布密度的函数名称。
anova(mod1 <- lm(AVGCover ~ Location * Year, data=dfrm))
Analysis of Variance Table
Response: AVGCover
Df Sum Sq Mean Sq F value Pr(>F)
Location 2 0.54361 0.27181 2.4555 0.12767
Year 1 0.86681 0.86681 7.8306 0.01609 *
Location:Year 2 0.04361 0.02181 0.1970 0.82380
Residuals 12 1.32833 0.11069
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
>
> pairwise.t.test(dfrm$AVGCover, dfrm$Year, p.adj = "none")
Pairwise comparisons using t tests with pooled SD
data: dfrm$AVGCover and dfrm$Year
2010
2011 0.016
P value adjustment method: none
> pairwise.t.test(dfrm$AVGCover, dfrm$Location, p.adj = "none")
要获得估计差异的大小,您需要传递与公式的RHS上的IV相同的名称(和类)的数据帧:
predict(mod1, newdata =data.frame(Location=factor(1), Year=factor(c(2010,2011)) ) )
# returns
1 2
0.5333333 0.2333333