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")
结果如下图所示: