Slide 1

Slide 1 text

一橋大学 「経済学のための 実践的データ分析」 2020冬: 2/12 2.統計処理と回帰分析 2.1 コンピュータとプログラミング 2.2 プログラミング言語の入り方 2.3 Python で統計処理 2.4 Python で重回帰分析 一橋大学大学院経済学研究科 原泰史 [email protected]

Slide 2

Slide 2 text

今日の内容 • 10:30-10:45 • プレ講義 [録画なし] • 10:45-11:05 • 2.1 コンピューターとプロ グラミング [録画あり] • 11:05-11:10 • インターミッション[録画な し] • 11:10-11:30 • 2.2 プログラミング言語 のイロハ [録画あり] • 11:30-11:35 • インターミッション 2[録画なし] • 11:35-11:55 • 2.3 Python で統計 分析 [録画] • 11:55-12:00 • インターミッション3 [録画なし] • 12:00-12:20 • 2.4 Python で重回 帰分析 [録画]

Slide 3

Slide 3 text

2.1 コンピューターとプログラミング

Slide 4

Slide 4 text

そもそもコンピューターとは (を、とても大まかに把握する) • あまたある事象を情報にして、 かつすべてを2進数で処理でき るようにしたもの • 電気が流れている=0, 流れてい ない=1 と区別する(ものすごく 単純化すると) • 2進数と10進数 • 1と0 だけなので、シグナルでも、 電気信号でも、情報をやり取りす ることができる • 2進数と表記がめんどいので、 16進数を使う • ここから先は情報の講義で是非細 かく聴いてみてください 10進数 2進数 0 0 1 1 2 10 3 11 4 100 5 101 15 1111

Slide 5

Slide 5 text

フォンノイマン型コンピューター • 制御装置 • 演算装置 • 記録装置 • バス から構成される。 ・命令 (command) ・データ (data) が存在する。 記録装置からデータを取り出し、命 令を演算装置が実行する。これらを を制御装置が管理する。

Slide 6

Slide 6 text

コンピューター産業 のレキシ • 1950年代 • 巨大なメインフレーム • 1960年代 • DEC やIBM などによる、商用メ インフレーム • 1970年代 • APPLE II の登場 • 1980年代 • マッキントッシュ, DOS/V 互換 機 • 1990年代 • Windows 95 • 2000年代 • Windows XP, Mac X • 2010年代 • スマートフォン, iPhone, Android

Slide 7

Slide 7 text

Moore’s Law 引用: https://ja.wikipedia.org/wiki/ムーアの法則 • 集積回路のトランジスタ数は、 18ヶ月ごとに倍になる • このとき、n年後の倍率p は = 2/1.5

Slide 8

Slide 8 text

Harvard Mark I

Slide 9

Slide 9 text

ALU

Slide 10

Slide 10 text

Havard Innovation Lab (in 2012)

Slide 11

Slide 11 text

Decline of one-firm leadership Top Companies in the IT Services Industry (2009) # IT Service Company Services Revenue mln US$ Services Revenue growth Total Revenues mln US$ Services Revenue share 1 IBM 39,264 9% 103,630 38% 2 HP 27,745 45% 117,837 24% 3 Fujitsu 27,102 20% 53,313 51% 4 CSC 16,680 -1% 16,680 100% 5 Accenture 15,985 9% 22,784 70% 6 Northrop Grumman 12,454 6% 33,887 37% 7 Hitachi 12,318 21% 113,525 11% 8 Capgemini 11,154 -5% 12,123 92% 9 NTT Data Corporation 10,498 29% 12,368 85% 10 NEC 9,103 24% 47,538 19% 11 Ericsson 8,951 -6% 26,524 34% 12 BT Global Services 8,375 -18% 31,019 27% 13 Atos Origin 7,827 -9% 7,827 100% 14 T-Systems 7,660 -11% 15,325 50% 15 Siemens 7,590 -8% 107,396 7% 16 Lockheed Martin 7,338 32% 42,731 17% 17 Nokia Siemens Networks 7,103 9% 21,309 33% 18 SAIC 6,983 13% 9,975 70% 19 Microsoft 6,463 16% 61,900 10% 20 ACS 6,342 6% 6,342 100%

