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

#イノベーション研究のための実践的データ分析 η. 経営学でもデータを使ったほうがよい理由/(重)回帰分析を notebook/python を使って解いてみよう

yasushihara
November 09, 2019

#イノベーション研究のための実践的データ分析 η. 経営学でもデータを使ったほうがよい理由/(重)回帰分析を notebook/python を使って解いてみよう

イノベーション研究のための実践的データ分析
η. 経営学でもデータを使ったほうがよい理由/回帰分析をやってみよう@甲南大学

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

yasushihara

November 09, 2019
Tweet

More Decks by yasushihara

Other Decks in Education

Transcript

  1. 自己紹介 • Yasushi HARA • 1998-2004 • TOYOTA NATIONAL COLLEGE

    OF TECHNOLOGY • 2000 • Exchange Student in Malaysia • 2002-2009 • CLARAONLINE, INC. • ICT Hosting Company, nowadays called Cloud system supplier • 2009-2015 • Institute of Innovation Research, HITOTSUBASHI UNIVERSITY • 2015-2017 • Science for RE-Designing Science, Technology and Innovation Policy Center, National Graduate Institute for Policy Studies (GRIPS) / NISTEP / Hitotsubashi UNIVERSITY/MANAGEMENT INNOVATION CENTER • 2018-2019 • EHESS Paris – CEAFJP/Michelin Research Fellow • OECD Expert Advisory Group: Digital Science and Innovation Policy and Governance (DSIP) and STI Policy Monitoring and Analysis (REITER) project • 2019- • TDB Center for Advanced Empirical Research on Enterprise and Economy, Faculty of Economics, Hitotsubashi University
  2. 自己紹介(2) • 主な研究テーマ • 大規模データを活用したイノベーションプロセスの解析が現在の主な 研究テーマです。大学あるいは研究機関で生み出された基礎研究が、 特許あるいは論文などの著作物を媒介して企業の研究開発へと活用さ れ、それがどのような経済的・社会的価値を生み出すイノベーション へと結実するか、 •

    複数のデータソースを組み合わせることでその動態を解析しています。 特許、学術論文、財務データベースおよび、企業活動を包括的に記述 したデータベースを相互に結合することで、定量的な解析を行ってい ます。具体的なフィールドとしては、製薬・バイオ産業および再生医 療分野に関連した解析を行ってきました。また、無形資産が果たす役 割についても近年関心を持っています。
  3. Framework of Innovation Indicators [modified. 2] (Pakes and Griliches 1984)

    Other Economi c Factors Non-Knowledge Factors of Production Output: Productivity Firm’s Value Paten t Patenting Propensity Inputs to Innovation R&D, designing, marketing research etc… Knowhow and First Mover Advantag Paper In- tangible knowledg e 3/8/2015 16
  4. 研究手法のダイアグラム • 定性的なアプローチ • なにかしらの理論モデルにもとづき、文献調査や実地 調査、インタビューなどを使って証拠を集める。集 まった証拠にもとづきロジックを組み立てて、結果を 観察する • データソース

    • 誰かが書いた文章 (論文や特許や報告書や白書 etc…) • 誰かの頭のなか (をインタビューを使って収集する) • 定量的なアプローチ • なにかしらの理論モデルにもとづき、統計データベー スを使ってデータを集める。それを回帰分析 etc… な どの統計的な処理をして、結果を観察する • データソース • 統計データベースを使う • サーベイ調査をする • 政府統計を使う 結論 インプリケーション (ex. 政策的な含意) 問い (リサーチクエスチョン) Literature Review (先行研究の調査) Hypothesis (問いに対する仮説の提示) 3/8/2015 17
  5. Q. データを使えばビジネスはわかるか? • ちょっと昔に言われたこと • 「データは数をみているだけ。経営者の心の機微や組織体制の細やかな変容や経 営者の意思決定の変化を、細かくデータで追うことは出来ない」 • 実際の世の中で起きたこと •

    テキスト解析手法の進化 • 機械学習のあっという間の普及 • データ解析に係る導入コストの低下 (as 統計ソフトを買わなくても良くなった) • A. 2019年11月段階の(ぼくの)答え • データがあれば、かなり色々なことがわかる。でも、データで説明しきれない特 殊性や特筆性については、まだ定性分析に出来ることはたくさんある
  6. Word2vec モデルに基づく Similarity Words の抽出(from Wikipedia の 経営学者リスト) イノベーション マーケティング論

    技術経営 コーポレート・ガバナンス 医療 0.92人的資源 0.92MOT 0.98 神戸大学大学院経 営学研究科 0.93 静岡 0.91評価 0.92開発 0.92第一人者 0.92 地域 0.91ほか 0.91システム 0.92人 0.91 経営情報学 部 0.9勲 0.91知識 0.91組織論 0.91 県立大学 0.88技術 0.9マネジメント 0.9および 0.9 センター 0.88流通 0.9監事 0.88消費者 0.89 研究科 0.87分析 0.9課題 0.85にて 0.89 経営情報 0.87委員会 0.9Certified 0.85問題 0.88 研究所 0.84課題 0.9客員研究員 0.84受章 0.88 所長 0.83人 0.89技術 0.82期 0.87 長 0.82監事 0.89関係 0.82現代 0.87 准教授 0.81および 0.89プロジェクト 0.82勲 0.87 国際企業 0.8多摩大学 0.89 マーケティング 論 0.81アドバイザー 0.87 経済 0.8地域経済 0.88領域 0.81及び 0.87 研究員 0.79サービス 0.88ホスピタリティ 0.8社会学 0.86
  7. 今日の 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
  8. Exercise 1: 1+1 = 2 を計算する • Jupyter notebook の

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

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

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

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

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

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

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

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

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

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

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

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

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

    add_constatnt によって 定数項を追加する • Excel やStata で解析し たのと似たような表が出 力される
  22. 重回帰分析 • 複数の説明変数が被説明変数に影響を与えると推定する • 複数の説明変数を, 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以外に存在しない. このことを, 変数間に多重共線性がないという.
  23. 重回帰分析 (cont.) • それぞれ, 以下の通りベクトルおよび行列を仮定する. • = 1 2 …

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

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

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

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

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

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

    variance_inflation_fa ctor を使って VIF(Variance Inflation Factor) を チェックする
  30. Extension; パネルデータ解析 • パネルデータ • N 個の主体(人,企業,団体,県,国など)の各々に関して T 期間に わたって観測された

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

    変動効果モデル (Random Effect Model) • を主体ごとに独立な確率変数と仮定し, • = 0, 2 = 2, = 0 を満たす。
  33. 今日の notebook (その2; FIFA19) Google Colaboratory 版 https://colab.research.google.com/drive/1 h7NY4ByUp5MkB1-eU__Lp8jAwTMLTFiT Jupyter

    Notebook 版 https://www.dropbox.com/s/y3xiinmkp6w 6lbj/fifa19%20%E3%81%AE%E3%83%87%E 3%83%BC%E3%82%BF%E3%81%A7%E5%8 D%98%E5%9B%9E%E5%B8%B0%E3%81% A8%E9%87%8D%E5%9B%9E%E5%B8%B0 %E5%88%86%E6%9E%90%E3%82%92%E8 %A1%8C%E3%81%A3%E3%81%9F%E7%B5 %90%E6%9E%9C..ipynb?dl=0
  34. 今日の Notebook (その2; Airbnb) Jupyter Notebook 版 https://www.dropbox.com/s/x0d4yr2eiy5a z07/Airbnb%20%E3%81%AE%E3%83%87% E3%83%BC%E3%82%BF%E3%81%A7%E5%

    9B%9E%E5%B8%B0%E5%88%86%E6%9E% 90%E3%82%92%E8%A1%8C%E3%81%A3% E3%81%9F%E7%B5%90%E6%9E%9C.ipynb ?dl=0 Google Colaboratory 版 https://colab.research.google.com/drive/1 tdkQ2ucGz1IlY1Auoabywpkq0FMQLQoJ
  35. データセット (その1) • FIFA19 Datasets; クロスセクションデータ • https://www.kaggle.com/karangadiya/fifa19 FIFA 19

    に収録されている フットボールプレイヤー選手 の能力値や市場価値をまとめたデータ
  36. データセット (その2) • New York City Airbnb Open Data •

    https://www.kaggle.com/dgomonov/new-york-city-airbnb-open- data
  37. データセット(その2) • Columns • Id; listing ID • Name; name

    of the listing • host_id; host ID • host_name; name of the host • neighbourhood_grouplocation • neighbourhoodarea • Latitude; latitude coordinates • Longitude; longitude coordinates • room_type; listing space type • Price; price in dollars • minimum_nights; amount of nights minimum • number_of_reviews; number of reviews • last_review; latest review • reviews_per_month; number of reviews per month • calculated_host_listings_count; amount of listing per host • availability_365; number of days when listing is available for booking
  38. Notebook の解説(FIFA19) やっていること ・Excel にしたデータをJupyter Notebook に取り込む (同じディレクトリにデータを 入れておくこと) ・シートの1枚目

    (0番目) を input_sheet_df にインポートする ・input_sheet_df.head(10) で, データの 10番目までを表示する Messi や Ronaldo, Suarez などのデータ が表示されていることが確認できる
  39. Notebook の解説(FIFA19) やっていること ・説明変数と被説明変数をそれぞれの列か ら取り出す (.iloc [行, 列]で, 行を指定せず 列のみを指定する)

    ・scipy.stats.lingress(説明変数, 被説明変 数) で単回帰を回す ・散布図および, 単回帰分析の結果をアウ トプットする
  40. Notebook の解説(FIFA19) sm.OLS(被説明変数, 定数項+説明変数) で回帰分析 を行い, 結果を表として出力する 被説明変数; overall (ゲーム上での総合評価)

    説明変数; age (年齢) 定数項および説明変数はそれぞれプラスに有意だが, R修正項は高くない。
  41. Notebook の解説(FIFA19) sm.OLS(被説明変数, 定数項+説明変数) で回帰分析 を行い, 結果を表として出力する 被説明変数; wage (年俸)

    説明変数; age (年齢) 定数項はマイナス, 説明変数はプラスに有意だが, R修正項はかなり高くない。
  42. Notebook の解説(FIFA19) • plt.scatter パッケージを用い, wage (年俸)とage(年齢) をプ ロットする •

    30歳までは年俸は上昇してい くが, その後下方トレンドが あることが確認できる • いくつか外れ値があることが 確認できる
  43. Notebook の解説(FIFA19) • Seaborn パッケージで, ヒス トグラムと散布図を同時にプ ロットする • 年齢はF分布,

    年俸はべき乗分 布に近いことが確認できる • 外れ値はメッシやクリスティ アーノロナウドなど.
  44. Notebook の解説(FIFA19) • 同様に, 重回帰分析を sm.OLS パッケージを用いて 行う • 説明変数が空の行を削除する

    (x_list.drop… 以下) • 年齢とレピュテーション, 契 約満期までの残り年数および 評価値はプラスに有意, 定数 項はマイナスに有意, 利き足 ダミーは有意であるとはいえ ないことが確認できる
  45. やってみよう • 被説明変数/説明変数を入れ替える • 異なるデータセットと接合する • 今までのケース in 一橋や慶應や早稲田 •

    FIFA ランキングのデータを持ってきて, 国名をベースにデータセットに統合する • OECD の per capita GDP のデータを持ってきて, 国名をベースにデータセット に統合する • 面白い結果が出たら発表してみましょう