Я создал несколько графиков плотности, используя 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) может быть проблемой, особенно если разные кривые плотности используют разные интервалы.