35

私は時系列を持ってい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}

参照: http://en.wikipedia.org/wiki/Weighted_mean#Weighted_sample_variance

目標は、基本的に、時間的にさかのぼる観測を重み付けすることです。これは実装が非常に簡単ですが、できるだけ多くの組み込み機能を使用したいと考えています。これがRで何に対応するか知っている人はいますか?

ありがとう

4

5 に答える 5

36

R は加重平均を提供します。実際、?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)

もう 1 ステップ:

v <- sum(wt * (x - xm)^2)
于 2012-04-07T02:23:28.007 に答える
32

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 を平方根する必要があります。

チャールズ・カンガイ

于 2014-06-24T10:59:42.420 に答える
0

Hmisc パッケージは次の機能を提供します。

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

于 2012-04-08T02:27:10.013 に答える