[英]calculate mean and variance for weighted discrete random variables in R
我有以下數據框:
dat <- read.table(text=" X prob
1 1 0.1
2 2 0.2
3 3 0.4
4 4 0.3", header=TRUE)
是否有任何內置函數或簡潔的方法來計算R中離散隨機變量的均值和方差?
基數R中有一個weighted.mean
函數,Hmisc包中有一堆wtd。*函數。
> with(dat, weighted.mean(X, prob))
[1] 2.9
require(Hmisc)
> wtd.var(x=dat$X, weights=dat$prob)
[1] Inf
# Huh ? On investigation the weights argument is suppsed to be replicate weights
# So it's more appropriate to use normwt=TRUE
> wtd.var(x=dat$X, weights=dat$prob, normwt=TRUE)
[1] 1.186667
托馬斯·拉姆利(Thomas Lumley)的調查軟件包所提供的遠遠超出了這個簡單例子所能說明的。 它具有處理各種統計建模程序的復雜加權方案的機制:
require(survey)
> dclus1<-svydesign(id=~1, weights=~prob, data=dat)
> v<-svyvar(~X, dclus1)
> v
variance SE
X 1.1867 0.7011
這些是樣本統計信息,而不是為抽象隨機變量計算的方差。 這個結果似乎確實適用於統計系統,但可能不是概率作業問題的正確答案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.