300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Python 线性拟合实例 超简单线性拟合 python线性回归 统计学基础 线性拟合代码实现

Python 线性拟合实例 超简单线性拟合 python线性回归 统计学基础 线性拟合代码实现

时间:2020-11-07 07:33:49

相关推荐

Python 线性拟合实例 超简单线性拟合 python线性回归 统计学基础 线性拟合代码实现

一、线性拟合概念

线性拟合是曲线拟合的一种形式。设x和y都是被观测的量,且y是x的函数:y=f(x; b),曲线拟合就是通过x,y的观测值来寻求参数b的最佳估计值,及寻求最佳的理论曲线y=f(x; b)。当函数y=f(x; b)为关于b的i线性函数时,称这种曲线拟合为线性拟合。(石振东,刘国庆.实验数据处理与曲线拟合技术.哈尔滨:哈尔滨船舶工程学院出版社,1991)

线性拟合的原理:给定一组数据(xi,yi),i = 0,1,2,3,...,m-1,做拟合直线f(x) = a + bx,均方误差为:

根据微积分原理,Q(a,b)的极小值要满足:

整理变换一下:

用消元法或克莱姆方法解方程得到:

当b>0时,y随着x的增大越来越大;当b<0时,y随着x的增大越来越小,当b = 0,说明y不随着x的变化而变化。

二、应用示例

描述:在某平台上线后,得出某指标(某疾病平均住院日)随着应用时间的推移发生的变化情况,在指标平台实施后选取8个季度进行统计分析,如下表:

#应用到numpy和pandas模块import pandas as pdimport numpy as np

导入查看数据:

data = pd.read_excel('线性拟合.xlsx')data.head()

x_list = data.quarter.to_list()y_list = data.average_hospital_stay.to_list()#x_array,y_array是我们要拟合的数据x_array = np.array(x_list)y_array = np.array(y_list)#方程个数m = len(x_array) #计算过程sum_x = np.sum(x_array)sum_y = np.sum(y_array)sum_xy = np.sum(x_array * y_array)sum_xx = np.sum(x_array **2 )a=(sum_y*sum_xx-sum_x*sum_xy)/(m*sum_xx-(sum_x)**2)b=(m*sum_xy-sum_x*sum_y)/(m*sum_xx-(sum_x)**2)

打印一下子:

print("p = {:.4f} + {:.4f}x".format(a,b))

绘制散点图,并进行线性拟合,如下如所示:

结论:如图所示,在某平台使用后,平均住院日随着应用时间的增长越来越小,说明该平台的使用有利于缩小平均住院日。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。