||
对于田间试验和农业数据分析,请加入下面QQ群:VSNC GenStat 交流群 203276907
快速加入群,可以点击这个链接,里面有大量的资料可以下载和交流:点击链接加入群【VSNC GenStat 交流群】:https://jq.qq.com/?_wv=1027&k=42XYzLq
联合方差分析,是用方差分析的方法。首先要考虑各地点见的误差同质性。
数据:
数据如下:
> head(lianhe)
loc cul block yield
1 L1 1 1 2.205
2 L1 1 2 1.925
3 L1 1 3 2.445
4 L1 1 4 2.195
5 L2 1 1 2.400
6 L2 1 2 1.700
代码如下:
head(lianhe)
a <- levels(lianhe$loc) #将地点的名称赋值给a
a
# 设置两个空变量
ms <- NULL
DF <- NULL
for(i in 1:length(a)){ #写一个循环,提取每个地点的自由度和误差均方
rr = lianhe[which(lianhe$loc == a[i]),]
result <- aov(yield ~ cul + block,data=rr)
DF[i] = result$df.residual;
ms[i] = sum(residuals(result)^2/DF[i])
}
msdata <- data.frame(DF = DF,ms=ms)
msdata
# > msdata
# DF ms
# 1 24 0.01439338
# 2 24 0.01290972
# 3 24 0.03588032
# 4 24 0.02184421
# 5 24 0.01390122
# 6 24 0.01677064
# 7 24 0.01651991
# 8 24 0.01355260
# 9 24 0.02979525
# 10 24 0.01333828
# 将自由度和均方保存,就可以用GenStat的函数:VHOMOGENEITY,就是vhomo来检测方差齐次性。
# 用法 vhomo[group=Location] var=ms;df=df
# 下面具体公式:
mean_ms <- mean(ms);mean_ms
S <- sum(log10(ms));S
ms
length(a) ->b
W <- b*log10(mean_ms);W
df <-DF[1];
df <- as.numeric(df);df
X2 <- 2.3026*df*(W-S);X2
C <- 1+(b+1)/((3*b)*DF[1]) #矫正系数
C
XXc <- X2/C;XXc
chi <- qchisq(0.95,b-1);chi #标准卡方的值
1- pchisq(XXc,b-1) # 不显著
# 用Genstat 的程序:
# vhomo [group=Loc] var=ms;df=DF
# Bartlett's test for homogeneity of variances
#
# Chi-square 15.37 on 9 degrees of freedom: probability 0.081
主要结果:
1、计算出来的卡方:
> XXc <- X2/C;XXc
[1] 15.36554
2、标准的卡方:可以看出15.36小于16.91,说明不显著。
> chi <- qchisq(0.95,b-1);chi #标准卡方的值
[1] 16.91898
3、直接计算卡方值,可以看出值为0.081,不显著。
> 1- pchisq(XXc,b-1) # 不显著
[1] 0.08137225
4、用GenStat的程序vhomo检验方差齐次性:
# Chi-square 15.37 on 9 degrees of freedom: probability 0.081
结果和手动计算的结果一致,卡方值为15.37,卡方概率为0.081
如果想咨询数据分析问题或服务,加微信JoinVSNC
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-10-20 02:02
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社