Расчет средневзвешенного и стандартного отклонения
у меня есть временной ряд 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 обеспечивает эту функциональность:
http://rgm2.lab.nig.ac.jp/RGM2/func.php?rd_id=Hmisc:wtd.stats