Slide 12

Slide 12 text

オープンソースソフトウェアと 商用ソフトウェア

Slide 13

Slide 13 text

オープンソースソフトウェアの特徴 • It makes possible to develop high reliability software • – Have independent-minded incentive for developer • – reuse current (software) asset • – Flexible bugfix • – High reliability • – Using worldwide network (『Delphi Effect』) • Agile Development • Low Cost development • Creating new business by means of Open Source Software • User activity could be independent from developer/resellers strategy.

Slide 14

Slide 14 text

ネットワーク効果 • In economics and business, a network effect (also called network externality or demand- side economies of scale) is the effect that one user of a good or service has on the value of that product to other people. • When network effect is present, the value of a product or service is dependent on the number of others using it.

Slide 15

Slide 15 text

Scale of Open Source Project

Slide 16

Slide 16 text

HISTORY OF UNIX/LINUX Source: http://en.wikipedia.org/wiki/File:Unix_history-simple.svg, CC-BY-SA

Slide 17

Slide 17 text

カスタマーがオープンソースを選ぶ理由 • 無償だから • サンクコストがほぼ0 • ユーザーコミュニティが存在するから • ソフトウェア開発に主体的に参画できる • 困ったことや迷ったことを交換できる • アジャイル開発 • すばやく解決策を用意してくれる • 特定企業の開発の方向性に依存しない • GAFA?

Slide 18

Slide 18 text

オープンソフトウェアのビジネスモデル

Slide 19

Slide 19 text

オープンソフトウェアのビジネスモデル (in early 2010s) 1. ネットワーク効果や two-sided network が成り立つように、アー リーアダプターな顧客を捕まえ、コミュニティを形成する 2. “認証サービス”を導入する。コミュニティの全員ではなく、特定 グループのニーズを満たすようなサービスを企業の有償サービス として提供する 1. Certificated Service 2. Support Service 3. Certificated Engineer 4. Certificated Reseller 3. 認証サービスをベースとした、有償ツールやサービスを提供する

Slide 20

Slide 20 text

プログラミング • コンピューターが実行する命令の束 • 自動的にデータを処理したり、データを集計したり、データを 整理統合することができる

Slide 21

Slide 21 text

プログラミングがやっていること 関数 F(・) X Y 入力 出力 入力に誤りがあったり、関数に誤りがありと出力されない もしくは、出力に誤りが出る可能性がある

Slide 22

Slide 22 text

プログラミングの方式 • インタープリター方式 • 命令を、ひとつひとつ機械語に翻訳する • Python や BASIC, Perl など (あとRも) • 作成したソースプログラムを、すぐさま実行できる • コンパイル型に比べると実行速度が遅い • この講義で採用している方 • コンパイル方式 • 命令をいったん機械語に翻訳し、その機械語になったプログラムを実行する • コンパイル; ソースコードを機械語にすること • コンパイラー; 翻訳するプログラム • C や C++, Fortran, COBOL など • インタープリター方式に比べると、実行速度が早い • 一橋教養課程で教えている方 • 中間方式 • JAVA (仮想マシン上でコンパイルしたプログラムを実行する)

Slide 23

Slide 23 text

原講師が使ってきたプログラミング言語リスト めんどくさい めんどくさくない すき すきじゃない

Slide 24

Slide 24 text

まとめ • 現状のコンピューターは命令 (command) をしたら動きます • ただし、正しい命令 (command) を投げたら動きます • 正しい命令の投げ方を覚えていくのが重要です • オープンソースを使うと、コストゼロでプログラミングを始め られます。 • 会社に入っても、必要な分析ルーチンを自分で組むことが出来 るようになります

Slide 25

Slide 25 text

2.2 プログラミングの入り方

Slide 26

Slide 26 text

Jupyter Lab の起動 (1) • スタートメニューから, Jupyter Lab を選択する

Slide 27

Slide 27 text

Jupyter Lab の起動 (2) • コンソールが表示される

Slide 28

Slide 28 text

Jupyter Lab の起動 (3) • New から Python 3 を選択する

