データサイエンス-線形回帰の場合


ケース:Duration + Average_Pulseを使用して、Calorie_Burnageを予測します

説明変数としてAverage_PulseとDurationを使用して線形回帰テーブルを作成します。

import pandas as pd
import statsmodels.formula.api as smf

full_health_data = pd.read_csv("data.csv", header=0, sep=",")

model = smf.ols('Calorie_Burnage ~ Average_Pulse + Duration', data = full_health_data)
results = model.fit()
print(results.summary())

説明された例:

  • ライブラリstatsmodels.formula.apiをsmfとしてインポートします。StatsmodelsはPythonの統計ライブラリです。
  • full_health_dataセットを使用します。
  • smf.ols()を使用して、通常の最小二乗法に基づくモデルを作成します。説明変数は最初に括弧内に記述する必要があることに注意してください。full_health_dataデータセットを使用します。
  • .fit()を呼び出すことにより、変数の結果を取得します。これには、回帰モデルに関する多くの情報が含まれています。
  • summary()を呼び出して、線形回帰の結果を含むテーブルを取得します。

出力:

線形回帰テーブルの場合

線形回帰関数は、数学的に次のように書き直すことができます。

Calorie_Burnage = Average_Pulse * 3.1695 + Duration * 5.8424 - 334.5194

小数点以下第2位を四捨五入:

Calorie_Burnage = Average_Pulse * 3.17 + Duration * 5.84 - 334.52


Pythonで線形回帰関数を定義する

予測を実行するためにPythonで線形回帰関数を定義します。

次の場合、Calorie_Burnageとは何ですか。

  • 平均脈拍は110で、トレーニングセッションの所要時間は60分ですか?
  • 平均脈拍は140で、トレーニングセッションの所要時間は45分ですか?
  • 平均脈拍は175で、トレーニングセッションの所要時間は20分ですか?

def Predict_Calorie_Burnage(Average_Pulse, Duration):
 return(3.1695*Average_Pulse + 5.8434 * Duration - 334.5194)

print(Predict_Calorie_Burnage(110,60))
print(Predict_Calorie_Burnage(140,45))
print(Predict_Calorie_Burnage(175,20))

回答:

  • 平均脈拍は110で、トレーニングセッションの継続時間は60分= 365カロリーです。
  • 平均脈拍は140で、トレーニングセッションの継続時間は45分= 372カロリーです。
  • 平均脈拍は175で、トレーニングセッションの継続時間は20分= 337カロリーです。

係数にアクセスする

係数を見てください:

  • Average_Pulseが1増加すると、Calorie_Burnageは3.17増加します。
  • 持続時間が1増加すると、Calorie_Burnageは5.84増加します。

P値にアクセスする

各係数のP値を見てください。

  • P値は、Average_Pulse、Duration、およびInterceptで0.00です。
  • P値は、0.05未満であるため、すべての変数で統計的に有意です。

したがって、ここで、Average_PulseとDurationはCalorie_Burnageと関係があると結論付けることができます。


調整済み決定係数

複数の説明変数がある場合、決定係数に問題があります。

変数を追加すると、ほとんどの場合、決定係数は増加し、減少することはありません。

これは、線形回帰関数の周囲にデータポイントを追加しているためです。

Calorie_Burnageに影響を与えない確率変数を追加すると、線形回帰関数が適切であると誤って結論付けるリスクがあります。調整済み決定係数は、この問題を調整します。

したがって、複数の説明変数がある場合は、調整済み決定係数の値を確認することをお勧めします。

調整済み決定係数は0.814です。

R-Squaredの値は、常に0から1(0%から100%)の間です。

  • 決定係数の値が高いということは、多くのデータポイントが線形回帰関数の線に近いことを意味します。
  • 決定係数の値が低いということは、線形回帰関数の線がデータにうまく適合していないことを意味します。

結論:モデルはデータポイントによく適合します!

おめでとう!これで、データサイエンスライブラリの最後のモジュールが完成しました。