ggplot2 と stat_density を使用していくつかの密度プロットを作成しました。私の同僚は、各曲線の下の面積の合計が 1 になるとは確信していないと言いました。それで、私は曲線の下の面積を計算することに着手しました。
これが私がしたことの例です:
data(iris)
p<-ggplot(iris,aes(x=Petal.Length))+
stat_density(aes(colour=Species),geom="line",position="identity")
q<-print(p)
q<-q$data[[1]]
# calculate interval between density estimates for a given point.
# assume it is the same interval for all estimates
interval<-q$x[2]-q$x[1]
# calculate AUC by summing interval*height for the density estimate at each point
tapply(q$density*interval,
q$group,
sum)
結果:
1 2 3
0.9913514 1.0009785 0.9817040
まともに機能しているように見えますが、これを行うより良い方法があるかどうか疑問に思います。特に、間隔の計算 (つまり、dx だと思います) は、特に異なる密度曲線が異なる間隔を使用する場合、問題になる可能性があるようです。