Slide 29

Slide 29 text

Jupyter Lab の起動(4) • 1+1 を入力し, Run をクリック • “2” が出力される

Slide 30

Slide 30 text

3-1. Google Colaboratory を開く • https://colab.research.google.com/notebooks/welcome.ipyn b?authuser=1#scrollTo=9J7p406abzgl を, google にログインした状態でオープンする.

Slide 31

Slide 31 text

Google Colaboratory • [ファイル]-[python3 の新しいノートブック] を選択する

Slide 32

Slide 32 text

Google Colaboratory • 左側の実行ボタンを押すと、プログラムが実行される

Slide 33

Slide 33 text

まずは基本をやってみよう • Print 文 • 四則演算 • 論理演算 • 関数の作成 • For 文 • While 文 など、どんなプログラミング言語でも使う主なメソッドをpython で実行出来るようにします。これと、2-3. から本格的に使い始める パッケージを組み合わせると、この講義内で実行するメソッドは概 ね実行出来るようになります。

Slide 34

Slide 34 text

サンプルファイル • Google Colaboratory版 • https://colab.research.google. com/drive/1ZMXOZx6uvICKN cH58hDti9xw3yKb8VMi?usp= sharing • Jupyter Notebook版 • https://www.dropbox.com/s/x 4avqccf9e6f993/Python%20% E3%81%A7%E6%89%8B%E5% A0%85%E3%81%8F%E3%83% 97%E3%83%AD%E3%82%B0% E3%83%A9%E3%83%9F%E3% 83%B3%E3%82%B0%E3%81% AE%E5%9F%BA%E7%A4%8E.i pynb?dl=0

Slide 35

Slide 35 text

サンプルファイルの自環境への導入の仕方 Google Colaboratory 編 • [ファイル]-[ドライブにコピーを保存]をクリックする

Slide 36

Slide 36 text

サンプルファイルの自環境への導入の仕方 Jupyter Labs 編 • Jupyter を起動する • ファイルのダウンロー ド先 Jupyter 上でブラウ ジングし, ファイル名を クリックする

Slide 37

Slide 37 text

2.2.1 Print 文 • 入力した何かを出力する

Slide 38

Slide 38 text

2.2.2 四則演算 • 足し算と引き算と掛け算と割り算

Slide 39

Slide 39 text

2.2.3 for 文の使い方(1) • 繰り返し作業を行う

Slide 40

Slide 40 text

2.2.4 for 文の使い方(2) • 繰り返し処理を途中で止める

Slide 41

Slide 41 text

2.2.5 for 文の使い方(3) • 繰り返し処理の特定の項目をスキップする

Slide 42

Slide 42 text

2.2.6 for 文の使い方(4) • ループが終わった後の処理を指定する

Slide 43

Slide 43 text

2.2.7 for 文 • Range でインデックスを指定する • Range(10)の場合、 0 から9 まで繰り返す

Slide 44

Slide 44 text

2.2.8 for 文とインデックス(2) • Range(開始位置, 終了位置, 変分)が指定できる

Slide 45

Slide 45 text

2.2.9 enumerate 文の使い方 • インデックスと結果を同時に取得する 1 2 3

Slide 46

Slide 46 text

2.2.10 zip の使い方 • 複数の値を同時に取り出せる 5 5 46

Slide 47

Slide 47 text

2.2.11 zip の使い方(2) • 3つ以上の要素を同時に取り出す 5 5 46 50 50 120

Slide 48

Slide 48 text

2.2.12 zip と enumerate を使う • 連番と要素を同時に取り出す 5 5 46 0 1 2

Slide 49

Slide 49 text

2.2.13 多重ループ • 複数のfor 文をまわす • インデント(tab) でループの二重目を指定できる

Slide 50

Slide 50 text

2.2.14 多重ループ(その2) • itertools を使う

Slide 51

Slide 51 text

2.2.15 if 文 • If 条件によって出力結果を変更できる

Slide 52

Slide 52 text

2.2.16 論理演算子 • AND, OR, NOT の違い TRUE FALSE FALSE TRUE FALSE TRUE

