とある技術者の徒然草

生産技術者の適当な日記(統計言語Rに関するメモがメイン)

【R言語】分散分析・実験計画法の解析

Rを使った分散分析・実験計画法の解析

carパッケージのAnova関数を使って分散分析をやってみる。

#http://www.asakura.co.jp/G_12.php?isbn=ISBN978-4-254-12216-9 からサンプルデータをもらう
df <- read.table("rei31.csv",header = TRUE,sep=",",na.strings = "NA",strip.white = TRUE)
summary(df)

model1 <- lm(x ~ A + B + C + D + F + A:B + A:C + A:D +C:D + D:F ,data=df)
summary(model1)

anova(model1)
car::Anova(model1,type="2")

#type3だと結果が変わる 計算がどう異なっているか不明
car::Anova(model1,type="3")

#有意ではない F A:D D:Fを誤差項にプーリングする
model2 <- lm(x ~ A + B + C + D + A:B + A:C +C:D ,data=df)
Anova(model2,type="2")

#残差プロットやQQプロット表示
oldpar <- par(oma=c(0,0,3,0),mfrow=c(2,2))
plot(model2)

#主効果プロット
plot(allEffects(model2),ask=FALSE)

library(tidyverse)
library("gridExtra")

name <- names(df)
# ggplot でグラフを4つ作成
gA <- ggplot(df, aes(x=A,y=x))+geom_boxplot()
gB <- ggplot(df, aes(x=B,y=x))+geom_boxplot()
gC <- ggplot(df, aes(x=C,y=x))+geom_boxplot()
gD <- ggplot(df, aes(x=D,y=x))+geom_boxplot()
gF <- ggplot(df, aes(x=F,y=x))+geom_boxplot()


# 箱ひげ図をまとめて1枚に出力
grid.arrange(gA, gB, gC, gD,gF,
             ncol = 5) # 1列に並べる

#Rcmdrを使う
library(Rcmdr)

・参考 https://speakerd.s3.amazonaws.com/presentations/b58a25f92f9a4a49990d72e24c8ecb98/20160327NagoyaR15_upload-ver.pdf

www.asakura.co.jp