過去のトップページ日記2009.07.31
天気図。気象庁が作っているものの一つです。 気象庁は気象情報の提供が仕事だが、来年からはXML形式でデータを配布するようになるみたいだ。しかし、XMLでのデータ配布までの道のりは時間がかかった。
2004年11月25日に、気象庁は府県天気予報と府県週間天気予報をXML形式で提供する事を発表しました(参考ページ)。2008年2月1日に気象情報をXML形式で提供するための仕様策定作業を開始(参考ページ)。2009年5月15日に気象庁防災情報XMLフォーマットの仕様を策定(参考ページ)。天気予報フォーマットは鋭意作業中だと思われる。 XMLスキーマとかしっかり定義しているのはいいのだが、方針決まってからの速度が遅すぎるような。特に2005〜2007年は一切動きが無かったわけで、さぼっていたと言われても仕方がない。森内閣のときにe-japan構想とか言っていたわりには、こういう公共データのインターネット配信・配布が進んでいないのが日本の現状か。 単なるデータ形式だし、バージョンをつけることで刷新することもできるのだから、とっとと作れば良かったのだが、はやり役所仕事というか時間がかかってしまったようだ。XML形式の天気予報は、それを応用して各種のコンテンツやシステムが動く事を考えると、インフラに近い類の情報だ。e-japan構想にコンテンツの充実とあるが、XML形式の天気予報の遅々とした進捗を見ていると、そのためのインフラ投資が十分であったか疑わしくさえ感じてしまう。政治家や役人の皆さんがIT、IT言うときには、何が政府の仕事で、どれぐらいのペースで進展させるのかを、本気で考えて欲しい次第です。
画像元ページ:気象庁 | 天気図
Trackback Ping-URL: http://uncorrelated.no-ip.com/cgi-bin/trackback/20090731
あらしの為のTips(;゚д゚) R言語で3SLSを使って連立方程式モデルを推定せよ! 経済分析などでは連立方程式モデルによる構造方程式を推定する事がよくあり、この連立方程式を解くときにSURと呼ばれる手法を使う事がある。最近はSURの内生性や不均一分散の問題を対処するために、一般的に使われているのが3SLSとGMM(GMM-3SLSとも呼ぶ)だ。R言語では、systemfitパッケージを利用することで、これら連立方程式モデルを推定することができる。 1. 連立方程式モデル概説全く連立方程式の推定が分かっていないと、妥当なオプションを選ぶことさえできないと思うので、大雑把に解説する。 1.1. SUR以下のような連立方程式があるとしよう(式の数は何本あっても良い)。 これをSURで推定する形式に書き直すと、以下のようになる。
単に連立方程式を合体させて、観測された変数行列の上半分の行がytの式に対応し、下半分の行がxtの式に対応する。これを一見、無関係に見えるのでSURという。ただし、両式の誤差項はあわせて最小化される。 なお、ytの式に対応する変数の列と、xtの式に対応する変数の列を共通にすれば、両式で同一の係数を持つこともできる(SUR with Cross Equation Restrictions)。 当然、ε1tとε2tがi.i.dなのか、不均一分散は無いのかという点が問題になるが、通常はFGLSといって、式ごとの不均一分散はGLSでコントロールされる。 1.2. 3SLS不均一分散をコントロールしたとしても、同時方程式モデルであったりすると、内生性が制御できない。そこで、操作変数を取れる2SLSで各式の分散・共分散行列を求めた後に、それからWeight Matrixを作成し、SURを行う3SLSが用いられる。結果的に2段階最小二乗法の後に、もう1段階最小二乗法を行うので、3段階最小二乗法と呼ばれる。 1.3. GMM-3SLS3SLSのWeight Matrixが最適であるとは限らない。各式の分散の違いはコントロールできるが、そもそも変数自体が分散と相関していたりすると、有効推定量にならないのだ。 GMMにも弱点があって、小標本だと推定がうまく行かないことがある。このため、3SLSとGMMを使い分ける人が多い。 2. インストールインターネットに接続した環境で、以下のコマンドでインストールされる。必要なパッケージが多数あるので、インストールにはそれなり時間がかかる。
install.packages("systemfit")
3. 推定systemfitパッケージには、サンプルのデータセットが付属するので、それで実際に推定を行ってみよう。 まず、systemfitを呼び出す。
library(systemfit)
分析する連立方程式は次のようなものになる。
良くある教科書のサンプルのKmentaデータセットを呼び出し、実際に推定してみる。
# 教科書の食料の需要供給の関係をあらわすサンプルを読み込む
# 各変数の意味は ?Kmenta をして確認すること data("Kmenta") names(Kmenta) # データフレームの中身を確認 eqD <- consump ~ price + income # 需要関数を定義 eqS <- consump ~ price + farmPrice + trend # 供給関数を定義 iv <- ~income + farmPrice + trend # 操作変数を指定 system <- list(demand = eqD, supply = eqS) # eqDとeqSをリストし、連立方程式とする r_3sls <- systemfit(system, method = "3SLS", inst=iv, data=Kmenta, methodResidCov="noDfCor") # 3SLSで推定。なお、method3sls="GMM" オプションをつけると、3SLS-GMMで推定できる。 あっさり推定できる。 4. 検定次に検定。systemfitパッケージで簡単に扱える検定は、Hausman検定(外生変数と誤差項が独立かを検定)、Wald検定(線形制約の検定)であり、後は尤度が出るので尤度比検定を行う事ができる。 ただし、検定はややコツがいる。SURの説明変数の行列がどうなっているか理解していないと、Wald検定の制約はかけられないかも知れない。以下は、操作変数の存在を無視したSURモデルだが、需要と供給、どちらの方程式の説明変数であっても、最終的には一つの行列にまとめられているが、Wald検定の制約は、この説明変数の行列の列番で指定するのである。
実際のコマンドは以下の通り。
# eqDのpriceと、eqSのfarmPriceが等しいことをH0にしてWald-test
# 実際の推計で使う説明変数の行列式Xが、切片項を含み、X=[C, price, income, C, price, farmPrice, trend]と構成されることに注意。 RM <- matrix(c(0, 1, 0, 0, 0, 1, 0), nrow=1, ncol=7) # 説明変数が7個なので1行7列の行列を作る # priceは2番目、farmPriceは6番目 linear.hypothesis(r_3sls, RM, test = "Chisq") # 外生変数と誤差項が独立をHausman検定 # H0: 外生変数と誤差項が相関しない → 棄却するとまずい r_2sls <- systemfit(system, method="2SLS", inst=iv, data=Kmenta, methodResidCov="noDfCor") hausman.systemfit(r_2sls, r_3sls) # 左に2SLS、右に3SLS/GMMの結果を入れる # 尤度を表示。尤度比検定はテキスト通りに行ってください。 logLik(r_3sls) なお、変数行列の列の位置を指定するのが分かりづらい場合は、[式ラベル]_[変数名]で変数を指定し、制約式をテキストで書くこともできる。
linear.hypothesis(r_3sls, "demand_price - supply_farmPrice = 0")
5. まとめマクロ均衡式など、多くの経済モデルは連立方程式体系(しかも同時性がある)になっている。このために小難しい分析手法を使う必要があるが、Rでsystemfitパッケージを使う事で、簡単に高度な分析手法を利用できることが確認できた。 要するに、ほとんど何も分かっていなくても分析できるわけだが、推定式と操作変数ぐらいは意識して扱うようにしてくださいヽ(´д`)ノ 参考ページ
注意
|
過去ログ |