Slide 53

Slide 53 text

2.2.17 while文 • 条件を満たすまで繰り返し続ける 0 1 2 3 4

Slide 54

Slide 54 text

2.2.18 無限ループ • While True なので, 永久に同じ処理を繰り返す • Ctrl+C または, Notebook 環境の場合停止ボタンを 押すと停止出来る

Slide 55

Slide 55 text

プログラミングの勉強の仕方 1. とりあえず納期の短い仕事を抱える (アカデミアっぽくない けど) 2. Python で出来ることをあえて Excel でやることで、自分の時 間を無駄にしていることに気づく 3. そうすると、がんばってプログラミングスキルを磨くことの 重要性に気づく 4. 手を動かす。解説サイトをググったり、本を読みながら、ひ とつひとつバグを潰していく 5. 動くとなんか嬉しい 6. 1.-5. を繰り返す

Slide 56

Slide 56 text

ここからの主な流れ • ここまでに説明した関数 (for や while や if etc…) を組み合わ せれば、複雑なコーディングを自分で書くことも出来るが、ま あすごい面倒。 • なので、数値計算ライブラリがある R や Fortran が好かれる場合も • なので、他の誰かが書いてくれたパッケージ (package) を利用 することで、手間を減らす。逆行列を導出して、回帰係数を求 める代わりに、そうした操作を一行のコマンドで実行できる package を import することで、作業を簡略化する

Slide 57

Slide 57 text

2.3 Python で統計分析

Slide 58

Slide 58 text

2.3と2.4の 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

Slide 59

Slide 59 text

Google Colaboratory 上で Notebook をコ ピーする [ドライブにコピーを保存] を選択する

Slide 60

Slide 60 text

サンプルファイルの自環境への導入の仕方 Jupyter Labs 編 • Jupyter を起動する • ファイルのダウン ロード先 Jupyter 上 でブラウジングし, ファイル名をクリッ クする

Slide 61

Slide 61 text

Exercise 1: 1+1 = 2 を計算する • Jupyter notebook の in: に, 1+1 をタイプする • 2 がout: に出力される

Slide 62

Slide 62 text

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

Slide 63

Slide 63 text

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

Slide 64

Slide 64 text

Numpy パッケージを利用してみる • NumPy • 数値の配列・行列などを効率的に処理するパッケージ • http://www.numpy.org • インポートの方法 • 先程の数学関数と同じく import numpy as np とタイプし, ライブラリをインポートする

Slide 65

Slide 65 text

Exercise 4(1): ベクトル計算をやってみる • まずはnumpy をインポート • ベクトルaとベクトルbを定義 • ベクトルaとベクトルbの 中身を確認

Slide 66

Slide 66 text

Exercise 4(2): ベクトル計算をやってみる • ベクトルa の2乗を求める • ベクトルa+bの要素ごとの積 を求める • ベクトルの内積を求める

Slide 67

Slide 67 text

Exercise 5: 行列演算をやってみる • 5x5 の行列cをランダムな値で 作成する • 出力してみる

Slide 68

Slide 68 text

Exercise 5(2): 行列演算をやってみる • 逆行列C-1を求める np.linalg.inv(c) • 行列C*C-1 して, 単位行列E になることを確認する c.dot(np.linalg.inv(c))

Slide 69

Slide 69 text

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

Slide 70

Slide 70 text

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

Slide 71

Slide 71 text

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

Slide 72

Slide 72 text

Exercise (6-3): 行番号と列番号を名称変更する • 行番号を変更する • df1.columns で指定 • (データフレーム名).変更箇所 • 列番号を変更する • df1.index で指定 • (データフレーム名).変更箇所 • 出力して確認

Slide 73

Slide 73 text

Exercise (7): DataFrame 内の要素を指定する • 行と列の位置を指定して, 値 を取り出す • 特定の列の値を取り出す • at を用いて, 単一要素を取り 出す • 特定の行の値を取り出す

Slide 74

Slide 74 text

Exercise (8): DataFrame 内の要素について平均を求める • Statistics パッケージを用いる • statistics.mean の中に、平均を導出した い項目を指定する • 今回は坂本の値 • それを mean に代入して、 • Print で出力する

