始める無料で始める

切片と開始点

この演習では、大きなガラス容器に入った溶液の体積を測定したデータをモデル化する文脈で、切片と傾きのパラメータを確認します。溶液は水、穀物、糖分、酵母で構成されています。溶液とガラス容器の合計の質量も記録されていますが、空の容器の質量は記録されていません。

ここでは、事前に読み込まれた pandas の DataFrame df(列は volumesmasses)を使って、masses(y データ)を volumes(x データ)に関連付ける線形モデルを構築します。傾きは溶液の密度(質量の変化量/体積の変化量)の推定値、切片は空の容器の重さ(体積=0 のときの質量)の推定値になります。

この演習はコースの一部です

Pythonで学ぶ線形モデリング入門

コースを見る

演習の手順

  • statsmodels から ols() をインポートし、formula = "masses ~ volumes"data=df として当てはめたモデルを作成します。
  • .params['Intercept'].params['volumes'] を使って、切片 a0 と傾き a1 をそれぞれ取り出します。
  • a0a1 を、物理的な意味が分かる名前とともに表示します。
  • model_fit() を表示し、上で求めた値に一致するものを探します。行ラベル Interceptvolumes と、列ラベル coef を確認してください。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Import ols from statsmodels, and fit a model to the data
from statsmodels.formula.api import ols
model_fit = ols(formula="____ ~ ____", data=____)
model_fit = model_fit.fit()

# Extract the model parameter values, and assign them to a0, a1
a0 = model_fit.params['____']
a1 = model_fit.params['____']

# Print model parameter values with meaningful names, and compare to summary()
print( "container_mass   = {:0.4f}".format(____) )
print( "solution_density = {:0.4f}".format(____) )
print( model_fit.summary() )
コードを編集して実行