簡體   English   中英

加權數據的威布爾分布

[英]Weibull distribution with weighted data

我有一些時間來處理事件數據,我需要為模擬模型的子組生成大約200個形狀/比例參數。 我已經分析了數據,並且最好遵循魏布爾分布。 通常,我會使用fitdistrplus包和fitdist(x, "weibull")來執行此操作,但是此數據已使用內核匹配進行了匹配,並且我有一個加權值變量km ,因此需要合並一個權重,據我fitdist不能做的事情。 使用我的伽馬分布式數據而不是使用fitdist我使用了hsmisc軟件包中的wtd.meanwtd.var函數手動進行了計算,效果很好。 但是,為韋伯找到類似的公式使我難以理解。

我一直在測試一些選項,並將它們與fitdist結果進行比較:

test_data <- rweibull(100, 0.676, 946)
fitweibull <- fitdist(test_data, "weibull", method = "mle", lower = c(0,0))
fitweibull$estimate
shape          scale
0.6981165      935.0907482

我首先對此進行了測試: R中的Weibull分布(ExtDist)

library(bbmle)
m1 <- mle2(y~dweibull(shape=exp(lshape),scale=exp(lscale)),
 data=data.frame(y=test_data),
 start=list(lshape=0,lscale=0)) 

這給了我lshape = -0.3919991lscale = 6.852033

我嘗試過其他的事情是eweibullEnvStats包。

eweibull <- eweibull(test_data)
eweibull$parameters
shape       scale
0.698091    935.239277

但是,盡管這些都可以帶來結果,但我仍然認為我無法將我的數據與權重相適應。

編輯:我也嘗試了類似的命名eWeibullExtDist包(我肯定不是100%仍然有效,但確實有一個威布爾函數,它的重量!)。 我收到很多關於輸入不可計算(NA或無限)的錯誤消息。 如果我用map來做,那么map(test_data, test_km, eWeibull)對於所有100個值我都會得到[[NULL]。 如果僅使用test_data進行嘗試,則會出現一連串與optimx相關的錯誤。

我還嘗試fitDistr來自propagate fitDistr ,該錯誤給出了weights應為特定長度的錯誤。 例如,如果兩個都設置為100,則會出現一個錯誤,即weights應為長度94。如果將其設置為94,則表明長度必須為132。

我需要能夠將一組預加權的均值/ var / sd等數據傳遞到計算中,或者具有一個可以獲取數據和權重並在計算中使用它們的函數。

經過多次試驗和錯誤,我從EnvStats包中將eweibull函數編輯為,而不是使用mean(x)sd(x) ,而是使用wtd.mean(x,w)sqrt(wtd.var(x, w)) 現在將運行並輸出加權值。

暫無
暫無

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

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