习题10.1

import numpy as np
import statsmodels.api as sm
import matplotlib.pyplot as plt

def check(data):
    # 提取数据的第一列和第二列
    x = data[:, 0]
    y = data[:, 1]
    # 使用statsmodels进行线性回归分析
    model = sm.OLS(y, sm.add_constant(x)).fit()  # 添加常数项
    print(model.summary())
    print(model.outlier_test())  # 输出已知数据的野值检验
    print('残差的方差', model.mse_resid)
    # 获取预测结果
    predictions = model.get_prediction(data).summary_frame(alpha=0.05)
    lower, upper = predictions.conf_int[1].T  # 置信下限上限
    error_bars = (upper - lower) / 2  # 置信半径
    num = np.arange(1, len(x) + 1)
    plt.errorbar(num, model.resid, error_bars, fmt='o')
    plt.show()

# 加载数据,确保路径正确
data_path = r'C:\Users\fangz\Desktop\python course\练习题目\第10章\data10_1.txt'
a = np.loadtxt(data_path)
plt.rc('font', size=15)  # 设置字体大小
plt.plot(a[:, 0], a[:, 1], 'o')  # 绘制原始数据点
plt.figure()  # 创建新图形
check(a)  # 执行回归分析

# 删除第9列数据
a2 = np.delete(a, 8, axis=1)
check(a2)

# 删除第5列数据
a3 = np.delete(a, 4, axis=1)
check(a3)

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

结果如下图所示:

posted @   方~~  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示