いろいろ自動化してみた
#データxのz列を独立変数、y1からy2列までを順番に従属変数として一要因分散分析を繰り返させる。
問題点としては多重比較が行えないこと。
anova2<-function(x,z,y1,y2){
for(a in y1:y2){
cat("従属変数")
print(names(x[a]))
cat("独立変数")
print(names(x[z]))
print(anova(aov(x[,a]~x[,z],data=x)))
}
}
##データxのz列とw列を独立変数、y1からy2列までを順番に従属変数として二要因分散分析を繰り返させる。
問題点としては多重比較が行えないこと。
anova3<-function(x,z,w,y1,y2){
for(a in y1:y2){
cat("従属変数")
print(names(x[a]))
cat("独立変数1")
print(names(x[z]))
cat("独立変数2")
print(names(x[w]))
print(anova(aov(x[,a]~x[,z]*x[,w],data=x)))
}
}
#データxのz列を独立変数、w1からw2を独立変数として、y1からy2列までを順番に従属変数として2要因分散分析
問題点としては多重比較が行えないこと。
計算回数は、(w1-w2+1)*(y1-y2+1)になるので、下手に操作すると負荷が重くなる。
anova4<-function(x,z,w1,w2,y1,y2){
for(b in w1:w2){
for(a in y1:y2){
cat("従属変数")
print(names(x[a]))
cat("独立変数1")
print(names(x[z]))
cat("独立変数2")
print(names(x[b]))
print(anova(aov(x[,a]~x[,z]*x[,b],data=x)))
}
}
}
#これまでの、多重比較を行なってくれない問題を解決するためにanovakunを使って分散分析を繰り返させてみる。
データxにおいて、独立変数z(水準k)と独立変数w(水準j)、従属変数はy1からy2をとり2要因分散分析(参加者内計画)を行う。
指定は全て列で行う。
問題点:水準数が変わるとうまく対応できない。
source("anovakun_481.txt")
anova6_kun<-function(x,z,k,w,j,y1,y2){
for(a in y1:y2){
cat("従属変数")
print(names(x[a]))
cat("独立変数A")
print(names(x[z]))
cat("独立変数B")
print(names(x[w]))
anova_data <- c(x[z],x[w],x[a])
anova_data <- as.data.frame(anova_data)
print(anovakun(anova_data,"ABs",k,j,holm=T,peta=T))
}
}
#anovakunを使い、4水準での参加者内要因で繰り返させる。
この関数は、これまでのものと違い,yが何列文繰り返すかの指示になる。
source("anovakun_481.txt")
anova7_kun<-function(x,z,w,q,r,y){
for(a in 0:y){
cat("A")
print(names(x[z+a]))
cat("B")
print(names(x[w+a]))
cat("C")
print(names(x[q+a]))
cat("D")
print(names(x[r+a]))
anova_data <- c(x[z+a],x[w+a],x[q+a],x[r+a])
anova_data <- as.data.frame(anova_data)
print(anovakun(anova_data,"sA",4,holm=T,peta=T))
}
}
コメント
コメントを投稿