回帰分析

Pythonで学ぶアンケートデータ分析

EbunOluwa Andrew

Data Scientist

回帰分析

  • 変数間の関係を把握する
  • 具体的な結果を予測できる
  • 従属変数へ各独立変数の影響を測る
  • 将来の機会とリスクを見通す
  • 生データを行動可能な情報に要約
  • 根拠に基づく意思決定を支援

下降する矢印に対応する人々

Pythonで学ぶアンケートデータ分析

最小二乗法 (OLS) による線形回帰

  • 線形回帰モデル
    • x と y に線形関係を仮定
    • y = m * x + b
    • 最小二乗法 (OLS)
    • Sum((計算値−観測値)^2) を最小化

https://seeing-theory.brown.edu/regression-analysis/index.html

1 https://seeing-theory.brown.edu/regression-analysis/index.html
Pythonで学ぶアンケートデータ分析

データの読み込み

import pandas as pd

import numpy as np
import matplotlib.pyplot as plt
import statsmodels.api as sm
exercise_data = pd.read_csv('workout_survey_data.csv') print(exercise_data.head())
| workout_minutes | calories_burned |
|-----------------|-----------------|
| 77              | 79.775152       |
| 21              | 23.177279       |
| 22              | 25.609262       |
| 20              | 17.857388       |
Pythonで学ぶアンケートデータ分析

変数を定義する

x = 独立変数 y = 従属変数

x = exercise_data.minutes.tolist()
y = exercise_data.calories.tolist() 
print(x,'\n',y)
| [77, 21, 22, 20, 36...           |
|----------------------------------|
| [79.7, 23.1, 25.6, 17.8, 41.8... |

調査データ

workout_minutes calories_burned
77 79.775152
21 23.177279
22 25.609262
20 17.857388
36 41.849864
Pythonで学ぶアンケートデータ分析

定数項を追加

x = sm.add_constant(x)
print (x)
  • モデルに切片 b を推定させる

Pythonで学ぶアンケートデータ分析

回帰を実行して当てはめる

result = sm.OLS(y,x).fit()
print(result.summary())

Pythonで学ぶアンケートデータ分析

m と b の取得

Pythonで学ぶアンケートデータ分析

元の値をプロット

x = exercise_data.minutes.tolist()
y = exercise_data.calories.tolist()
plt.scatter(x,y)
plt.xlabel('minutes')
plt.ylabel('calories')
plt.show()

Pythonで学ぶアンケートデータ分析

回帰直線を描画

max_x = exercise_data.minutes.max()
min_x = exercise_data.minutes.min()
x = np.arange(min_x, max_x, 1)

y = 1.0072*x + 0.1552
plt.plot(y, 'r') plt.show()

Pythonで学ぶアンケートデータ分析

応答を予測

y = 1.0072 * 30 + 0.1552
print(y)
30.3712
Pythonで学ぶアンケートデータ分析

線形回帰の長所と短所

  • 長所
    • データが線形に分離可能な場合に良好
  • 短所
    • 非線形でも線形関係を仮定する

Pythonで学ぶアンケートデータ分析

演習に進みましょう!

Pythonで学ぶアンケートデータ分析

Preparing Video For Download...