簡體   English   中英

計算累積分布(CDF)的導數以獲得概率密度(PDF)

[英]Calculate derivative of Cumulative Distribution (CDF) to get Probability Density (PDF)

以下代碼計算向量VP的累積分布函數(CDF)。 我想使用CDF來獲得概率密度函數(PDF)。 換句話說,我需要計算CDF的導數。 我如何在R中做到這一點?

VP <- c(0.36, 0.3, 0.36, 0.47, 0, 0.05, 0.4, 0, 0, 0.15, 0.89, 0.03, 
    0.45, 0.21, 0, 0.18, 0.04, 0.53, 0, 0.68, 0.06, 0.09, 0.58, 0.03, 
    0.23, 0.27, 0, 0.12, 0.12, 0, 0.32, 0.07, 0.04, 0.07, 0.39, 0, 0.25, 
    0.28, 0.42, 0.55, 0.04, 0.07, 0.18, 0.17, 0.06, 0.39, 0.65, 0.15, 
    0.1, 0.32, 0.52, 0.55, 0.71, 0.93, 0, 0.36)
set.seed(0)
CF <- round(sapply(1:1000, function(i) sample(VP, length(VP), replace=TRUE)),2)
Breaks <- c(max(CF,1.0), 1.0, 0.9, 0.8, 0.7, 0.6, 0.5, 0.4, 0.3, 0.2, 0.1, 0)
CDF <- round(sapply(Breaks, function(b) sum(CF<=b)/length(CF)),2)

diff是離散差分運算符,所以我認為您正在尋找

diff(CDF)/diff(Breaks)
  • 請注意,此向量將比原始CDFBreaks向量短一個
  • 您可能需要對反轉CDFBreaks向量進行一些操作才能獲得明智的結果...

您也可以嘗試經驗性的cdf函數:

CDF <- ecdf(VP)

直方圖函數還可以提供樣本密度函數

PDF <- hist(VP, freq=F)

看看PDF$countsPDF$breaks

暫無
暫無

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

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