1
私は数値とカテゴリ変数を持つデータセットを持っています。数値変数の分布は、カテゴリごとに異なります。私は各カテゴリ変数の "密度プロット"を、密度プロット全体よりも視覚的に小さくなるようにプロットしたいと思います。ggplot混合モデルR
これは、混合モデルを計算せずに混合モデルのコンポーネントに似ています(データを分割するカテゴリ変数をすでに知っているので)。
カテゴリ変数に基づいてグループ化するggplotをとると、4つの密度のそれぞれは実密度であり、1つに統合されます。私が欲しいもの
library(ggplot2)
ggplot(iris, aes(x = Sepal.Width)) + geom_density() + geom_density(aes(x = Sepal.Width, group = Species, colour = 'Species'))
は、サブ密度(1に統合していない)など、各カテゴリの密度を持つことです。 Y値を低減するためにIハードコードされた数以上
もたらす(私は3つのだけアイリス種二のために実装された)次のコード
myIris <- as.data.table(iris)
# calculate density for entire dataset
dens_entire <- density(myIris[, Sepal.Width], cut = 0)
dens_e <- data.table(x = dens_entire[[1]], y = dens_entire[[2]])
# calculate density for dataset with setosa
dens_setosa <- density(myIris[Species == 'setosa', Sepal.Width], cut = 0)
dens_sa <- data.table(x = dens_setosa[[1]], y = dens_setosa[[2]])
# calculate density for dataset with versicolor
dens_versicolor <- density(myIris[Species == 'versicolor', Sepal.Width], cut = 0)
dens_v <- data.table(x = dens_versicolor[[1]], y = dens_versicolor[[2]])
# plot densities as mixture model
ggplot(dens_e, aes(x=x, y=y)) + geom_line() + geom_line(data = dens_sa, aes(x = x, y = y/2.5, colour = 'setosa')) +
geom_line(data = dens_v, aes(x = x, y = y/1.65, colour = 'versicolor'))
に似。 ggplotでそれを行う方法はありますか?またはそれを計算する?あなたのアイデアを
感謝。
こんにちは、はいそれは有望に見えるかもしれません。私が虹彩データセットのエントリの数、すなわちnrow(iris)= 150でそれをスケーリングすると、それはかなり良いように見える。だから、..カウント..それは.. ../150です。これが正しい方法だと誰も確認できますか?私の場合、各カテゴリーの数字は同じではありませんが、データの約60%を占めるカテゴリーが1つあります。 – user3702510
こんにちは、私はそれについて考え、それについて議論し、それは正解です。速い返信のために@コタ・モリに感謝します。 y = ..count ../ Number_of_rows_of_entire_datasetを取るか、y = ..density ../ number_of_categoriesを取る – user3702510