首页 > 编程知识 正文

多元线性回归算法python实现,python线性回归分析

时间:2023-05-03 06:55:31 阅读:26463 作者:4116

本文实例阐述了Python实现的简单线性回归算法。 分享仅供参考。 具体如下。

用python实现r线性模型(lm )中一元线性回归的简单方法是使用r的women样本数据进行r的执行结果: summary (fit ) )

Call:

公式(公式=重量~高度,数据=重量) ) ) ) ) ) ) )。

Residuals:

Min 1Q Median 3Q Max

- 1.7333-1.1333-0.38330.74173.1167

Coefficients:

estimateSTD.errortvaluepr(|t|) )。

(Intercept )-87.516675.93694-14.741.71 e-09 * * *

height 3.45000.0911437.851.09e-14 * * *

-

sign if.codes :‘* *’0.001‘* *’0.01‘*’0.05‘.’0.1‘‘1’

residualstandarderror :1.525 on 13 degreesoffreedom

多重r-squared : 0.991,Adjusted R-squared: 0.9903

F-statistic: 1433 on 1 and 13 DF,p-value: 1.091e-14

python实现的功能如下。

人员相关系数的计算

用最小二乘法计算回归系数

计算适合度判定系数R2R2

估计标准误差Se的计算

计算显像检查的f和p的值

import numpy as np

import scipy.stats as ss

class Lm:

“”一类简单一元线性模型,回归系数、拟合优度的判定系数和

估算标准误差、显著性水平“”

def __init__(self,data_source,separator ) :

self.beta=NP.matrix (NP.zeros (2) ) )

self.yhat=NP.matrix(NP.Zeros(2) ) )。

self.r2=0.0

self.se=0.0

self.f=0.0

self.msr=0.0

self.mse=0.0

自. p=0.0

data _ mat=NP.genfromtxt (data _ source,delimiter=separator ) ) ) ) ) ) ) ) )。

self.xarr=data _ mat [ :-1 ] self.yarr=data _ mat [ :-1]self.ybar=NP.mean(self.Yaran )

self.DFD=len(self.yarr )- 2 #自由度n-2

返回

#协方差的计算

@静态方法

efcov_custom(x,y ) :

result=sum(x-NP.mean(x ) ) y-NP.mean ) )/(len )- 1 ) ) ) ) ) ) )

返回结果

#相关系数的计算

@静态方法

efcorr_custom(x,y ) :

returnlm.cov_custom(x,y )NP.STD ) x,ddof=1) * np.std(y ) y,ddof=1) )

#回归系数的计算

efsimple_regression(self ) :

xmat=NP.mat(self.xarr ) )。

ymat=NP.mat(self.yarr ).t

xtx=xmat.T * xmat

IFNP.LinaLG.det(xtx )==0.0:

打印(cannotresolvetheproblem ) )

返回

(self.beta=NP.LinaLG.solve(xtx,xmat.T * ymat ) ) xtx.I * (xmat.t * ymat ) ) ) ) ) )

self.yhat=(xmat*self.Beta ).flatten ).A[0] return

#计算适合度判定系数r侧、即相关系数corr的平方

defr_square(self ) :

y=NP.mat(self.yarr ) )。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。