Расчет средневзвешенного и стандартного отклонения

у меня есть временной ряд 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

цель состоит в том, чтобы в основном вес наблюдений, которые находятся дальше назад во времени меньше. Это очень просто реализовать, но я хотел бы использовать как можно больше встроенных функций. Кто-нибудь знает, чему это соответствует в Р?

спасибо

4 ответов


R обеспечивает средневзвешенное значение. На самом деле ?утяжеленный.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)

пакет 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 не включил явное


Я тоже получаю ошибки от Hmisc при использовании


пакет Hmisc обеспечивает эту функциональность:

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