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

#経済学のための実践的データ分析 3.2 統計解析ソフトの比較/基礎統計と重回帰分析を Notebook で

yasushihara
September 20, 2019

#経済学のための実践的データ分析 3.2 統計解析ソフトの比較/基礎統計と重回帰分析を Notebook で

#経済学のための実践的データ分析 3.2
一橋大学経済学部 38番教室
- Excel からSAS までの統計ソフト比較
- ベクトルと行列の解析を Notebook で
- 単回帰と重回帰分析を Notebook で

yasushihara

September 20, 2019
Tweet

More Decks by yasushihara

Other Decks in Education

Transcript

  1. 今日の内容. python, R, Jupyter notebook 事始め (あるいは、統計分析ソフトちゃんちゃかちゃん) • Stata や

    SPSS, SAS など統計分析ソフトは多数存在します。 これらのメリットや特徴について前半は説明します。 • 後半は、本講義で主に利用する jupyter notebook を用いて, python やR の基本的なコマンドについて実習を交え説明を行 います。テーマは「サンクコスト」です。
  2. 次回以降の講義スケジュール変更のお知らせ • 10/1 が内定式とバッティングするので, 以下の通り変更したい と思います • 2: 9/20[今日]; Notebook

    の分析/統計分析ソフトの比較 • 3: 9/24; (人力や Web スクレイピングやRPA で)データを集めてきて処 理をするまでの長く険しい道 • 4: 9/27; SQL ことはじめ • 5: 10/1; データの可用性とプライバシー
  3. Jupyter Notebook のインストール(1) • 1. https://anaconda.com にアクセスし, Python3.7 バージョン の

    [Download] をクリック Windows版 Mac版 ダウンロードが終わるまで待つ。
  4. そもそも。 • なぜこの講義は python やR on jupyter notebook を使うのか? •

    一番の理由: 無償だから • 有償の統計分析ソフト (ex. Stata) の場合 • 学生の間は導入コストはかなり低い • が、社会人になると継続して最新バージョンを継続的に導入するコス トは極めて高くなる • マスターコースやドクターコースに行こう
  5. 経済/経営学部の統計ソフトの利用状況 {一橋, 東大, 早稲田, 慶應} • 各大学のシラバスから、 • SPSS •

    Eviews • Stata • SAS • Python • Excel というタームが含まれている講義を抽出。 ※. R は exact matching できないので除外。 • 経済学部・経営学部/MBAの講義で、どういった統計ソフトが 使われているかを調査
  6. 経済学部の統計ソフトの利用状況 {一橋, 東大, 早稲田, 慶應, 東経大} • Findings • SPSS

    のユーザ数は減少 • Stata で統計分析を教えるシェアは未だ高い • 早稲田大学, 謎のSAS 人気 • Python はデータサイエンス系の講義で広く登場 • 一橋大学経済学部でpython というタームが出てくるのは、本講義以外だと山田 先生の講義
  7. SPSS is dying (cont.) • “I predict that R overtakes

    SPSS in yearly citations by 2020. The implications are clear: • If you use SPSS in your business or research, move to R now rather than later. • Do not ask for SPSS competences in job postings. You will scare away the good candidates. • We are doing students a disservice by teaching SPSS. Switch to JASP for simple one-off analyses and R for complex or repeated analyses. Rstudio Desktop is a highly recommended interface to R.” Source: http://lindeloev.net/spss-is-dying/
  8. Data Analytics Job Market The number of data science jobs

    for the more popular software (those with 250 jobs or more, 2/2017). Jobs trends for R (blue & lower) and Python (orange & upper). http://r4stats.com/articles/popularity/
  9. 各統計ソフトの比較 1. Stata 2. SPSS 3. EViews 4. (Microsoft) Excel

    幸いなことにどのソフトウェアも持っているので、実機をお見せ しながら説明します
  10. 1. Stata • 事実上のデファクトスタンダー ド(だった) • (重)回帰分析やパネルデータ分 析, 主成分分析など, 経済学・経

    営学での多変量解析はほぼ網羅 している • 大学の経済学・(定量分析を行 う)経営学の先生の使用率も高 い • ゼミによっては基本的な分析ソ フトとして指定されている場合 も • 主なテキストブック
  11. 2. SPSS • Stata 以前のデファクトスタ ンダード • 12年前に一橋大でマーケティ ングサイエンスの講義を受講 したときは、SPSS

    が指定さ れていました • 現在はIBM が保有 • GUI ベースでデータの処理お よび解析が行えることが特徴
  12. 3. EViews • やはり一世代前に主力の統計 分析ソフト • ファイナンス・時系列分析 (ARCH, GARCH, MR,

    AR, VAR) などに特化 • 詳しくは関連するファイナン ス・計量経済学の講義で • 回帰分析など、行える分析は Stata/SPSS とほぼ同じ
  13. 3. EViews ・変数をExcel or SAS or Stata or SPSS 経由で取り込み

    ・変数の長さを最初に指定して ・コマンドを上のウインドウに 打ち込んで、解析を行う
  14. 4. Excel • Microsoft Office 365 で現在は 主に提供 • 生協で買うパソコンや

    Surface に必ず入ってるやつ • 某省庁のデータ分析はだいたい Excel で完結してたりする(で ビックデータの時代とか言いが ち) • 記述統計や、基本的なデータの 分析であればExcel で十分 • 一昔まえの「定量的な」卒論とか
  15. まとめ 名称 Stata SPSS EViews Excel 販売・提供母体 Stata IBM ライムストーン

    マイクロソフト インターフェース GUI (コマンドベー ス) GUI GUI (コマンドベー ス) GUI 主なメリット (経済学・経営学周 りの)ユーザーが多 い クリックだけで データ解析ができ る 時系列解析をする ときに、コマンド を書く必要がない すぐに手に入る。 情報基盤センター のPCやスマホから 扱える コスト(学生編) ・イニシャルコス ト 86,400円 (キャン ペーン中) 124,000円 63,720円 0円 (一橋大学生は office 365 サブス クリプションあり) ・アップグレード コスト 101,520円 136,600円 49,680円 0円(一橋大学生は office 365 サブス クリプションあり) コスト(社会人編) 262,440円 310,000円 206,280円 12,744円 ・アップグレード コスト 172,,800円 54,900円 97,200円 12,744円
  16. まとめ(2) • ランニングコストやサンクコストを考えると, 実は Excel でなんでも 出来るようになるのが最適コースの可能性 • Stata や

    SPSS など統計ソフトは、学生の身分だと比較的安価に導 入出来る。が、最新の機能をキャッチアップするのは辛い。 • (会社で稟議書が通るかというと、関連部局でも割と怪しい。) • ちなみに、IT スタートアップで働いていたときは、大学生の身分で買った Eviews やSPSS を用いて解析をしていました • 某広告代理店では, すべてのPCに R Studio が導入されている、らしい。 • ということで、Excel + 無償で導入できる R and/or Python が2019 年現時点での最適解! • 会社によっては, Jupyter Notebook やR Studio が自由にインストールできる PC が供給されない可能性も (2019年現在は) • クラウドにアップしてもOKなデータは Google Colaboratory で
  17. はじめに • 研究ユースでの Python 活用のユースケースをご紹介 • いろいろな研究プロジェクトにコミットしていますが • SPSS オンリー

    • Stata + Excel (これが一番多い) • Stata + Python + Excel • Stata + SQL + Excel など, 組む先生によって使う統計ソフトは異なります.
  18. 研究プロジェクト • 日本企業とアメリカ企業の研究開発パフォーマンスの比較 • 特許データ、財務データ、研究開発投資データを接合すること で、企業のROA, ROI が研究開発パフォーマンスによってどう 説明付けられるか定量的に分析 •

    4月の終わりの日経新聞や, 経産省, 内閣官房の資料で「引用」 • 一橋大学イノベーション研究センターの Working Paper として 昨年発表 • Yamaguchi, Nitta, Hara, and Shimizu (2018) Staying Young at Heart or Wisdom of Age: Longitudinal. Analysis of Age and Performance in US and Japanese Firms., IIR Working Paper,
  19. 東証上場企業(連結、事業会社)の平均年齢(2012年時点) 47 企業数 年齢 0 20 40 60 80 100

    120 1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96 101 106 112 118 124 平均は60.5歳、中央値は63歳
  20. NYSE上場企業(連結、事業会社)の年齢分布(2012年時点) 48 企業数 年齢 0 5 10 15 20 25

    30 35 1 8 14 20 26 32 38 44 50 56 62 68 74 80 86 92 98 104 110 116 123 129 135 142 148 155 162 168 179 206 268 平均は60.95歳、中央値は51歳 • 実は平均年齢は日本と同じ、但し中央値は12歳若い
  21. 総特許出願数推移(新興市場企業) 0 1000 2000 3000 4000 5000 6000 1964 1966

    1968 1970 1972 1974 1976 1978 1980 1982 1984 1986 1988 1990 1992 1994 1996 1998 2000 2002 2004 2006 2008 2010 2012
  22. 0 20000 40000 60000 80000 100000 120000 140000 160000 180000

    総特許出願数推移(東証上場企業; 企業別top30) パナソニック 日立製作所 東芝 日本電気 キヤノン 三菱電機 富士通 ソニー リコー トヨタ自動車 シャープ セイコーエプソン 富士フイルムホールディングス パナソニック電工 三洋電機 日本電信電話 富士電機 三菱重工業 デンソー 日産自動車 新日本製鐵 本田技研工業 コニカミノルタホールディングス 住友電気工業 クボタ オリンパス 沖電気工業 東レ 川崎製鉄 大日本印刷
  23. 0 500 1000 1500 2000 2500 3000 3500 総特許出願数推移(新興市場企業; 企業別top30)

    ユニバーサルエンターテインメント オンキヨー 藤商事 ニスカ タイヨーエレック シチズン電子 大井製作所 元旦ビューティ工業 キヤノン化成 ミヨタ エムケー精工 エスケー化研 日本マイクロニクス マーレテネックス ジャストシステム デジタル ミマキエンジニアリング フクダ電子 日本アンテナ 桂川電機 シーシーアイ 松本油脂製薬 新コスモス電機 高見沢サイバネティックス サン電子 マキ製作所 ハーモニック・ドライブ・システムズ 綜研化学 ユタカ技研 ケーブイケー
  24. 技術距離の計測 • We used technological distance as an indicator of

    R&D rigidity. • The technological distance construct, proposed by Jaffe (1986), was originally intended as a measure of the degree of similarity between technological investment portfolios (which Jaffe called ‘technological positions’) of two different firms. • Thus, we estimated R&D rigidity by calculating the similarity between a firm’s current and previous technological investment portfolio. The more similar a firm’s current and previous portfolios, the more rigid its R&D resource allocation. Technological distance was calculated as follows.
  25. 技術距離の計測 • technological position of firm i in year t

    • = 1 , 2 , ⋯ , • F it is 1 ☓ j vector, NP it denotes the number of patents obtained by firm i in year t and NP ijt is the number of patents obtained by firm i in field j in year t • Technological distance (P it ) between firm i’s technological position in year t (F it ) and year t-1 (F it-1 ) is obtained from • = Τ ∙ −1 ′ ∙ ′ −1 ∙ −1 ′ 1/2 • Technological distance assumes a value between 0 and 1, and it is unity if the two vectors are identical, which implies that the firm did not changes its investment profile at all between t-1 and t, and zero if the two vectors are orthogonal, which implies that the firm changed its technological position completely.
  26. 計算をするには… • 日本企業だと数千社, アメリカ企業でも数百社の, 複数年度間の 特許数を, 技術分野 (IPC 分類) ごとに解析することが必要

    • Excel でも超絶がんばれば可能だけど, たぶん徒労 • vlookup とマクロを組み合わせる • そこで, Python でデータを処理 • 先程与えられた数式を, Python でコード化をして, Panda パッ ケージを用いてデータを取り込み. 取り込んだ, 企業IDと出願年 ごとの特許数と特許分類データに基づき, 技術距離を算出して csv ファイルに保存
  27. 技術距離の計測 Source: PatentsView and Derwent Innovations Index for USPTO patents,

    and IIP Patent Database for JPO patents. R&D Rigidity by Age (t-3, 3-year average) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 4 10 16 22 28 34 40 46 52 58 64 70 76 82 88 94 100 106 112 118 124 130 136 142 148 154 160 166 172 178 184 190 196 202 208 US JPN
  28. 技術距離の計測(2) • R&D Rigidity by Age (t-5, 3-year average) 0

    0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1 7 13 19 25 31 37 43 49 55 61 67 73 79 85 91 97 103 109 115 121 127 133 139 145 151 157 163 169 175 181 187 193 199 205 US JPN Source: PatentsView and Derwent Innovations Index for USPTO patents, and IIP Patent Database for JPO patents.
  29. 今日の notebook Google Colaboratory 版 https://colab.research.google.com/drive/1 qeYXrHXGE5yTxP5SVSvfxK9zmmXnyokD Jupyter Notebook 版

    https://www.dropbox.com/s/xj4uhfr6ycpt4 21/Empirical%20Analysis%20for%20Econo mics%20%232.ipynb?dl=0
  30. Exercise 1: 1+1 = 2 を計算する • Jupyter notebook の

    in: に, 1+1 をタイプする • 2 がout: に出力される
  31. Exercise 2: 3*9-12+14/3 を計算する • Jupyter notebook の in: に,

    3*9-12+14/3 をタイプする • 19.66666… がout: に出力される
  32. Exercise 3(1): sin(1)+cos(2)+tan(3) を計算する Exercise 3(2): 円周率を確認する • Math パッケージをインポートする

    • python の場合, データ処理 etc… を円滑を行うためにはパッケージを インポートします. • ここでは, 数学関数の含まれる math パッケージをインポートして, 続 いて三角関数を計算してみます • Sin(1)+cos(2)+tan(3)を計算する • ついでに, 円周率を確認する • Out に以下の通り出力されます
  33. Panda パッケージを利用してみる • pandas • Python でデータ解析を行うためのパッケージ • Excel の表やSQL

    を直接取り込んで処理するのにピッタリ • データ構造 • 一次元: Series • 二次元: DataFrame (※. 個人的にはよく使います) • 行タイトルや列タイトルがつけられる • 文字列と数字を excel みたいに混在出来る • インポートの方法 • import pandas as pd
  34. Exercise (6): Pandas パッケージで行列を DataFrame に変換する • Pandas パッケージをイン ポートする

    • import pandas as pd • 先程作成した行列c を DataFrame に変換する • Data “F”rame になってるよう にチェック • 出力する • 行番号と列番号が付いているこ とが確認できる
  35. Exercise (6-2): 行番号と列番号を名称変更する • Pandas パッケージをイン ポートする • import pandas

    as pd • 先程作成した行列c を DataFrame に変換する • Data “F”rame になってるよう にチェック • 出力する • 行番号と列番号が付いているこ とが確認できる
  36. Exercise (6-3): 行番号と列番号を名称変更する • 行番号を変更する • df1.columns で指定 • (データフレーム名).変更箇所

    • 列番号を変更する • df1.index で指定 • (データフレーム名).変更箇所 • 出力して確認
  37. 回帰分析 • 変数 X, Y のデータがあるとき, データからY をX で説明する回 帰方程式と呼ばれる式を求めること

    • Y; 被説明変数 • X; 説明変数 • X と Y それぞれの観測数を i とすると、 • = 0 + 1 + , = 1,2, … , と書ける. 0 と1 は未知パラメータ. は誤差項または撹乱項となる.
  38. 回帰分析 (cont.) • 回帰分析における仮定 • Xi は確率変数ではなく, 固定された値をとる • 誤差項は確率変数であり,

    期待値は0 となる. すなわち, E( ) = 0 • 誤差項 と は無相関となる. ( , ) = = 0 • 誤差項の分散は一定となる. ( ) = 2 = 2
  39. 回帰分析 (cont.) • 最小自乗推定量 • ෢ 1 = σ(− ത

    )(−ത ) σ(− ത )2 = σ(− ത ) σ(− ത )2 • ෢ 0 = ത - ෢ 1 ത • ത および ത はそれぞれ , の標本平均となる. • 前述の仮定において, 最小自乗推定量は最良線形不偏推定量を満たす. (ガウス・マルコフの定理) • 決定係数 • 誘導系 (reduced form) の回帰式の説明力を示す値 • R2 = σ(෢ − ത )2 σ(− ത )2 = 1 − σ 2 σ −ത 2 , ℎ = − ෢ 0 - ෢ 1
  40. 単回帰分析を廻してみる • Y=αX+β をベタに求めてみましょう • 決定係数や係数を求める • 使うデータ • 落合博満(ロッテ,

    中日, 巨人, 日本ハム) の打率(X)と年俸(Y) • データソース • https://nipponbaseball.web.fc2.com/personal/batter/ochiai_hiromitsu.html
  41. Exercise (8-2): 単回帰分析を回す • avg とsalary をそれぞれ, Numpy x, yに変換する

    • 回帰分析を lingregress で実施する • 回帰分析の結果を出力する (p値的に, 打率は年俸を説明できて いない可能性)
  42. Exercise (8-3): 単回帰分析を回す • x,y の散布図と回帰曲線を プロットして表示する • どうやら、打率は年俸を説 明出来ていない様子

    • Self Exercise • 打率ではない、別の変数 (Ops やホームラン数) を 引っ張ってきて, 同じように 単回帰を廻してみましょう
  43. Exercise (8-4); 単回帰を回す alternative バージョン • statsmodels.api モ ジュールを使う •

    add_constatnt によって 定数項を追加する • Excel やStata で解析し たのと似たような表が出 力される
  44. 重回帰分析 • 複数の説明変数が被説明変数に影響を与えると推定する • 複数の説明変数を, 1 , 2 , …

    , と表した場合 • = 0 + 1 1 + ⋯ + + , = 1,2, … , と表される. 0 … は未知パラメータとなる. また, は誤差項である. • 仮定 • 説明変数1 , 2 , … , は確率変数ではなく, 固定された値を取る • 誤差項は確率変数であり, 期待値は0 となる. すなわち, E( ) = 0 • 誤差項 と は無相関となる. ( , ) = = 0 • 誤差項の分散は一定となる. ( ) = 2 = 2 • 説明変数は他の変数の一次結合として表すことはできない. すなわち, 0 + 1 1 + ⋯ + = 0 となる 0 , 1 , … , は 0 = 1 = ⋯ = = 0以外に存在しない. このことを, 変数間に多重共線性がないという.
  45. 重回帰分析 (cont.) • それぞれ, 以下の通りベクトルおよび行列を仮定する. • = 1 2 …

    , = 1 ⋯ ⋮ ⋱ ⋮ 1 ⋯ , = 0 1 … , = 1 2 … • 行列表示で表すと, • = + • = 0 • ′ = 2
  46. 重回帰分析 (cont.) • 最小自乗推定量 • ෡ = (′)−′ • 決定係数

    • R2 = σ(෢ − ത )2 σ(− ത )2 = 1 − σ 2 σ −ത 2 , ℎ = − ෢ 0 - ෢ 1 • ところが, 重回帰分析の場合, 説明変数を増やすと誤差項 σ 2 が小さく なり, 結果, 決定係数が大きくなる可能性がある. そこで, 自由度修正済 み決定係数を用いる • 2 = 1 − σ 2/(−−1) σ −ത 2/(−1)
  47. 重回帰分析 (cont.) • 多重共線性 • 0 + 1 1 +

    ⋯ + = 0; = 1,2, … , が成立するとき, 説明変数間に多重共線性があるという. • 多重共線性がある場合, ≠ 0であれば, = − 0 + 1 1 + ⋯ + −1 −1 となり, すなわち, を他の説明変数で説明できる. • 対処方法; • VIF を用い, 多重共線性のチェックを行う
  48. 重回帰分析を行う • サンプルデータ • Scikit-learn の住宅価格データ • ボストンの506地区について, 犯罪率や固定資産税率, 教師あたりの生

    徒数などの属性値と, 住宅平均価格をテーブルに • 目的変数を target, 説明変数を boston に振り分ける
  49. 重回帰分析を行う CRIM 町ごとの人口一人あた りの犯罪率 AGE 1940年以前に建てられ た、所有者が住む建物 の割合 ZN 宅地の比率。25,000平

    方フィート以上のゾー ンで数えた値 DIS ボストンの5つの雇用中 心からの距離 INDUS 町ごとの非小売業の面 積比 RAD 放射状幹線道路からの 距離 CHAS チャールズ川に道がつ ながっているか TAX 固定資産税率 NOX NOx 濃度 PTRATIO 町ごとの教師あたりの 生徒数 RM 住宅あたり部屋数 B 町ごとの黒人比率 LSTAT 低階層人口の比率 MEDV 所有者が住む住宅の価 値の中央値
  50. Exercise(9) 重回帰分析を行う • データセットをsklearn から 取り込む • データを dset に放り込む

    • boston に説明変数を放り込 む • target に被説明変数を放り込 む • 結果をアウトプットする
  51. Exercise(10): VIF 値を確認する • 多重共線性のチェッ ク • statsmodels.stats.ou tliers_influence から

    variance_inflation_fa ctor を使って VIF(Variance Inflation Factor) を チェックする
  52. 来週火曜日の講義 • 最初にレポートを出します • レポートの評価方法は以下の通り • Excellent • データおよび適切な分析手法に基づき、独自の視点で十分に考察がなされている •

    Good • データおよび適切な分析手法に基づき、独自の視点で考察がなされている • Fair • データに対して分析が行われているが、一般的な範囲での考察にとどまる • Bad • 考察がなされていない,あるいはデータの解析が十分に行われていない • Failed • 断りなく他者の見解を引用している,その他不正行為に相当する
  53. 成績評価(1) • 平常レポート (40パーセント; 必須) • 講義計画に示したように、複数の回で学生にはレポートを課します。 レポートは Word/PowerPoint形式のメールあるいは, github

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

    以 外にも、Prezi などのアクティブプレゼンテーションツールや、他のプレゼ ンテーション手法を用いることが出来ます(プレゼンテーションツールについ ては、必要であれば講義内で説明する機会を設けます)。最終レポートでは、 以下の点について評価を行います。 (A.) グループ内の役割分担 (B.) データセットのユニークさおよび、それが適切に処理されているか (C.) 分析手法のユニークさおよび、それが適切に解析されているか (D.) プレゼンテーションのユニークさ (E.) 質疑応答にうまくリプライすることが出来ているか • 最終レポートの360°グループ評価 (10パーセント) • 3. の最終レポートについて、グループの自己評価および他のグループからの 評価を行います。3. で挙げた評価ポイントに基づき、グループメンバーおよ び他のグループは評価を行います。
  55. 次回予告; (人力や Web スクレイピングやRPA で)データを集めてきて処理をするまでの長く 険しい道 [座学、実習] • データといっても、そのほとんどは実のところ定型化されてい ません。Web

    サイトや書籍や国会図書館から手作業でひとつひ とつ入力し、あるいは、Web スクレイピングやRPA を用いて, Web から取得する必要があります。 • データ分析は、こうした事前の作業が作業全体の60-70パーセ ントを占めています。 • こうした手続きの具体例について、座学を用いて紹介した後、 雑誌や Web に掲載されたデータを取得する手法 (Web スクレ イピング) についてご紹介します。