いろいろ自動化してみた

#データ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))
  }
}

コメント

このブログの人気の投稿

subsetで必要なデータだけを、取り出す。

Googleフォームの使い方(基本編)

Rでの、データの基礎統計量の算出(summary,describe)

Googleフォーム使い方(応用編) 回答に応じて分岐、セッションの移動

Googleフォームの使い方(応用編) 設定の使い方