簡體   English   中英

計算R中加權離散隨機變量的均值和方差

[英]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.

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