Slide 75

Slide 75 text

Exercise (9): DataFrame 内の要素について中央値を求める • Statistics パッケージを用いる • statistics.median の中に、平均を導出し たい項目を指定する • 今回は坂本の値 • それを median に代入して、 • Print で出力する

Slide 76

Slide 76 text

Exercise (10): DataFrame 内の要素について標準偏差を求める • Statistics パッケージを用いる • 母集団標準偏差の場合 pstdev, 標本標準偏差の場合 stdev を指定する • 今回も坂本で。

Slide 77

Slide 77 text

ここまでのまとめ • Excel と同じくらいのことは、Python でも出来る • データの処理の仕方や、保存の仕方は覚えておく必要がある • とりあえず、困ったことがあったらパッケージ(ライブラリ)を 使う。そのときの呪文は import。 • 数値計算ライブラリは揃っている

Slide 78

Slide 78 text

2.4 Python で重回帰分析

Slide 79

Slide 79 text

回帰分析 • 変数 X, Y のデータがあるとき, データからY をX で説明する回 帰方程式と呼ばれる式を求めること • Y; 被説明変数 • X; 説明変数 • X と Y それぞれの観測数を i とすると、 • = 0 + 1 + , = 1,2, … , と書ける. 0 と1 は未知パラメータ. は誤差項または撹乱項となる.

Slide 80

Slide 80 text

回帰分析 (cont.) • 回帰分析における仮定 • Xi は確率変数ではなく, 固定された値をとる • 誤差項は確率変数であり, 期待値は0 となる. すなわち, E( ) = 0 • 誤差項 と は無相関となる. ( , ) = = 0 • 誤差項の分散は一定となる. ( ) = 2 = 2

Slide 81

Slide 81 text

回帰分析 (cont.) • 最小自乗推定量 • ෢ 1 = σ(− ത )(−ത ) σ(− ത )2 = σ(− ത ) σ(− ത )2 • ෢ 0 = ത - ෢ 1 ത • ത および ത はそれぞれ , の標本平均となる. • 前述の仮定において, 最小自乗推定量は最良線形不偏推定量を満たす. (ガウス・マルコフの定理) • 決定係数 • 誘導系 (reduced form) の回帰式の説明力を示す値 • R2 = σ(෢ − ത )2 σ(− ത )2 = 1 − σ 2 σ −ത 2 , ℎ = − ෢ 0 - ෢ 1

Slide 82

Slide 82 text

単回帰分析を廻してみる • Y=αX+β をベタに求めてみましょう • 決定係数や係数を求める • 使うデータ • 落合博満(ロッテ, 中日, 巨人, 日本ハム) の打率(X)と年俸(Y) • データソース • https://nipponbaseball.web.fc2.com/personal/batter/ochiai_hiromitsu.html

Slide 83

Slide 83 text

Exercise: 単回帰のために必要なライブラ リを取り込み, データを入れ込む • matplot.lib.pyplot と scipy.stats をインポートする • avg 変数と salary 変数を作成する

Slide 84

Slide 84 text

Exercise: 単回帰分析を回す • avg とsalary をそれぞれ, Numpy x, yに変換する • x に, とりこんだ avg のデータを取り込み Numpy 化する • 回帰分析を lingregress で実施する • 回帰分析の結果を出力する (p値的に, 打率は年俸を説明できて いない可能性)

Slide 85

Slide 85 text

Exercise: 単回帰分析を回す • x,y の散布図と回帰曲線を プロットして表示する • どうやら、打率は年俸を説 明出来ていない様子 • Self Exercise • 打率ではない、別の変数 (Ops やホームラン数) を 引っ張ってきて, 同じように 単回帰を廻してみましょう

Slide 86

Slide 86 text

Exercise; 単回帰を回す alternative バージョン • statsmodels.api モ ジュールを使う • add_constant によって 定数項を追加する • Excel やStata で解析し たのと似たような表が出 力される

Slide 87

Slide 87 text

