5

いくつかのデータがあり、ANOVA と事後検定を行う場合、R の外部で図を編集するのではなく、事後分類を自動的に追加する箱ひげ図を作成するにはどうすればよいですか?

たとえば、開始するためのデータを次に示します。

install.packages("reshape", dependencies=T)
library(reshape)

x <- rnorm(30)
y <- rnorm(30)+1
z <- rnorm(30)+0.5

data.1 <- data.frame(x, y, z)
data.2 <- melt(data.1)

簡単な一元配置 ANOVA とすべての予定外の比較事後テストを実行するためのコードを次に示します。

linear.model <- lm(value~variable, data=data.2)
anova(linear.model)

# Analysis of Variance Table
# Response: value
#           Df Sum Sq Mean Sq F value   Pr(>F)   
# variable   2 10.942  5.4710  5.8628 0.004087 **
# Residuals 87 81.185  0.9332     

TukeyHSD(aov(linear.model))

# Tukey multiple comparisons of means
# 95% family-wise confidence level
# Fit: aov(formula = linear.model)
# $variable
          # diff        lwr        upr     p adj
# y-x  0.8344105  0.2396705 1.42915051 0.0034468
# z-x  0.2593612 -0.3353788 0.85410126 0.5539050
# z-y -0.5750493 -1.1697893 0.01969078 0.0602975

この時点で、x をグループ "a" に、y をグループ "b" に、z をグループ "a,b" に分類したいと思います。箱ひげ図は作成できますが、文字で注釈を付けるにはどうすればよいですか?

boxplot(value~variable, data=data.2)
4

2 に答える 2

6

ggplot2パッケージを使用してもかまわない場合は、次のように図を作成します。

まず、テキストラベルを使用してデータフレーム(data.2)に列を追加します。

data.2$posthoc[data.2$variable == "x"] <- "a"
data.2$posthoc[data.2$variable == "y"] <- "b"
data.2$posthoc[data.2$variable == "z"] <- "a,b"

ggplot2パッケージをインストールしてロードします。

install.packages("ggplot2", dependencies=T)
library(ggplot2)

図のコードを理解するために、段階的に作成します。まず、3つのグループのそれぞれの平均をプロットします。

qplot(data=data.2,
    x = variable,
    y = value,
    stat = "summary",
    fun.y = "mean",
    geom = c("point")
    )

次に、テキストラベルを追加します。

qplot(data=data.2,
    x = variable,
    y = value,
    stat = "summary",
    fun.y = "mean",
    label = posthoc,
    vjust = -12,
    geom = c("point", "text")
    )

最後に、箱ひげ図を追加して少しクリーンアップします。

qplot(data=data.2,
    x = variable,
    y = value,
    stat = "summary",
    fun.y = "mean",
    label = posthoc,
    vjust = -12,
    ylim = c(-1, 3.5),
    geom = c("point", "text"),
    main="ggplot2 ANOVA boxplot"
    ) + 
    geom_boxplot(aes(fill=posthoc)) + 
    theme_bw()

ラベル付きのRanova箱ひげ図

于 2011-10-21T08:01:30.320 に答える
2

これはもっと簡単でしょう

library(reshape)

x <- rnorm(30)
y <- rnorm(30)+1
z <- rnorm(30)+0.5

data.1 <- data.frame(x, y, z)
data.2 <- melt(data.1)
data.2$newgroup = factor(data.2$variable,labels=c("a","b","ab")) # only line added
boxplot(value~newgroup, data=data.2)
于 2011-10-21T08:35:29.410 に答える