Upgrade to Pro — share decks privately, control downloads, hide ads and more …

一橋大学 #経済学のための実践的データ分析 2020秋: 10/12

yasushihara
October 16, 2020

一橋大学 #経済学のための実践的データ分析 2020秋: 10/12

一橋大学 #経済学のための実践的データ分析 2020秋: 10/12
10.経済学と機械学習
10.1.最終レポート(reprise)
10.2.MLとAI/パネルデータ
10.3.SVM/決定木
10.4.スパース推定/PSM

一橋大学大学院経済学研究科
原泰史
[email protected]

yasushihara

October 16, 2020
Tweet

More Decks by yasushihara

Other Decks in Education

Transcript

  1. 今日の内容 • 13:00-13:15 • プレ講義 [録画なし] • 13:15-13:35 • 10.1最終レポートについて

    (reprise)[録画あり] • 13:35-13:40 • インターミッション[録画なし] • 13:40-14:00 • 10.2 MLとAIとパネルと経済 学[録画あり] • 14:00-14:05 • インターミッション2[録画なし] • 14:05-14:25 • 10.3 SVM/決定木分析[録 画] • 14:25-14:30 • インターミッション3[録画なし] • 14:30-14:50 • 10.4 スパース推定とPSM [録画]
  2. 次回以降の 予定 • 10/20 11/12回 • 質疑応答セッション (2) • 最終レポートについてもご相談を承ります

    • 10/23 12/12回 • 最終レポートプロポーサル報告会 • 11/10 最終レポートの納品日 • 11/11-11/13 最終レポートの自己評価/360°評価 • 11/18 成績登録締切日
  3. まとめと最終報告レポート • 1組4名のグループを作り, そのメンバーで最終レポートを作成 します。 • データ分析組, • データ調達組, •

    プレゼンテーション作成組, • プレゼンテーション担当 など役割分担はお任せします。 • 第12回で, 最終レポートのプロポーサルを発表します • 発表時間10分, 質疑応答5分 • データの初期的な分析結果がまとまっているとベター
  4. まとめと最終報告レポート • テーマ • 「◦◦のための実践的データ分析」 • 卒論や修論や博論の作成の入り口になるような、データの調達とその データの解析を, 講義で取り上げたデータセットおよび分析手法で実施 する

    • 分析単位はマクロ (国レベル) でもメソ (企業/産業レベル) でもミクロ (個人レベル) でも問いません • 利用できるデータセット • 特に制限なし • 利用できるツール • Tableau, Excel, Word, SQL, BigQuery, Google Colaboratory, Jupyternotebook (Python) など, 特に制限なし
  5. まとめと最終報告レポート • 評価方法 • グループ内での自己評価 • グループ外からの評価 アンケートシステムをPolly で用意します。 •

    評価基準 • (A.) グループ内の役割分担 (B.) データセットのユニークさおよび、それが適切に処理されているか (C.) 分析手法のユニークさおよび、それが適切に解析されているか (D.) プレゼンテーションのユニークさ (E.) 質疑応答にうまくリプライすることが出来ているか • 納品物 • プレゼンテーションに利用したファイル (Word か Powerpoint か Prezi か etc…) を, Slack のDM に代表者がアップすること
  6. グループ分け(学籍番号) • グループ1 • 1115196Z • 1117089B • 2118210X •

    2118330Y • 2119270U • 2120370K • グループ2 • 1117257S • 2118179Y • 2118203M • 2119187M • 2119236U
  7. グループ分け(学籍番号) • グループ3 • 2117209Y • 2117264B • 2118181A •

    2118282M • 2119261X • グループ4 • 1118046H • 2117021M • 2117228M • 2118163C • 2119193Z
  8. グループ分け(学籍番号) • グループ5 • 1119024X • 2115229C • 2117194U •

    2117280H • 2119195S • グループ6 • 2118040U • 2118114K • 2118185H • 2118214A • 2119006C
  9. 最終レポートの雛形 • 表紙 • イントロダクション • 先行研究 • 問い •

    仮説 • 集めたデータセット • データ解析結果 • 考察とインプリケーション
  10. 定量分析の業務フロー 2020/10/15 13 リサーチクエス チョンを決める 必要なデータを 探す 論文データ/書誌 情報を使う 特許データ/書誌

    情報を使う その他データを使う (プレスリリース /POS データ) デ ー タ の ク リ ー ニ ン グ / 接 合 を 行 う エクセル/Python/Rでグラフを描く Stata/R/Python で回帰分析する KHCoder/R/Python でテキスト分析 する R/Netdraw etc… でネットワーク分 析する 企業データを 使う
  11. 例.元 IIR 西口先生のネットワーク研究 • “コミュニティー・キャピタル 中国・温州人企業家ネットワー クの繁栄と限界” • http://doi.org/10.11207/taaos. 4.1_200

    • データに頼らずに, 足で稼いで ネットワークの動態をインタ ビュー調査から明らかにする • 足掛け10年(!) 2020/10/15 14
  12. 例. 元 IIR 西口先生のネットワーク研究 • “傑出したパフォーマンスで知られる中国・温州人企業家の国 際的ネットワークは、コミ ュニティー・キャピタルに依拠する 新たな社会ネットワーク分析に適した事例であり、近 年ビッグ

    データ一辺倒の観のある米国の定量分析 (Fleming et al. 2007) を補完する意味で、 詳細なフィールド調査に基づく豊かな実証 的知見を提供し得る。さらに Watts 等(1998, 1999, 2003) がシ ミュレーションで数学的に立証したスモールワールドの知見が、 現実に応用可 能なのは、実効的にコミュニティー・キャピタル に支えられた社会ネットワークに限定さ れることも示唆され る。 ” 2020/10/15 15
  13. 成績評価(1) • 平常レポート (40パーセント; 必須) • 講義計画に示したように、複数の回で学生にはレポートを課します。 レポートは Word/PowerPoint形式のメールあるいは, github

    経由で の提出が求められます(どの方法を採用するかは、初回の講義で決定し ます)。 • レポートには、(A.) 利用したデータセットとその内容, (B.) 分析の問 い, (C.) 分析手法, (D.) 分析結果 を明記する必要があります。ページ 数や文字数は問いませんが, これらの内容が含まれており, 講義中にア ナウンスする評価手法を満たす場合, 高い得点を得ることが出来ます。 • 平常点 (10パーセント) • 本講義は実習が多く含まれており, また取り扱うデータセットや内容も 多彩です。そのため、受講者同士が協力する必要があります。こうし た受講者の態度を評価するために、平常点を設けます。
  14. 成績評価(2) • 最終レポート (40パーセント; 必須) • 講義の最終回では最終レポートの報告会を行います。受講者は3名から4名か ら構成されるグループで、最終レポートの報告を行う必要があります(人数は 受講者の人数により変更される可能性があります)。最終レポートでは、プレ ゼンテーションの方法を学生は自由に選ぶことが出来ます。PowerPoint

    以 外にも、Prezi などのアクティブプレゼンテーションツールや、他のプレゼ ンテーション手法を用いることが出来ます(プレゼンテーションツールについ ては、必要であれば講義内で説明する機会を設けます)。最終レポートでは、 以下の点について評価を行います。 (A.) グループ内の役割分担 (B.) データセットのユニークさおよび、それが適切に処理されているか (C.) 分析手法のユニークさおよび、それが適切に解析されているか (D.) プレゼンテーションのユニークさ (E.) 質疑応答にうまくリプライすることが出来ているか • 最終レポートの360°グループ評価 (10パーセント) • 3. の最終レポートについて、グループの自己評価および他のグループからの 評価を行います。3. で挙げた評価ポイントに基づき、グループメンバーおよ び他のグループは評価を行います。
  15. 成績評価 • 平常レポート • レポート1; max 20 • レポート2; max

    20 • 最終レポート • 40点 • 最終レポートの360°評価 • 10点 • 投票システムから集計したデータを按分します
  16. 分析手法(1.1 の reprise) • Step1; グラフにする • 「まずは散布図を書いてみる」 • Step2;

    統計的処理を行う (平均値, 中央値, 最大値, 最小値 etc..) • このあたりから、内生性や見せかけの回帰との戦いがはじまる • Step3; 回帰分析など, 入力と出力間の関係性を見る • 重回帰分析 • スパース推定 • 決定木分析, SVM (教師あり/教師なしの機械学習) • Step4; 因果効果を識別する • 因果関係と相関関係を識別する(次のページ)
  17. 因果識別の手法(1) 実験対象 Treated Group Control Group y x Cut-off Point

    • ランダム化比較試験 (RCT) • 対象者と非対象者を無 作為抽出して比較実験 • 回帰不連続(RD) デザイン – 回帰直線シフト 30 実験対象 Treated Group Control Group • 傾向スコアマッチン グ(PSM): – 各政策対象企業と同じ「政 策対象傾向」を持つ企業を 対照群から抽出 引用:岡室博之 (2019) 産業クラスターと地方創生:地域イノベーション政策の展開と分析方法, 一橋大学公開講座
  18. 因果識別の手法(2) • 差の差の分析(DID) • 処置群と対照群の比較 と政策前後比較の二重 差 y t Control

    Group Treated Group t+u t-s ▲t • パネル固定効果分析 • パネルデータを用いて、 各企業の固有の属性の 影響を除去 y x t+i t • 操作変数法(IV): – 内生変数を外生変数 (操作変数)に置き換 える2段階推定 Z X Y U β α 引用:岡室博之 (2019) 産業クラスターと地方創生:地域イノベーション政策の展開と分析方法, 一橋大学公開講座
  19. Trends in the number of AI patents granted world-wide Figure

    • The number of patents granted has rapidly increased. • It shows the number of artificial intelligence (AI) patents granted by application country and reveals that it has increased more than threefold (from 708 items in 2012 to 2,888 items in 2016).’ • In particular, AI patents granted in the US increased by 1,628 items during this period (Figure 1a), accounting for approximately 75% of the increase worldwide . 36 (Source: Fuji and Managi (2017))
  20. Trends in the number of AI patents, technology-wise granted worldwide

    Figure • The patent share of each AI technology type changed from 2012 to 2016. • In 2012, biological and knowledge-based models were the leaders in patented AI technologies. • However, from 2012 to 2016, the number of patents granted for specific mathematical models and other AI technologies rapidly increased, doubling from 2015 to 2016. 37 (Source: Fujii and Managi (2017))
  21. AI : Number of Patents/Scientific Papers by Year Number of

    Papers Number of Patents 0 50000 100000 150000 200000 250000 USA PEOPLES R CHINA GERMANY JAPAN ENGLAND France Canada ITALY SPAIN Australia 0 200 400 600 800 1000 1200 1400 United States Japan Europe (Patent Office) Germany Korea Unite Kingdom France China Taiwan Israel India Source: Web of Science Core Collection Source: PatentsView(USPTO)
  22. Robotics : Number of Patents/Scientific Papers by Year Number of

    Papers Number of Patents Source: Web of Science Core Collection Source: PatentsView(USPTO) 0 50 100 150 200 250 300 350 1990 1992 1994 1996 1998 2000 2002 2004 2006 2008 2010 2012 2014 2016 USA PEOPLES R CHINA GERMANY ENGLAND CANADA ITALY JAPAN FRANCE SPAIN AUSTRALIA 0 20 40 60 80 100 120 140 160 180 19761978198019821984198619881990199219941996199820002002200420062008201020122014 United States Japan Germany Korea France Sweden United Kingdom Italy China Europe (Patent Office) Switzerland
  23. Extension; パネルデータ解析 • パネルデータ • N 個の主体(人,企業,団体,県,国など)の各々に関して T 期間に わたって観測された

    データ • パネルデータのメリット • (a) データ数が増えることにより,自由度が大きくなるので,推定精度 が向上する. • (b) 主体間の異質性をモデルに取り込むことは,単一の時系列,あるい はクロスセクションのみでは不可能であるが,それが可能になる. • (c) 主体間の異質性は,一般に観測不可能な主体固有の要因であり,そ のような要因以外の全体の関係を分析することが主目的ならば,固有 の要因を除去した分析が可能である. Source: https://www-cc.gakushuin.ac.jp/~20130021/ecmr/panel.pdf
  24. Extension; パネルデータ解析 • = + ′ + (i =1 ,···,N;

    t =1 ,···,T) • このとき, 誤差項 は以下の仮定を満たす. • = 0, = { 2 = かつ = のとき , 0(その他) • ; 未知の係数ベクトル • ′ ; 説明変数の p*1 確率ベクトル • 誤差項との独立性が仮定される (狭義外生性; strict exogeneity) • ; 主体 i に特有の個別効果 (individual effect) Source: https://www-cc.gakushuin.ac.jp/~20130021/ecmr/panel.pdf
  25. Extension; パネルデータ解析 • 固定効果モデル (Fixed Effect Model) • を定数のパラメータと仮定する •

    変動効果モデル (Random Effect Model) • を主体ごとに独立な確率変数と仮定し, • = 0, 2 = 2, = 0 を満たす。
  26. 3-3. 必要なライブラリをインポートする # tensorflow を tf として import する import

    tensorflow as tf # numpy や pandas など, 計算やデータ処理のライブラリを import する import numpy as np import pandas as pd # データ可視化のライブラリをインポートする import matplotlib.pyplot as plt # データセットの取得&処理のライブラリをインポートする from sklearn.datasets import load_boston from sklearn.model_selection import train_test_split # インポートの確認 print(tf.__version__) print(np.__version__) print(pd.__version__)
  27. tensorflow • tensorFlow™ は、データフローグラフを 使用して数値計算を行うためのオープン ソースソフトウェアライブラリです。グ ラフ内のノードは数値演算を表し、グラ フのエッジはノード間でやり取りされた データの多次元配列(テンソル)を表し ます。柔軟性の高いアーキテクチャが採

    用されているため、単一のAPIを使用して、 デスクトップ、サーバーまたはモバイル 端末の1つ以上の CPU またはGPUに計算 機能をデプロイすることができます • TensorFlow は本来、Google のマシンイ ンテリジェンス研究組織内の Google Brain チームに参加している研究者やエン ジニアが機械学習や高度なニュートラル ネットワークの研究用に開発したもので したが、このシステムは汎用性が高く、 他の領域にも幅広く適用することができ ます。 • https://www.tensorflow.org/ https://data.wingarc.com/tensor-flow-16087
  28. データセットの中身 CRIM 町ごとの人口一人あた りの犯罪率 AGE 1940年以前に建てられ た、所有者が住む建物 の割合 ZN 宅地の比率。25,000平

    方フィート以上のゾー ンで数えた値 DIS ボストンの5つの雇用中 心からの距離 INDUS 町ごとの非小売業の面 積比 RAD 放射状幹線道路からの 距離 CHAS チャールズ川に道がつ ながっているか TAX 固定資産税率 NOX NOx 濃度 PTRATIO 町ごとの教師あたりの 生徒数 RM 住宅あたり部屋数 B 町ごとの黒人比率 LSTAT 低階層人口の比率 MEDV 所有者が住む住宅の価 値の中央値
  29. 3-4. データセットを読み込む # データの読み込み boston = load_boston() # Pandasのデータフレーム形式へ変換 df

    = pd.DataFrame(boston.data, columns=boston.feature_names) df['target'] = boston.target # データの最初の5行を表示 df.head()
  30. 3-4. データセットを読み込む # 取り出したデータセットを, 特徴量 (回帰分析 における説明変数)とターゲット (回帰分析にお ける被説明変数) に切り分ける

    X_data = np.array(boston.data) y_data = np.array(boston.target) # 1行目のデータの特徴量(X)とターゲット (y)を確認 print(X_data[0:1]) print(y_data[0:1])
  31. 3-5. データの正規化を行う # 正規化 # 平均0, 分散1 となるように def norm(data):

    mean = np.mean(data, axis=0) std = np.std(data, axis=0) return (data - mean) / std # データを正規化したものに入れ替える # 正規化されたデータを確認する X_data = norm(X_data) print(X_data[0:1])
  32. 3-7. テストデータと訓練データへの切り 分けを行う # x とy について, 全体の2割をテストデータ として, 残りを訓練データへと切り分けする

    X_train, X_test, y_train, y_test = train_test_split(X_data, y_data, test_size=0.2, random_state=42) y_train = y_train.reshape(404,1) y_test = y_test.reshape(102,1) #分割したデータの長さを確認する print(X_train.shape) print(y_train.shape) print(X_test.shape) print(y_test.shape)
  33. 3-8. 線形回帰モデルの設定を行う # 学習率とエポック(反復処理回数)を設定する learning_rate = 0.01 training_epochs = 1000

    # 特徴量の数 n_dim = X_data.shape[1] # 特徴量(X)とターゲット(y)のプレースホルダー # (作成される変数のための空の箱)を用意する X = tf.placeholder(tf.float32,[None,n_dim]) Y = tf.placeholder(tf.float32,[None,1]) # 係数(W)と定数項(b)の変数を指定する W = tf.Variable(tf.ones([n_dim,1])) b = tf.Variable(0.0)
  34. 3-9. コスト関数の設定および最適化を行う # 線形モデルを規定する y = tf.add(b, tf.matmul(X, W)) #

    コスト関数を設定する # 予測値と実際の値の差が極力最小化するよう に, # yの値とY の値の差分を取る cost = tf.reduce_mean(tf.square(y - Y)) # 最適化を行う training_step = tf.train.GradientDescentOptimizer(learning_rat e).minimize(cost)
  35. 3-10. モデルを実行し, 誤差を確認する # 初期化 init = tf.global_variables_initializer() # モデルの訓練を開始する

    sess = tf.Session() sess.run(init) # cost_history 変数のために空の値を入れておく cost_history=0 # for文を使って, 学習ごとの誤差の値を # cost_history の配列に放り込んでいく for epoch in range(training_epochs): sess.run(training_step, feed_dict={X:X_train, Y:y_train}) cost_history = np.append(cost_history, sess.run(cost, feed_dict={X:X_train, Y:y_train})) if epoch % 1000 == 0: W_val = sess.run(W) b_val = sess.run(b) # 誤差(cost)を確認 print(cost_history[1]) print(cost_history[50]) print(cost_history[100]) print(cost_history[1000]) ←誤差が次第に減っていく
  36. 3-11. 学習に基づく推計結果と, 実際の値 との比較を行う # テストデータを使って予測を行う pred_test = sess.run(y, feed_dict={X:

    X_test}) # 予測した価格と実際の価格の比較を行う pred = pd.DataFrame({"実際の不動産価格 ":y_test[:,0], "予測した不動産価格 ":pred_test[:,0], "差分":y_test[:,0]- pred_test[:,0]}) pred.head()
  37. 3-13. 決定木モデルの作成 #決定木モデルの作成を行う #sklearn より tree パッケージをインポートする from sklearn import

    tree #DesisionTreeRegressor でモデルを構築する #木の深さは3 にする (max_depth=3) clf = tree.DecisionTreeRegressor(max_depth=3) #X と y それぞれのtrain データで計測を行い clf = clf.fit(X_train, y_train) #X_test 値に基づき予測を行う pred = clf.predict(X_test)
  38. 3-13. 決定木モデルの作成 #pydotplus をインポートする import pydotplus #StringIO をインポートする from sklearn.externals.six

    import StringIO dot_data = StringIO() #決定木を図示化する tree.export_graphviz(clf, out_file=dot_data, filled=True, rounded=True) graph = pydotplus.graph_from_dot_data(dot_data.getvalue()) #Notebook 上に表示する from IPython.display import Image Image(graph.create_png())
  39. 3-14. どの変数が作用するか確認 import matplotlib.pyplot as plt %matplotlib inline features =

    df.columns importances = clf.feature_importances_ indices = np.argsort(importances) plt.figure(figsize=(6,6)) plt.barh(range(len(indices)), importances[indices], color='b', align='center') plt.yticks(range(len(indices)), features[indices]) plt.show() AGE が寄与することが確認できる
  40. 3-15. 回帰モデルの可視化 from sklearn.linear_model import Ridge from yellowbrick.regressor import ResidualsPlot

    model = Ridge() visualizer = ResidualsPlot(model) visualizer.fit(X_train, y_train) # テストデータとの比較を行う visualizer.score(X_test, y_test) visualizer.poof();
  41. b. SVM モデルの構築 • “学習データに対する最小の距離を 最大化するような直線(超平面)を見 つける” • それぞれのグループの中で、最も境 界線に近い点

    (サポートベクター) との距離 (マージン) が最大化する ように線を引く http://labs.eecs.tottori- u.ac.jp/sd/Member/oyamada/OpenCV/html/py_tutorials/ py_ml/py_svm/py_svm_basics/py_svm_basics.html
  42. 3.16 SVM モデルの構築 #svm のテストをする # データセットの取得&処理のライブラリをイン ポートする from sklearn.svm

    import LinearSVC from sklearn.model_selection import train_test_split from sklearn.datasets import load_breast_cancer cancer = load_breast_cancer() # x とy について, テストデータと訓練データへ の切り分けを行う X_train, X_test, y_train, y_test = train_test_split( cancer.data, cancer.target, stratify = cancer.target, random_state=0)
  43. 3.17 SVM モデルの構築(2) from sklearn.preprocessing import StandardScaler #標準化 sc =

    StandardScaler() sc.fit(X_train) X_train_std = sc.transform(X_train) X_test_std = sc.transform(X_test) #クラスの初期化と学習 model = LinearSVC() model.fit(X_train_std, y_train)
  44. c. スパース推定(Lasso) • Lasso(Least absolute shrinkage and selection operator); •

    モデル構築と変数選択を自動的に行う • サンプルサイズより特徴量が大きな状況でも実行できる https://stats.biopapyrus.jp/sparse-modeling/lasso.html
  45. c-2. スパース推定(lasso) • 目的変数は中心化, 説明変数は標準化 {N(0,1)} する • Lasso(least absolute

    shrinkage and selection operator) t は調整パラメータで, given • ラグランジュの未定乗数法で書き直すと • መ = 1 2 − σ =1 2 2 + σ =1 λは正則化パラメータ 引用: (Tibshirani 1996), (川野 2018)
  46. d. ラッソ回帰/リッジ回帰 • 線形回帰と違い, 過学習を防ぐためのモデル • 回帰関数の推定時, モデルの複雑さを示す項を損失関数 (cost function)

    に追加し, それを含め誤差を最小化するように回帰回 数を指定する • 損失関数 • σ =1 ( − ( ))2+ σ=1 • 二項目を正則化項と呼ぶ • M; 変数の数, w: 重み付け係数, λ: 正則化パラメータ • q=1 のときラッソ回帰, q=2 のときリッジ回帰と呼ぶ
  47. c-3. スパース推定(lasso) Lasso 推定 Ridge 推定 ・解を範囲内で探索する 1 = −

    1 1 − 2 2 2 2 2 = − 1 1 − 2 2 2 2 3 = − 1 1 − 2 2 2 2 最小二乗推定量 引用: (Tibshirani 1996), (川野 2018)
  48. 利用する Notebook • Jupyter Notebook バージョン • https://www.dropbox.com/s/ehn3rvbu66qh0ig/fifa19%20%E3%81% AE%E3%83%87%E3%83%BC%E3%82%BF%E3%81%A7%E5%8D%98 %E5%9B%9E%E5%B8%B0%E3%81%A8%E9%87%8D%E5%9B%9E%E

    5%B8%B0%E5%88%86%E6%9E%90%E3%81%A8%E6%95%99%E5%B 8%AB%E3%81%82%E3%82%8A%E5%AD%A6%E7%BF%92%E3%82% 92%E8%A1%8C%E3%81%A3%E3%81%9F%E7%B5%90%E6%9E%9C.i pynb?dl=0 • データセット • https://www.dropbox.com/s/e15f6z9swkim9t1/data3.xlsx?dl=0
  49. 3.26 Lasso (続き) • 使われているパラメータを確認 する • Alpha=1 のとき •

    Age; -1.89684646 • Reputation; 11.08361536 • least_contract; 0.14480343 • Overall; 7.20388477 線形回帰と結果がそんなにかわらな い • Alpha=0.1 のとき • age; -3.47603239 • reputation; 11.72772306 • least_contract; 0.5582404 • overall; 7.89572688 • finishing; 0.11362631 • Balance; 0.70103772 • ShotPower; 0.13964463 • stamina; -0.15779715 • Jumping; -0.14810666 • Strength; 0.04932909 • LongShots; -0.06731084 攻撃系のパラメータが高いことが給 与には寄与している?
  50. 3.31 FIFA データでも決定木を書いてみよ う • 決定木を描画する • Graphviz の dot

    へのパスを個別に指定する (Windowsと Mac で記法が異なるので注意)
  51. e. 回帰モデルの評価指標 • 平均二乗誤差 • 予測値と正解の差(残差)をサンプル毎に足し上げ, サンプルサイズで割る (Mean Squared Error;

    MSE) • 平均絶対誤差 • 残差の絶対値をサンプルごとに足し上げ、最後にサンプルサイズで割る (Mean Absolute Error; MAE) • 外れ値の影響を受けにくい • Median Absolute Error (MedAE) • 残差の絶対値の Median • 決定係数 • 検証データの平均値で予測をした場合の残差平方和 (Sum of Squared Total; SST) と, モデルの残差平方和 (Sum of Squared Errors; SSE) の比率. R2 = 1 – SSE/SST. 誤差がすべてなくなれば1.0, 平均値の予測と同等の場合 0.0 とな る.
  52. 4. 傾向スコアマッチング • 作成した equation_df3 から foot と reputation を取り出

    す • 重回帰分析で行ったように、 null 値を除去する • 傾向スコアを求めるために, 被説明変数をfoot, 説明変数を その他のパラメータにして, ロジットモデルを回す
  53. 4. 傾向スコアマッチング • Result.predict の値をps に放 り込む • Foot と

    Reputation と傾向ス コアの値を table に放り込み、 ラベルをつける
  54. 4. 傾向スコアマッチング • 左足と右足グループを比較すると、 • レピュテーションは -1.3パーセント左足グループのほうが低 く • 給料は

    4.0% 左足グループのほうが高い • 左足のフットボールプレイヤーは希少性が高いので、同 じような能力を持ってても高いサラリーになりやすい?
  55. 今日のまとめ • 経済学徒として機械学習なアプローチをどう使う? • 卒論や修論や博論で定量的な分析を使うのであれば、まずはコンベン ショナルな手段 (線形な回帰分析や主成分分析 etc…) でも解析したほ うが手っ取り早い

    (nearly equal Stata or R で済む部分でこなせるかど うか) • ただし、Lasso や決定木などを使えたほうが, ビッグデータ解析には向 いている (see sklearn のhack tree) • 道具は必要な場所とタイミングで使いましょう
  56. 参考文献 • https://www.codexa.net/tensorflow-for-begginer/ • http://tekenuko.hatenablog.com/entry/2016/09/19/214330 • http://www.randpy.tokyo/entry/python_random_forest • FUJII Hidemichi,

    MANAGI Shunsuke (2017) «Trends and Priority Shifts in Artificial Intelligence Technology Invention: A global patent analysis», RIETI Discussion Paper Series 17-E-066, https://www.rieti.go.jp/jp/publications/dp/17e066.pdf • The Economics of Artificial Intelligence: An Agenda, https://www.nber.org/books/agra-1
  57. 参考文献(2) • 確率的勾配降下法のメリットについて考えてみた • https://qiita.com/koshian2/items/028c457880c0ec576e27 • Python で Lasso を実装

    • https://qiita.com/kotamatsukun/items/d09f09f23308627b42ab • LASSO 回帰 / Python • https://stats.biopapyrus.jp/sparse-modeling/python-glmnet.html • Lasso Regressor(回帰分析)【Pythonとscikit-learnで機械 学習:第15回】 • http://neuro-educator.com/ml15/
  58. 参考文献(3) • SDG Regressor(回帰分析)【Pythonとscikit-learnで機械学 習:第14回】 • http://neuro-educator.com/ml14/ • 【Python】Pythonではじめる機械学習のgraphvizでエラーが出 るときの対処方法

    • https://kazusa-pg.com/python-install-graphviz/ • pydotplusでgraphvizのパスが解決できない場合の対処法 • https://qiita.com/wm5775/items/1062cc1e96726b153e28 • macOS Sierraでpip install tweepyしたらエラー出たので対処 した • https://qiita.com/ArtemisHaD/items/0fb4e32c44c358c9ef0c
  59. 参考文献(4) • Tibshirani, Robert (1996) Regression Shrinkage and Selection via

    the Lasso, Journal of the Royal Statistical Society. Series B, 58, 1, pp. 267-288, https://www.jstor.org/stable/2346178 • 川野秀一(2019) スパース推定に基づく統計モデリング, HIAS Health ビッグデータ・ICT勉強会 • 川野秀一・松井秀俊・廣瀬慧 (2018) スパース推定法による統 計モデリング, 統計学 One Point • http://rcommanderdeigakutoukeikaiseki.com/propensity_sco re.html • https://www.randpy.tokyo/entry/python_propensity_score