重回帰分析 • 複数の説明変数が被説明変数に影響を与えると推定する • 複数の説明変数を, 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以外に存在しない. このことを, 変数間に多重共線性がないという.

Slide 88

Slide 88 text

重回帰分析 (cont.) • それぞれ, 以下の通りベクトルおよび行列を仮定する. • = 1 2 … , = 1 ⋯ ⋮ ⋱ ⋮ 1 ⋯ , = 0 1 … , = 1 2 … • 行列表示で表すと, • = + • = 0 • ′ = 2

Slide 89

Slide 89 text

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

Slide 90

Slide 90 text

重回帰分析 (cont.) • 多重共線性 • 0 + 1 1 + ⋯ + = 0; = 1,2, … , が成立するとき, 説明変数間に多重共線性があるという. • 多重共線性がある場合, ≠ 0であれば, = − 0 + 1 1 + ⋯ + −1 −1 となり, すなわち, を他の説明変数で説明できる. • 対処方法; • VIF を用い, 多重共線性のチェックを行う

Slide 91

Slide 91 text

重回帰分析を行う • サンプルデータ • Scikit-learn の住宅価格データ • ボストンの506地区について, 犯罪率や固定資産税率, 教師あたりの生 徒数などの属性値と, 住宅平均価格をテーブルに • 目的変数を target, 説明変数を boston に振り分ける

Slide 92

Slide 92 text

重回帰分析を行う CRIM 町ごとの人口一人あた りの犯罪率 AGE 1940年以前に建てられ た、所有者が住む建物 の割合 ZN 宅地の比率。25,000平 方フィート以上のゾー ンで数えた値 DIS ボストンの5つの雇用中 心からの距離 INDUS 町ごとの非小売業の面 積比 RAD 放射状幹線道路からの 距離 CHAS チャールズ川に道がつ ながっているか TAX 固定資産税率 NOX NOx 濃度 PTRATIO 町ごとの教師あたりの 生徒数 RM 住宅あたり部屋数 B 町ごとの黒人比率 LSTAT 低階層人口の比率 MEDV 所有者が住む住宅の価 値の中央値

Slide 93

Slide 93 text

Exercise 重回帰分析を行う • データセットをsklearn から 取り込む • データを dset に放り込む • boston に説明変数を放り込 む • target に被説明変数を放り込 む • 結果をアウトプットする

Slide 94

Slide 94 text

Exercise 重回帰分析を行う • 出力結果

Slide 95

Slide 95 text

Exercise: VIF 値を確認する • 多重共線性のチェッ ク • statsmodels.stats.ou tliers_influence から variance_inflation_fa ctor を使って VIF(Variance Inflation Factor) を チェックする

Slide 96

Slide 96 text

次回予定.データの取得と前処理 (Web スクレイ ピング, RPA, API そして手入力) / SQL の使い方 • データといっても、そのほとんどは実のところ定型化されていません。Web サ イトや書籍や国会図書館から手作業でひとつひとつ入力し、あるいは、Web ス クレイピングやAPI, RPA を用いて, Web から取得する必要があります。データ 分析は、こうした事前の作業が作業全体の60-70パーセントを占めています。こ うした手続きの具体例について、座学を用いて紹介した後、雑誌や Web に掲載 されたデータを取得する手法についてご紹介します。 • 後半では, SQL の使い方について概要を説明します。大量のデータを運用し活用 するためには、データベースを用いると便利です。Google BigQuery を用い、 データから必要な情報を抽出し、データ同士を接合する方法について簡単に解説 を行います。また続いて, Google Big Query を用いて解析を行いますまた, 必要 に応じて MySQL サーバおよび MySQL Workbench の導入方法、多変量データ の展開方法について解説します。

Slide 97

Slide 97 text

課題の予告 • まずは重回帰分析をやってもらう課題を出す予定です • 昨年度は以下のデータセットをご用意しました • FIFA19 • NYC の Airbnb の貸し出し価格 • テキサス州のバーベキューコンペティション

Slide 98

Slide 98 text

References (for today’s lecture) • NumPyで逆行列を求めるlinalg.invの使い方 • https://deepage.net/features/numpy-inv.html

Slide 99

Slide 99 text