一元线性回归求解及其模型检验的Python实现

本文提供了一段Python代码,用于计算一元线性回归的解,并进行模型的拟合优度、F检验和t检验。通过线性回归方程的计算、残差平方和以及相关统计量,评估模型的拟合效果和参数显著性。
# coding=utf-8
from math import sqrt

""" *********************"""
"""一元线性回归求解及其模型检验"""
""" *********************"""
"""
linear_regresssion:求解解决和斜率
goodnessOfFit:拟合优度计算
fTest:线性关系的显著性检验
tTest:回归参数的显著性检验
Author:mikebnu
Data:2022-08-05
version: 1.0
"""

"""
    输入:x,自变量;y,因变量,列表
    输出:a,b
    功能:计算一元线性回归方程的a和b
    Y = a + bX
"""
def linear_regresssion(x, y):
    size  = len(x)               #数据点数量
    x_avearge = sum(x) / size # x的平均值
    y_average = sum(y) / size # y的平均值
    x_y_average = 0              #xy的平均值
    x_x_average = 0              #x平方的平均值
    s_xy = 0
    s_x = 0
    for i in  range(size):
        s_xy += x[i] * y[i]
        s_x += x[i]**2
    x_y_average = s_xy / size
    x_x_average = s_x /size
    b = (x_avearge * y_average - x_y_average) / (x_avearge **2 - x_x_average)
    #返回值a,b
    return [ y_average - b * x_avearge, b]

"""
    计算ESS和RSS
    ESS = ∑(y期望值- y均值 )**2
    RSS = ∑(y观测值-y期望值 )**2
    TSS = ESS + RSS
     输入:x,自变量, y因变量,a截距, b斜率
    输出:[ESS, RSS]
""
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值