我同意@Stibu你想CDF。當你在談論一組已實現的數據時,我們將其稱爲empirical cumulative distribution function(ECDF)。在R,基本函數調用,這是?ecdf:
CF <- read.table(text="[1,] 2275.351
[2,] 2269.562
[3,] 1925.700
[4,] 1904.195
[5,] 1974.039", header=F)
CF <- as.vector(CF[,-1])
CF # [1] 2275.351 2269.562 1925.700 1904.195 1974.039
windows()
plot(ecdf(CF))
如果你願意下載fitdistrplus包,裏面有很多花哨的版本,你可以玩:
library(fitdistrplus)
windows()
plotdist(CF)
fdn <- fitdist(CF, "norm")
fdw <- fitdist(CF, "weibull")
summary(fdw)
# Fitting of the distribution ' weibull ' by maximum likelihood
# Parameters :
# estimate Std. Error
# shape 13.59732 4.833605
# scale 2149.24253 74.958140
# Loglikelihood: -32.89089 AIC: 69.78178 BIC: 69.00065
# Correlation matrix:
# shape scale
# shape 1.0000000 0.3328979
# scale 0.3328979 1.0000000
windows()
plot(fdn)
和
windows()
cdfcomp(list(fdn,fdw), legendtext=c("Normal","Weibull"), lwd=2)
感謝。 你有我可以用來得到確切概率的代碼嗎?例如:CF位於1.2以下的可能性? – Andreas
由於您正在使用經驗數據,因此無法以這種方式獲得確切的概率。但是你可以從你的數據中估計出這個概率。這就是計算CDF(應該是ECDF ...)所做的工作。所以你通過總和(CF <= b)/長度(CF)'來估計CF位於'b'之下的概率。 – Stibu