インターネットを活用した経済分析
フリーソフト Rを使おう
山本 雅資1 伊藤 岳1
1富山大学 極東地域研究センター
本日の講義内容
第1回:イントロダクション 第2回: 企業行動の理論とR 第3回: 家計行動の理論とR 第4回: 環境問題・貿易理論とR 第5回: 特別講義:RESASについて第1回:イントロダクション
第2回: 企業行動の理論とR 第3回: 家計行動の理論とR 第4回: 環境問題・貿易理論とR 第5回: 特別講義:RESASについて
本講義について
▶ 本講義は経済学部の2-4年生に向けの講義。 ▶ 経済学を学ぶ上で有用な情報処理技術の習得を主たる目的と する。 ▶ 教員の専門は環境経済学 (山本)、国際関係論 (伊藤)。 ▶ 講義とハンズオントレーニングを交互に行う。 ▶ 成績評価は、グループプロジェクト(80%)、講義中の課題 (20%)とする。履修上の注意
▶ 単位として認められるためには、事前の登録が必要(締 切済)。 ▶ シラバスにある通り、ノートPCの持ち込み及び学内無線 LANへの接続を前提とする。 ▶ 経済学入門で講義されている内容および微分の基礎は知って いるものとして講義する。 ▶ 分析はRと呼ばれるソフトウェアを使用する。大まかなスケジュール
▶ 初日はインストールから始め、最低限のことが一人出来るよ うに基礎的な使い方を学ぶ。 ▶ なるべくハンズオンの時間を増やす。 ▶ 演習問題を解く時間は設けるが提出は翌日の朝にハードコ ピーを持参する。 ▶ 二日目は、Rを使うことのメリットが最大限に享受できるよ うな、より応用的な内容を行う。 ▶ 最終日はRを利用したグループワークとそのプレゼンにあ てる。グループプロジェクトについて
▶ 2日目の最後に3-4人のグループに教員が割り振る。 ▶ 3日目の前半はグループで作業を行い、午後は成果のプレゼ ンを行う。 ▶ テーマは社会科学的課題に対して経済学をベースとした政策 提言とし、必ずRによる分析を含むこと。必要に応じて教員 が助言を行う。 ▶ プレゼン時間は15分+質疑とし、なるべく全メンバーが均等 に発言すること。R
とは何か?
▶ 統計データを処理し、視覚化することを得意とするオープン
ソースのソフトウェア。
▶ 経済学部で広く使用されている類似のソフトウェアに、
STATAやEviews、MATLABなどがある。
▶ STATAなど既存のソフトウェアは大変高額であり、卒業後に
汎用の表計算ソフトで出来ること・出来ないこと
▶ エクセルに代表される表計算ソフトは簡単な統計分析も可能 で大変便利。 ▶ 少し複雑な分析を行おうとすると大きな手間が必要になる。 ▶ 描くことのできるグラフも限られる(地図はほぼ不可)。 ▶ Rは同じ作業を繰り返し行うことが簡単にでき、効率が良い。R
のインストール
▶ RはWindows、Mac、Linuxのいずれの環境でも利用可能で
ある。
▶ Rを開発しているコアチームのウェブサイト「Comprehensive
R Archive Network」(CRAN:シーランあるいはクランと呼ば
れている)のミラーサイトにアクセスする。
例:統計数理研究所のミラーサイト
http://cran.ism.ac.jp/
R
を操作する上での注意
▶ Rに限らず、パソコンを操作する上で、全角文字「A」と半 角文字「A」は違うことをよく理解すること。 ▶B
とB
も異なる。 ▶ コンピュータは全角文字を我々が見ているものとは違うもの として認識する。 ▶ 思わぬエラーにつながるので、必ず半角文字で入力すること (スペースも)。 ▶ なお、マイクロソフトWordなどのワープロソフトは、文字 以外の情報も含んでいるので、コードの記録には用いない方 が無難。R
を起動してみよう
▶ 起動はデスクトップのアイコンをクリックするだけ。 ▶ まずは四則演算をやってみよう。掛け算の記号は?割り算の 記号は?べき乗の記号は? ▶ プロンプトと呼ばれる以下の記号が入力待ちを意味する。 > (ここに命令を入力) ▶ 閉じ括弧を忘れるなど命令が途中であると、+記号が表示さ れる。抜け出したい場合は、escキーを押す。少し進んだ計算
(1):
変数の利用
計算結果を記録して再利用する。 > x <- 1.5+2.5 # xに右側の演算結果が保存 > x [1] 4 > 2.5* x [1] 10少し進んだ計算
(2):
行列計算
行列計算はどのように行えば良いだろうか? > y <- c(1,2,3) # yに右側のベクトルが保存 つまり、y =[1 2 3]。このとき、 > y * y [1] 1 4 9 となり、各要素の積となる。少し進んだ計算
(2):
行列計算
y× y′=[1 2 3]× 12 3 = 1 × 1 + 2 × 2 + 3 × 3 = 14 は以下のように計算する。 > y %*% y # %で囲むことで行列の積となる [1] 14 > z <- c(1,2,3,4,5,6) > z.mat <- matrix(z,nrow=2,ncol=3) > z.mat [,1] [,2] [,3] [1,] 1 3 5 [2,] 2 4 6データ要素へのアクセス
前スライドの2行3列のマトリックスは、変数に保存された各要 素へのアクセスを理解する上で参考になる。 > z.mat[1,] [1] 1 3 5 > z.mat[,2] [1] 3 4少し進んだ計算
(3):
微分
微分を行うことはできるだろうか? > f <- expression(x^2) > D(f,"x") 2*x > h <- expression(x^2+3*x*y) > D(h,"x") 2*x+3*y計算結果の図示
> testfunction<- function(x^2) > x<-seq(-5,10,0.1) > plot(x, testfunction(x),type="l") ▶ より高機能なグラフを作ることのでき る ggplot2 というパッケージがある。 -5 0 5 10 0 20 40 60 80 100 x testfunction(x) 図 1 : y = x2のグラフR
にパッケージを追加しよう
▶ インストールしたRはいわば「骨組み」であり、自分の行い たい分析に応じて「肉付け」をしていくことができる。 ▶ この「肉付け」はパッケージと呼ばれるものを追加すること で行う。 ▶ 現在、CRANには公式パッケージが約8,000あると言われて いる。 ▶ この中を検索すれば、自分のやりたいことを効率よく行う パッケージが見つかることが多い。パッケージのインストール:
パッケージの例:
Nippon
パッケージ
▶ 三重大学の谷村晋教授が作成。 ▶ このパッケージを利用すると、日本地図の塗り分けが簡単に 行うことができる。 ▶ 通常の塗り分け以外にもカルトグラムなど特殊な地図も作成 可能。 ▶ 統計数理研究所の資料 (https://prs.ism.ac.jp/useRjp/) の 2013 年度に谷村氏による解説資料あり。 ▶ 沖縄を含めた離島の表示に工夫がある(地図の正確性を犠牲 に見やすさを追求)。Nippon
パッケージのコード例
前ページの谷村(2013)を参考に作成 >setwd("/users/XXXX/r/GIS/NipponPackage") # 最低限必要なパッケージ >library(Nippon) >library(RColorBrewer) >library(maptools) >library(classInt) # データ(都道府県別大学数)を読み込む >data<-read.table("NipponPackageTest.csv",sep=",",header=TRUE) >op <- par(bg = "skyblue") # 地図の背景色 # 地図をプロットする関数: データなし。境界が表示 >p <- JapanPrefecturesMap(col = "ivory") >colleges <- data$colleges # プロットに使用するデータ # 一つ目のデータインターバル (使う色を決めている)>cols <- rev(brewer.pal(5, "RdYlBu"))
#以下の n を変更することで区切りの数を変更。スタイルは区切り方
>c1 <- classIntervals(colleges, n = 5, style = "fisher")
>colcode1 <- findColours(c1, cols, cutlabels = FALSE) #変更の必要なし # 凡例 1 を作成する (変更の必要なし)
>legtext1 <- paste0(names(attr(colcode1,"table")), " (", attr(colcode1, "table"),")")
>p <- JapanPrefecturesMap(col = colcode1) # 地図のプロット (変更の必要なし) # 区切りその1の凡例の重ね合わせ (変更の必要なし)
>legend("bottomright", legend = legtext1,fill = cols, title = "Colleges",bg = "white")
都道府県別の大学数
Colleges under 8.5 (22) 8.5 - 20.5 (14) 20.5 - 38.5 (7) 38.5 - 97.5 (3) over 97.5 (1)課題
(1)
Nippon
パッケージを使用して、別のデータを日
本地図にプロットしてみよう。
参考サイト:総務省統計局「統計でみる都道府県のすがた」 http://www.stat.go.jp/data/k-sugata/naiyou.htm#mokuji2第1回:イントロダクション
第2回: 企業行動の理論とR
第3回: 家計行動の理論とR 第4回: 環境問題・貿易理論とR 第5回: 特別講義:RESASについて
生産関数
▶ 経済学では企業を利潤を最大化する主体として定義する。 ▶ 利潤(π)とは売上(単価に生産量をかけたもの:P × Y )から 費用(C(Y ))を引いたものである。 ▶ このとき、企業の行動は以下のように定式化できる。 max Y π = P Y − C(Y ) (1) ▶ Y は労働力と資本で決定されると考え、これを生産関数と 呼ぶ。生産関数の特定
▶ Hoover(2012, P331)1によると、2008年のアメリカの経済は 以下のような形でうまく表現できるという。 Y = 9.63L0.67K0.33 (2) ▶ ただし、Y は生産量、Lは労働力、Kは資本である。 ▶ このように、Y = ALaK1−aのような形で表される関数をコ ブ・ダグラス型生産関数という(Aは技術水準)。 1コブ・ダグラス型生産関数(三次元)
> plotFun(A*(L^0.7)*(K^0.3)~L&K, A=5,xlim=range(0,21), ylim=range(0,100), filled=FALSE, surface=TRUE ) ▶ 今回使用したmosaic以 外にも三次元のグラフを 描くパッケージはいくつ か存在。 ▶ 自分で使い易いものを見 つけよう。 L K A * (L ^0 .7 ) * (K^ 0. 3)生産・労働平面からみるコブ・ダグラス型生産関数
> library(mosaic) > plotFun(A*(L^0.7)*(K^0.3)~L,K=20,A=5,xlim=range(-1,21), ylim=range(-5,105)) L A * (L ^0 .7 ) * (K^ 0. 3) 0 20 40 60 80 0 5 10 15 20K
の変化の
Y
への影響
> plotFun(A*(L^0.7)*(K^0.3)~L,K=20,A=5,xlim=range(-1,21), ylim=range(-5,151)) > plotFun(A*(L^0.7)*(K^0.3)~L, K=40 ,A=5,xlim=range(-1,21), ylim=range(-5,151), lty=2,add=TRUE ) L A * (L ^0 .7 ) * (K^ 0. 3) 0 50 100 0 5 10 15 20A
の変化の
Y
への影響
> plotFun(A*(L^0.7)*(K^0.3)~L,K=20,A=5,xlim=range(-1,21), ylim=range(-5,151))
> plotFun(A*(L^0.7)*(K^0.3)~L,k=20, A=10 ,xlim=range(-1,21), ylim=range(-5,151), lty=2,add=TRUE ) L A * (L ^0 .7 ) * (K^ 0. 3) 0 50 100 0 5 10 15 20
等量曲線
> plotFun(A*(L^0.7)*(K^0.3)~L&K,A=5,xlim=range(0,21), ylim=range(0,100), filled=FALSE) L K 20 40 60 80 5 10 15 20 20 40 60 80 100 120 140 160第1回:イントロダクション 第2回: 企業行動の理論とR
第3回: 家計行動の理論とR
第4回: 環境問題・貿易理論とR 第5回: 特別講義:RESASについて
家計行動
▶ 経済学では、家計は予算制約の下で効用(U )を最大化する主 体である。 ▶ 財が2つである場合の効用最大化条件は以下のようになる。 Ux(x, y) px = Uy(x, y) py (3) ▶ ただし、Ux(x, y)≡ ∂U (x,y)∂x , Piは第i財の価格である。例題
:
効用最大化問題
(1)
▶ 価格がpx = 1, py = 2である2財について、ある消費者の効 用関数を以下のように仮定する。 U = x + 2√x· y + y (4) ▶ このとき各財の限界効用は以下のようになる。 Ux = 1 + x− 1 2√y, Uy = 1 +√x· y− 1 2 (5) ▶ これを(3)式に代入して整理すると以下を得る。 y12 x12 = 1 2 (6)例題
:
効用最大化問題
(2)
▶ 予算制約式: pxx + pyy = m (ただし、mは所得) ▶ これを(3)式に代入して整理することで以下の需要関数を 得る。 x = mpy px(px+ py) , and y = mpx py(px+ py) (7) ▶ m = 6のとき、x = 4、y = 1が効用を最大化する消費の組み 合わせとなる。式を
R
で見える化する
▶ この効用最大化問題は以下のように定式化できる。
max U = x + 2√x· y + y (8)
s.t. x + 2y = 6 (9)
式を
R
で見える化する
1 x<−seq(0,5,1)# 0から 5まで 1刻みの数列を生成
2 y<−seq(0,5,1)# 0から 5まで 1刻みの数列を生成
3 g<−function(x,y) x+2∗sqrt(x∗y)+y # 効用関数
4 z<−outer(x,y,g)# x と y の全てに関数 g を適用する
5 contour(x,y,z)# x-y 平面に等高線の表示
6 par(new=T)# 画像の重ね合わせ
7
8 contour(x,y,z,level=9)# x-y 平面に z=9の等高線の表示
9 par(new=T) 10
11 gg<−function(x,y) x+2∗y# 予算制約式
12 z<−outer(x,y,gg)# x と y の全てに関数 gg を適用する
13 contour(x,y,z,level=6,col="red",lwd=3,xlab="X", ylab="Y") 14
15 abline(h=1,lty=2)# x=1の直線 (点線)
無差別曲線と効用最大化点
0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5 Y 0 1 2 3 4 5 0 1 2 3 4 5第1回:イントロダクション 第2回: 企業行動の理論とR 第3回: 家計行動の理論とR
第4回: 環境問題・貿易理論とR
再生可能資源とは
再生可能資源 採取・利用された後に自ら再生することが可能な資源 ▶ (人間生活の時間軸の範囲で)再生できない場合、再生不可 能資源と呼ぶ。 ▶ 再生可能資源の典型例は、生物資源である。 ▶ 再生可能資源は過剰に採取しない限り、繰り返し使用するこ とができる。 ▶ もちろん、利用方法を誤れば、枯渇する。課題
(2b)
の図
0 20 40 60 80 100 0 1 2 3 4 5 Stock h課題
(2c)
の図
0 10 20 30 40 50 5 10 15 20 Stockグラビティモデル
▶ グラビティモデル(重力モデル)とは、天体の間の引力が質 量に比例し、その距離に反比例するように、2国間の貿易額 も経済規模とその距離に影響をうけると考えるモデルである。 ▶ 2国i, jについて、貿易額をR、距離をD、経済規模をGDP とすると以下のように定式化できる。 Rij = GDPiGDPj Dij (10) ▶ 以下のように対数をとれば、実証的な分析が可能である。 ln Rij = β0+ β1ln GDPi+ β2ln GDPj− β3ln Dij + ϵ (11)データの入手
▶ 貿易額は、国連の「UN Comtrade」が無償で入手できる。フ ランスの経済研究機関CEPIIがより使いやすいデータベース (BACI)を有償で公開している。 ▶ 日本のデータのみであれば、財務省の貿易統計が無償でダウ ンロード可能。▶ GDPは世界銀行の「World Development Indicators」に含ま
れており、RのパッケージであるWDIを通じて無償でアクセ
スできる。
▶ 2国間の距離は、CEPIIから「The CEPII Gravity Dataset」
最小二乗法とは
I
▶ 実際の社会・経済から観察されたデータに最もよくあてはま る直線がどのようにして得られるかを考える。 Y = α + βX (12) ▶ 観察されたデータに対して当てはまりが良い直線は実際の経 済メカニズムをよりよく反映しているものと考えられるが、 完全にあてはまる直線が得られることはないので、当てはま りの良さを判断する基準が必要となる。 ▶ 最小二乗法とは,残差の2乗和を最小にすることを当てはま りの基準としたものをいう。最小二乗法とは
II
▶ 残差とは、実際に観測されたデータと直線によって与えられ る理論値との垂直方向の乖離の大きさをいう。 ▶ すなわち、ある観察データの組(Xi, Yi)があるとき、残差µi は以下のように定義される。 µi = Yi− α − βXi (13) ▶ 単純に残差の和のみを対象とした場合、プラスのものとマイ ナスのものがあることから相殺されてしまう部分があるので 2乗和としているのである。最小二乗推定量の導出
(1)
▶ 残差の二乗和Jを最小にするα及びβの値は以下をα及びβ で偏微分してゼロとおくことで得られる。 J =∑µˆi2 = n ∑ i=1 (Yi− α − βXi)2 (14) ∂J ∂α = n ∑ i=1 [−2(Yi− α − βXi)] = 0 (15) ∂J ∂β = n ∑ i=1 [−2Xi(Yi− α − βXi)] = 0 (16)最小二乗推定量の導出
(2)
整理すると以下を得る。 ˆ β = ∑n i=1(Xi− X)(Yi− Y ) ∑n i=1(Xi− X)2 (17) ˆ α = Y − ˆβX (18) このαˆ及びβˆを最小二乗推定量と呼ぶ。データ取得
: GDP
WDIからGDPデータを取得する
1 library(WDI)# WDI を扱うパッケージ
2
3 WDIsearch(string="GDP")# データベースの中で GDP を含むものを探す
4
5 dat<−WDI(indicator=’NY.GDP.MKTP.CD’, country=c(’JP’,’
KR’,’CN’),start=1980,end=2012)
6 # 日本、韓国、中国について、1980-2012年のGDP を取得
7
8 library(ggplot2)# グラフを描くパッケージ
9
10 ggplot(dat, aes(year, NY.GDP.MKTP.CD/1000000000, color= country)) + geom line() +
日本、中国、韓国の
GDP
推移
0 2500 5000 7500 1980 1990 2000 2010 Year G D P (cu rre nt b ill io n U S$ ) country China Japan Korea, Rep.R
で最小二乗法
:
グラビティモデル
(1)
▶ データセット作成過程で明らかなように、ここでは中国によ
る輸出のみを対象としている。
▶ 以下のコードはあくまでも回帰分析を行うだけであり、前述
の仮定を満たしているかどうかの検定は別途行う必要がある。
1 trade.lm<−lm(log(Trade)˜log(GDP)+log(GDP.china)+log(
distance),data=dataset) 2 # OLS の実行
3
R
で最小二乗法
:
グラビティモデル
(2)
12 Coefficients:
3 Estimate Std. Er.t−value Pr(>|t|)
4 (Intercept) 0.06266 2.09973 0.030 0.97635 5 log(GDP) 1.14907 0.16279 7.059 2.05e−08∗∗∗ 6 log(GDP.china) 0.72680 0.05279 13.768 2.39e−16∗∗∗ 7 log(distance)−1.47430 0.41052 −3.591 0.00093∗∗∗ 8 −−−
9 Signif.codes: 0‘∗∗∗’0.001‘∗∗’0.01‘∗’0.05‘ . ’0.1‘ ’1 10
11 Residual standard error: 0.1927on38 degrees of freedom 12 MultipleR−squared: 0.9716, AdjustedR−squared: 0.9694
統計的仮説検定
(1)
▶ 分析対象全体を母集団といい、そのうち観察できるものを標 本と呼ぶ。 ▶ 標本から母集団に関する仮説を判定することを検定という。 ▶ 棄却したい仮説を帰無仮説 (null hypothesis)と呼ぶ(H0)。そ の逆を対立仮説と呼ぶ(H1)。 ▶ 帰無仮説が一定の有意水準で棄却できれば、対立仮説を採択 する。統計的仮説検定
(2)
▶ H0が真であるのに、H0を棄却することを、 「 第1種の誤り 」と呼ぶ。 ▶ H1が真であるのに、H0を採択してしまうことを、 「 第2種の誤り 」と呼ぶ。 ▶ 二つの誤りの可能性をゼロにすることはできないので、第1 種の誤りについて許容する確率を 有意水準 と呼ぶ。課題
3a
OLS
によるグラビティモデルに関
する分析結果からどのようなこと
を言えるだろうか?
R
で最小二乗法
:
高校と大学の成績
(1)
大学の成績(colGPA)と高校の成績(hsGPA)や入試(ACT)は関係
があるだろうか?
1 library(foreign)# R 以外のデータを読むために必要
2
3 html<−"http://fmwww.bc.edu/ec-p/data/wooldridge/gpa1
.dta"# ダウンロードする場所
4
5 gpa1<−read.dta(html)# データの読み込み
6
7 GPAres<− lm(colGPA˜hsGPA+ACT,data=gpa1)# 分析実行
8
R
で最小二乗法
:
高校と大学の成績
(2)
1 Call:lm(formula = colGPA˜hsGPA + ACT,data= gpa1) 2
3 Residuals:
4 Min 1Q Median 3Q Max
5 −0.85442 −0.24666 −0.02614 0.28127 0.85357
6
7 Coefficients:
8 Estimate Std. Errortvalue Pr(>|t|)
9 (Intercept) 1.286328 0.340822 3.774 0.000238∗∗∗ 10 hsGPA 0.453456 0.095813 4.733 5.42e−06∗∗∗ 11 ACT 0.009426 0.010777 0.875 0.383297 12 −−− 13 Signif.codes: 0‘∗∗∗’0.001‘∗∗’0.01‘∗’0.05‘ . ’0.1 14
15 Residual standard error: 0.3403on138 degrees of freedom 16 MultipleR−squared: 0.1764, AdjustedR−squared: 0.1645
課題
3b
前ページの
OLS
による成績の分析
結果からどのようなことを言える
だろうか?
第1回:イントロダクション 第2回: 企業行動の理論とR 第3回: 家計行動の理論とR 第4回: 環境問題・貿易理論とR
RESAS
について
▶ 安倍政権による地方創生を支援するためのツールとして、 「RESAS」が開発されました。 ▶ RESASはこれまでデータ収集が困難であった各地方自治体 のデータをまとめたサイトです。 ▶ また、単に集めてあるだけでなく、視覚的な理解もしやすい 工夫がなされています。 ▶ 今回はRESAS開発の一翼を担っているシンクタンクから特 別に利用方法の講義をしてもらいます。 ▶ 最終日のグループワークのテーマになるヒントがたくさんあ ります。参考文献
▶ Dayal, Vikram (2015) An Introduction to R for Quantitative Economics:
Graphing, Simulating and Computing, Springer.
▶ Heisss, Florian (2016) Using R for Introductory Econometrics, www.URfIE.net. (書籍版もあり) ▶ 河田幸視 (2008)『生物資源の経済学入門』、大学教育出版. ▶ 武隈慎一 (2000) 『ミクロ経済学 増補版』、新世社. ▶ 田中鮎夢 (2012)『国際貿易と貿易政策研究メモ』、RIETI ホームページ (http://www.rieti.go.jp/users/tanaka-ayumu). ▶ 星野匡郎・田中久稔 (2016) 『R による実証分析 - 回帰分析から因果分析へ -』, オーム社. ▶ 山本拓 (1995)『計量経済学』、新世社.