私は初心者のRユーザーです。Zeligバージョン4.1-3とAmeliaIIバージョン1.7をインストールしました。Rパッケージと関数を使用して、結合された多重代入データの自由度、t統計量、およびf値を取得する方法に戸惑っています。
まず、AmeliaとZeligをロードしました。
require(Amelia)
require(Zelig)
次に、Ameliaに付属のサンプルデータをロードしました。
data(freetrade)
amelia関数を使用して、このデータセットに対して5つの代入を作成しました。
a.out <- amelia(freetrade, m = 5, ts = "year", cs = "country")
次に、代入を組み合わせるために、zelig関数を使用しました。
z.out.imp <- zelig(tariff ~ polity + pop + gdp.pc + year + country,
data = a.out$imputations, model = "ls" )
ただし、このコードを使用したときに、結合されたセットの係数ではなく、個々の代入の係数のように見える係数を取得しました。
summary(z.out.imp)
それらは次のとおりでした:
Coefficients:
Value Std. Error t-stat p-value
(Intercept) 2.766176e+03 6.670110e+02 4.1471215 0.0003572868
polity 1.645011e-01 3.078134e-01 0.5344183 0.5938286336
pop -6.079963e-08 6.518429e-08 -0.9327345 0.3774275934
gdp.pc -4.246794e-04 1.945866e-03 -0.2182470 0.8319093062
year -1.335563e+00 3.519513e-01 -3.7947390 0.0009787456
countryIndonesia -7.000319e+01 4.646330e+01 -1.5066343 0.1700377061
countryKorea -8.643855e+01 4.671629e+01 -1.8502870 0.0926657863
countryMalaysia -8.815182e+01 5.389486e+01 -1.6356256 0.1393312364
countryNepal -8.215250e+01 5.475828e+01 -1.5002753 0.1702129176
countryPakistan -4.349869e+01 5.149729e+01 -0.8446791 0.4238033944
countryPhilippines -8.088975e+01 5.320694e+01 -1.5202857 0.1673234716
countrySriLanka -7.668840e+01 5.695485e+01 -1.3464771 0.2161986616
countryThailand -7.400481e+01 5.186395e+01 -1.4269026 0.1903428838
アメリアのマニュアルには、Rを使用してすべての係数を取得する方法についての説明はありませんが、結合された多重代入データセットの係数の一部がどのようになるかが示されています(http://cran.r-project.org/web/の46ページを参照)。 packages / Amelia / vignettes / amelia.pdf)
Complete DF = 167
DF: min = 10.36
avg = 18.81
max = 37.62
F( 2, 10.4) = 15.50
Prob > F = 0.0008
Value Std. Error t-stat p-value
polity -0.206 0.39 -0.53 0.61
pop -3.21 e-08 8.72e-09 3.68 0.004
gdp.pc -0.0027 0.000644 -4.28 0.000
Intercept 32.7 2.66 12.29 0.000
アメリア関数はモンテカルロシミュレーションを使用するため、実行間のわずかな違いが予想されます。ただし、切片の大きな違いは、zelig関数が結合されたセット以外のものの回帰統計を返すという手がかりでした。
アメリアのマニュアルには、次のコードが記載されています。
> b.out <-NULL
> se.out <-NULL
> for(i in 1:a.out$m){
+ ols.out <- lm(tariff ~ polity + pop + gdp.pc, data = a.out$imputations[[i]])
+ b.out <- rbind(b.out, ols.out$coef)
+ se.out <-rbind(se.out, coef(summary(ols.out))[,2])
+ }
> combined.results<-mi.meld(q=b.out, se = se.out)
> combined.results
使ってみました。返される結果は、46ページに示されている値と標準誤差に非常に近いものです。
$q.mi
(Intercept) polity pop gdp.pc
[1,] 33.17325 -0.1499587 2.967196e-08 -0.002724229
$se.mi
(Intercept) polity pop gdp.pc
[1,] 2.116721 0.276968 6.061993e-09 0.0006596203
ただし、t統計、自由度、またはf値は含まれていません。
手動計算を行わなくても自由度、t統計量、およびf値を取得できるように、Rで利用可能なオープンソースのパッケージまたは関数はありますか?
ありがとう。