1

特定の理論的分布の箱ひげ図を描画できるようにしたいと考えています。たとえば、正規分布の箱ひげ図を描きたいとしましょう。R にはメソッド qnorm があります。したがって、次のように 1 番目、2 番目、3 番目の四分位数を取得できます。

quartiles <- qnorm((1:3) / 4)

四分位範囲を取得できます。

irq <- quartiles[3] - quartiles[1]

ひげは次の方法で取得できます。

left.whisker <- quartiles[1] - irq * 1.5
right.whisker <- quartiles[3] + irq * 1.5

では、ボックスプロットを作成するにはどうすればよいですか?

rnorm を使用してから bixplot メソッドを使用できることはわかっていますが、理論的な分布に基づいて箱ひげ図を描画できるようにしたいと考えています。学生がシミュレートする必要のある値の数を心配する必要がなく、出力がシミュレートされた値の数に依存しないため、教育に役立ちます。

ありがとう、ニコラ

4

3 に答える 3

2

これがクラスに使用される場合、理論的な分位点をプロットしても、分散がどこにでもあり、標準法線が漸近的にしか観察されない現実の世界との関係を伝えることができないと思います。

これは、確率変数と理論上の分位点との関係を示すための私の試みです。

を使用してサンプリングしていることに注意してください。geomを使用してrnorm背後のデータもプロットします。設定を変更すると透明度に影響します。geom_boxplotgeom_jitteralpha

install.packages("gridExtra"); install.packages("ggplot2")
library(gridExtra); library(ggplot2)

df <- data.frame(list(our_rand_var = rnorm(10000, mean = 0, sd = 1)))

p1 <- ggplot(df, aes(x = our_rand_var)) +
  geom_density(fill = "white") +
  ylab("") +
  xlab("") +
  theme(axis.text = element_text(size = 20),
        axis.title.y = element_blank(),
        axis.text.y = element_blank())

p2 <- ggplot(df, aes(x = "Our Variable", y = our_rand_var)) +
  geom_jitter(alpha = 0.2) +
  geom_boxplot(alpha = 0.9, colour = "red", size = 2) +
  ylab("Standard Deviations") +
  coord_flip() +
  theme(axis.text = element_text(size = 20),
        axis.title.y = element_blank(),
        axis.text.y = element_blank())

grid.arrange(p1, p2, ncol = 1, 
             main = "Standard Normal Distribution (~Z)")

于 2013-10-05T02:38:30.823 に答える
1

これはかなりランダムな分布です:

set.seed(1)
d1 <- c(rbeta(5,1,1), runif(5))
boxplot(d1)

コードを見ると、ボックスプロットに必要な値を提供するために呼び出すことができる関数(パッケージ内) をgraphics::boxplot.default呼び出すことがわかります。これは順番に呼び出し 、ベクトルに適用されるメソッドは次のとおりです。boxplot.statsgrDevicesstats::fivenumx

x <- sort(x)
n4 <- floor((length(x) + 3) / 2) / 2
d <- c(1, n4, (length(x) + 1) / 2, length(x) + 1 - n4, length(x))
0.5 * (x[floor(d)] + x[ceiling(d)])
于 2013-10-05T03:08:13.153 に答える