Rでパネルデータ分析をやってみる
1.はじめに
最近は統計処理のためにRを使っている。で、このたびRでパネルデータ分析にチャレンジしてみることにした。パネルデータというのは複数の主体の時系列データをまとめたものである。クロスセクション×時系列のデータ。例えば、1990~2007年の都道府県別一人当たり県民所得データはパネルデータである。この場合は、都道府県別というのがクロスセクションであり、1990~2007年というのが時系列ということになる。
Rでパネルデータ分析を行うためには、パッケージplmが必要である。でもplmはまた別のパッケージを必要としているので、以下のパッケージを"The Comprehensive R Archive Network"からダウンロードして解凍・インストールする必要がある:
- plm
- kinship
- nlme
- Formula
- VR
- sandwich
- zoo
埼玉大学の並河永先生のウェブページ「パネルデータ分析」(旧「土壇場の経済学」?)では「plmはR-2.8.0以降のバージョンでないと動作しません」と書かれているが、R-2.4.1でも一応動作した。しかしながら、読者諸氏は念のためR-2.9.0を使った方が良いと思う。Rの最新版はここで手に入る。
2.電力消費量の所得弾力性/価格弾力性を検討してみる
さて、Rによるパネルデータ分析の準備ができたので、実際に作業してみる。今回準備したのは、勤労者世帯・年間収入五分位階級別・全国平均の電力消費量(MJ)、都市ガス消費量(MJ)、プロパンガス消費量(MJ)、灯油消費量(MJ)、実質可処分所得、実質電力単価(1MJあたり。全国平均値。以下同様)、実質都市ガス単価、実質プロパンガス単価、実質灯油単価のデータ、1987~2007年分である。弾力性を求めるため、いずれの値も自然対数化している。データはこれ:"ene-panel-87-07.txt"。
記号は
- class:五分位階級。1が最も低所得の階級で、5が最も高所得の階級
- yr:年次
- LEC:電力消費量(MJ)の自然対数
- LGC1:都市ガス消費量(MJ)の自然対数
- LGC2:プロパンガス消費量(MJ)の自然対数
- LKC:灯油消費量(MJ)の自然対数
- LY:実質可処分所得の自然対数
- LEP:1MJあたり実質電力単価の自然対数
- LGP1:1MJあたり実質都市ガス単価の自然対数
- LGP2:1MJあたり実質プロパンガス単価の自然対数
- LKP:1MJあたり実質灯油単価の自然対数
Rを立ち上げたら、まず、plmのパッケージを読み込まないといけないので、次のようにコマンドを入力する:
library(plm)
つぎにデータの読み込みである(当然のことながら、読み込む前に作業をするディレクトリを、"ene-panel-87-07.txt"が保存されているディレクトリに変更しなくてはいけない)。
ene<-read.table("ene-panel-87-07.txt", header=T)
ene<-plm.data(ene, index=c("class","yr"))
電力消費量が所得とエネルギー単価に依存するというモデルを立てて分析を実施してみる。モデルを次のように入力する。
form <- LEC~ LY+LEP+LGP1+LGP2+LKP
なぜ、電力消費量がガスや灯油の単価にも依存するモデルを構成したのかというと、例えば、灯油の値段が電力の値段に比べて相対的に高くなれば、灯油の使用が減り、電力の消費量が増すと考えられるからである。
さて、いよいよ分析にとりかかるわけだが、パネルデータ分析では三つのモデルが提案されている:
その1: pooling推計モデル
y(i, t) = a + b × x(i, t) + ε(i, t)
yが従属変数、xが独立変数、εが誤差項である。小生の分析ではyが(自然対数化された)電力消費量、xが(自然対数化された)実質可処分所得や実質エネルギー単価にあたる。添え字のiはindividualすなわち主体(個体)の識別番号、tはtimeすなわち時間を表すインデックスである。小生の分析ではindividualは所得五分位階級、timeは年次にあたる。
pooling推計ではindividualやtimeが特別な影響を及ぼさない、つまり、所得階級も年次もとくに電力消費量に影響を及ぼさないと仮定されている。
その2: within推計(固定効果) モデル
y(i, t) = a(i) + b × x(i, t) + ε(i, t)
individualごとに切片項(a(i))が異なるというモデルである。つまり、within推計(固定効果) モデルでは所得階級が電力消費量に影響を与えるわけである。
その3: random推計(変量効果)モデル
y(i, t) = a + b × x(i, t) + ν(i) + ε(i, t)
これはindividualごとに誤差項の分散が異なるというモデルであり、ν(i)はランダム効果と呼ばれる。
このように三つのモデルがあるのだが、どれが適切なのかということは検定を行わないといけない。まず、パネルデータをそれぞれのモデルに当てはめてみる。上から順にpooling推計、within推計、random推計モデルへの当てはめを行っている:
model.pl <- plm(form, data=ene, model="pooling")model.wi <- plm(form, data=ene, model="within")
model.re <- plm(form, data=ene, model="random")
つぎに検定を行う。poolingとwithinのどちらが適切か、という検定はF検定によって行う。plmパッケージではpFtestまたはpooltestという関数を使う。ここではpooltestを使う:
pooltest(model.pl, model.wi)
とやると、
F statisticdata: form
F = 0.8992, df1 = 4, df2 = 95, p-value = 0.4678
alternative hypothesis: unstability
という結果が出てくる。帰無仮説H0「
なお、pFtestを使うときには、
pFtest(model.wi, model.pl)
と、中に入れるモデルの順番が逆になるので注意。
つぎにpoolingとrandomのどちらが適切か、という問題に関してはBreusch-Pagan検定を行う。この検定ではplmtestという関数を使用する:
plmtest(model.re, "individual", "bp")
結果は
Lagrange Multiplier Test - (Breusch-Pagan)data: form
chisq = 0.2424, df = 1, p-value = 0.6225
alternative hypothesis: significant effects
となる。帰無仮説H0「
ここまでですでにpooling推計モデルで良いという話になるが、一応、withinとrandomだったらどちらが適切か、という検定もやってみよう。この検定をHausman検定という。plmパッケージではphtestという関数を使う。
phtest(model.wi, model.re)
とやると、
Hausman Testdata: form
chisq = 0.331, df = 5, p-value = 0.997
alternative hypothesis: one model is inconsistent
という結果が得られる。帰無仮説H0「
結果として、pooling推計モデルが支持されたので、その結果を見てみる:
summary(model.pl)
とやると、
Oneway (individual) effect Pooling ModelCall:
plm(formula = form, data = ene, model = "pooling")Balanced Panel: n=5, T=21, N=105
Residuals :
Min. 1st Qu. Median 3rd Qu. Max.
-0.09830 -0.03040 0.00239 0.02920 0.08790Coefficients :
Estimate Std. Error t-value Pr(>|t|)
(Intercept) 2.200985 0.654001 3.3654 0.0007643 ***
LY 0.633764 0.014046 45.1218 < 2.2e-16 ***
LEP -2.106578 0.189301 -11.1282 < 2.2e-16 ***
LGP1 0.155435 0.137564 1.1299 0.2585142
LGP2 0.566161 0.241174 2.3475 0.0188990 *
LKP -0.171418 0.046161 -3.7135 0.0002044 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1Total Sum of Squares: 6.8076
Residual Sum of Squares: 0.15123
F-statistic: 871.52 on 5 and 99 DF, p-value: < 2.22e-16
という結果が出てくる。
このモデルでは都市ガス価格は電力消費量に影響を与えないが、残りの独立変数は全て影響を与えるという結果が得られている。また、所得、プロパンガス、灯油価格が上昇すると電力消費量が増加、電力価格が上昇すると電力消費量が減少するという、まあ常識的な答えが出てきている。
本格的にパネルデータ分析を実施するにはまだいろいろ検討するべきところがあるのだが、記事が長くなるのでここらへんで終わりにする。
非常に参考になったのはこのブログ:
ゲリラ的 uncorrelated のウェブページ
あと、この資料もわかり易い(Stata向けだが):
「Stata によるパネルデータ分析」(pdf)
読者諸氏も参照されたい。
パネル・データの分析について本格的に踏み込みたいなら:
![]() | ミクロ計量経済学の方法―パネル・データ分析 チェン シャオ 国友 直人 東洋経済新報社 2007-12 売り上げランキング : 266576 Amazonで詳しく見る by G-Tools |
| 固定リンク
「パソコン・インターネット」カテゴリの記事
- Copilotにあらすじを書いてもらう(2023.10.28)
- Microsoft Copilotとのやり取りの例(2023.10.17)
- 「情動エンジニアリング」について考える本(2022.03.19)
- Elmを学ぶ(2021.12.19)
- Microsoft EdgeでPDFを開こうとするとフリーズする件(2021.07.31)
「アカデミック」カテゴリの記事
- 『<学知史>から近現代を問い直す』所収の「オカルト史研究」を読む(2024.05.23)
- データ主導時代に抗して(2023.11.08)
- モンゴル語の"Л (L)"の発音(2022.11.18)
- 『学術出版の来た道』を読む(2021.12.10)
- Proton sea | 陽子の海(2021.06.03)
「R」カテゴリの記事
- 統計実務の好著が出た:朝野煕彦『入門 多変量解析の実際』(2018.06.04)
- タグクラウドもしくはワードクラウドの練習(続)(2018.05.17)
- タグクラウドもしくはワードクラウドの練習(2018.05.16)
- Rでネパールのdistrict別人口密度の塗分け地図を作る(2018.04.06)
- Rで雨温図(Hythergraph)を書く(その3)(2017.04.25)
コメント
相変わらず、分析やTV出演でご活躍の様ですね(・∀・)イイ
うちでは、山口のTVを視る事が出来ないので・・・残念です(*´σー`)
私は、来る日も来る日も「ビジネスプラン」です(。>0<。)
時々、マーケもしていますが・・・SWOT、5F、4P三昧です。
たまには、理系サイドの経営のお仕事したいですぅ~と、ニートなタラちゃんっぽく書いてみます。
今日は、子供の少林寺拳法の見学に行って参りました。
そのせいで、こんな時間にまだ雑事をやっております。
秋に、自分へのご褒美(何の??)で車を(3台中の1台のみ)買い換えますので・・・常磐公園に遊びに行く時にでも・・・ご尊顔を拝見させていただきたいと考えております。
では、おやすみなさいませ。
P.S.
最近、すごいピッチで70・80年代CD買いあさっています・・・聴いていないCDが100枚突破しておりますアワ((゚゚дд゚゚ ))ワワ!!
投稿: 娘が堀北真希ならなぁ | 2009.06.13 01:00