计算加权平均值和标准偏差(Calculating weighted mean and standar

2019-06-23 11:14发布

我有一个时间序列x_0 ... x_t 。 我想计算数据的指数加权变化。 那是:

V = SUM{w_i*(x_i - x_bar)^2, i=1 to T} where SUM{w_i} = 1 and x_bar=SUM{w_i*x_i}

REF: http://en.wikipedia.org/wiki/Weighted_mean#Weighted_sample_variance

我们的目标是基本重量是更久远的时间较少的观察。 这是很容易实现,但我想用尽可能多的内置funcitonality越好。 有谁知道这对应于R'

谢谢

Answer 1:

ř提供加权平均。 事实上,weighted.mean显示了这个例子?

 ## GPA from Siegel 1994
 wt <- c(5,  5,  4,  1)/15
 x <- c(3.7,3.3,3.5,2.8)
 xm <- weighted.mean(x, wt)

更进一步:

v <- sum(wt * (x - xm)^2)


Answer 2:

该Hmisc包包含了你所需要的功能。

从而:

x <- c(3.7,3.3,3.5,2.8)

wt <- c(5,  5,  4,  1)/15

xm <- wtd.mean(x, wt)

var <- wtd.var(x, wt)

sd <- sqrt(var)

不幸的是,Hmisc包的作者没有包括明确wtd.sd功能。 你必须平方根wtd.var。

查尔斯康艾



Answer 3:

我也从得到错误Hmisc使用时wtd.var()函数。 幸运的是, SDMTools具有类似功能,甚至直接计算SD的你,无需采取方差开方。

library(SDMTools)

x <- c(3.7,3.3,3.5,2.8)
wt <- c(5,  5,  4,  1)/15  ## Note: no actual need to normalize weights to sum to 1, this will be done automatically.

wt.mean(x, wt)
wt.sd(x,wt)

wt.var(x, wt)


Answer 4:

Hmisc包提供此功能:

http://rgm2.lab.nig.ac.jp/RGM2/func.php?rd_id=Hmisc:wtd.stats



文章来源: Calculating weighted mean and standard deviation