截距与起点
在本练习中,您将在线性建模的语境下理解截距和斜率参数。数据来自对一个大玻璃罐中溶液体积的测量。该溶液由水、谷物、糖和酵母组成。同时也记录了溶液与玻璃容器的总质量,但空容器的质量没有单独记录。
您的任务是使用预加载的 pandas DataFrame df(包含 volumes 与 masses 两列),建立一个将 masses(y 数据)与 volumes(x 数据)联系起来的线性模型。斜率将用于估计该溶液的密度(质量变化/体积变化),而截距将用于估计空容器的重量(当 volume=0 时的质量)。

本练习是课程的一部分
Python 线性建模入门
练习说明
- 从
statsmodels导入ols(),并使用它基于data=df、formula = "masses ~ volumes"来拟合模型。 - 分别通过
.params['Intercept']与.params['volumes']提取截距a0和斜率a1。 - 使用具有物理意义的名称打印
a0和a1。 - 打印
model_fit()的结果,并查找与上面一致的数值;关注行标签Intercept、volumes以及列标签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() )