簡體   English   中英

不使用density()在R中分層密度圖

[英]Layering density plots in R without using density()

我已經使用KernSmooth軟件包計算並繪制了高斯核密度估計值,如下所示:

 x <- MyData$MyNumericVector
 h <- dpik(x)
 est <- bkde(x, bandwidth=h)
 plot(est, type='l')

這是KernSmooth文檔中描述的方法。 請注意, dpik()找到最佳帶寬,而bkde()使用該帶寬來擬合內核密度估計。 重要的是,我使用此方法代替基本的density()函數。

如何將這些地塊彼此疊加?

我無法使用geom_density() ggplot2依賴的基本density()函數,因為帶寬和內核密度估計值是使用KernSmooth軟件包進行最佳優化的(請參見Deng&Wickham,2011,這里: http ://vita.had.co 。 nz / papers / density-estimation.pdf )。 由於Wickham編寫了ggplot2以及上面對內核密度估計軟件包的回顧,因此,有一種方法可以使用ggplot2來分層不依賴於基本density()函數的density() ,但是我不確定。

即使我不想使用基本的density()函數,我也可以使用ggplot2嗎? lattice

您可以使用geom_line來做到這geom_line

 m <- ggplot(NULL, aes(x=bkde(movies$votes)$x,y=bkde(movies$votes)$y)) + geom_line()
 print(m)

如果您正在使用grid :: densityplot做t,則可能會將一些值添加到drags-list中:

DARG
傳遞給密度函數的參數列表。 通常,這應該是一個包含零個或多個以下成分的列表:bw,adjust,kernel,window,width,give.Rkern,n,從,至,cut,na.rm(有關詳細信息,請參見密度)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM