习题10.3

import numpy as np
import statsmodels.formula.api as smf
import matplotlib.pyplot as plt

# 加载数据
a = np.loadtxt('data10_3.txt')

# 设置绘图参数
plt.rc('text', usetex=True)  # 启用 LaTeX 字体
plt.rc('font', size=16)  # 设置字体大小
plt.style.use('default')  # 使用默认样式

# 绘制数据点
x = np.arange(17, 30, 2)  # 生成x值
plt.plot(x, a[0], '*', label='Dataset 1')  # 绘制第一组数据
plt.plot(x, a[1], 'o', label='Dataset 2')  # 绘制第二组数据

# 添加图例说明
plt.legend(loc='upper left')  # 设置图例位置

# 创建数据矩阵,包括x的平方项
x_squared = x**2
d = {'y': a.flatten(), 'x': x, 'x_squared': x_squared}

# 拟合线性回归模型,包括x的平方项
re = smf.ols('y~x+x_squared', data=d).fit()
print(re.summary())  # 打印模型摘要
print('残差的方差:', re.mse_resid)  # 打印残差方差

# 显示图形
plt.show()

print("学号后两位:08")

结果如下图所示:

posted @ 2024-12-21 11:41  方~~  阅读(12)  评论(0)    收藏  举报