9

ヒストグラムに密度線 (実際には通常の密度) を追加したいと考えています。

次のデータがあるとします。次の方法でヒストグラムをプロットできますggplot2

set.seed(123)    
df <- data.frame(x = rbeta(10000, shape1 = 2, shape2 = 4))

ggplot(df, aes(x = x)) + geom_histogram(colour = "black", fill = "white", 
                                        binwidth = 0.01) 

ここに画像の説明を入力

次を使用して密度線を追加できます。

ggplot(df, aes(x = x)) + 
  geom_histogram(aes(y = ..density..),colour = "black", fill = "white", 
                 binwidth = 0.01) + 
  stat_function(fun = dnorm, args = list(mean = mean(df$x), sd = sd(df$x)))

ここに画像の説明を入力

しかし、これは私が実際に望んでいるものではありません。この密度線をカウントデータに適合させたいのです。

この問題の解決策を提供する同様の投稿 ( HERE ) を見つけました。しかし、私の場合はうまくいきませんでした。必要なものを取得するには、任意の拡張係数が必要です。そして、これはまったく一般化できません。

ef <- 100 # Expansion factor

ggplot(df, aes(x = x)) + 
  geom_histogram(colour = "black", fill = "white", binwidth = 0.01) + 
  stat_function(fun = function(x, mean, sd, n){ 
    n * dnorm(x = x, mean = mean, sd = sd)}, 
    args = list(mean = mean(df$x), sd = sd(df$x), n = ef))

ここに画像の説明を入力

これを一般化するために使用できる手がかり

  • 最初に正規分布、
  • 次に、他のビンサイズに、
  • そして最後に、他のディストリビューションに非常に役立ちます。
4

1 に答える 1