Excel-Python对数据进行线性回归

一、利用Excel的数据分析实现线性回归

1.1、添加数据分析工具

在这里插入图片描述
选择分析工具库和分析工具库-VBA,点击转到后点击确定
在这里插入图片描述
在这里插入图片描述

1.2、使用数据分析库完成线性回归练习

上述分析工具添加完成后,点击工具栏的数据,然后点击右上角的数据分析

在这里插入图片描述

在弹出的选项框中选择回归
在这里插入图片描述

自行选择合适的输入数据作为XY值
残差选择线性拟合图
在这里插入图片描述
输出结果如下图:
在这里插入图片描述

若坐标轴起点为0,图像显示较为怪异,可以通过设置修改坐标轴起点,具体操作如下:
点击坐标轴,在弹出的选项中选择图片箭头指示,可自主调节最大最小值以及坐标轴单位间隔
在这里插入图片描述

1.3、选择添加趋势线

点击选中原始数据,单击鼠标右键,选择添加趋势线
在这里插入图片描述

选择线性,显示R值,显示公式
在这里插入图片描述

设置完成后图表显示如下
在这里插入图片描述

1.4、对200组、2000组数据的分析

结果如下:
200组:
在这里插入图片描述

2000组:
在这里插入图片描述

二、Python编程实现线性回归

输入以下代码:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import math
p=pd.read_excel('D:\Pythonwork\weights_heights.xls','weights_heights')
#输入保存的excel路径
#读取20行数据
p1=p.head(20)
x=p1["Height"]
y=p1["Weight"]
# 平均值
x_mean = np.mean(x)
y_mean = np.mean(y)
#x(或y)列的总数(即n)
xsize = x.size
zi=((x-x_mean)*(y-y_mean)).sum()
mu=((x-x_mean)*(x-x_mean)).sum()
n=((y-y_mean)*(y-y_mean)).sum()
# 参数a b
a = zi / mu
b = y_mean - a * x_mean
#相关系数R的平方
m=((zi/math.sqrt(mu*n))**2)
# 这里对参数保留4位有效数字
a = np.around(a,decimals=4)
b = np.around(b,decimals=4)
m = np.around(m,decimals=4)
print(f'回归线方程:y = {a}x +({b})') 
print(f'相关回归系数为{m}')
#借助第三方库skleran画出拟合曲线
y1 = a*x + b
plt.scatter(x,y)
plt.plot(x,y1,c='r')

运行结果如下:

在这里插入图片描述
200组数据:
在这里插入图片描述

2000组数据:
在这里插入图片描述

三、Python借助skleran库

输入以下代码:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import math
p=pd.read_excel('weights_heights.xls','weights_heights')
#读取20行数据
p1=p.head(20)
x=p1["Height"]
y=p1["Weight"]
# 平均值
x_mean = np.mean(x)
y_mean = np.mean(y)
#x(或y)列的总数(即n)
xsize = x.size
zi=((x-x_mean)*(y-y_mean)).sum()
mu=((x-x_mean)*(x-x_mean)).sum()
n=((y-y_mean)*(y-y_mean)).sum()
# 参数a b
a = zi / mu
b = y_mean - a * x_mean
#相关系数R的平方
m=((zi/math.sqrt(mu*n))**2)
# 这里对参数保留4位有效数字
a = np.around(a,decimals=4)
b = np.around(b,decimals=4)
m = np.around(m,decimals=4)
print(f'回归线方程:y = {a}x +({b})') 
print(f'相关回归系数为{m}')
#借助第三方库skleran画出拟合曲线
y1 = a*x + b
plt.scatter(x,y)
plt.plot(x,y1,c='r')

在这里插入图片描述
200组:
在这里插入图片描述
2000组
在这里插入图片描述

四、总结

本次实验分别用Excel、Python、Python skleran库对数据求解线性回归方程和回归系数。相比较而言,Excel上进行数据分析十分直观而且方便,而利用Python编程则略显繁琐。本次实验对线性回归有了更加深刻地理解,扩展了自己的知识面。

五、参考资料

https://blog.csdn.net/weixin_56102526/article/details/120495151
https://blog.csdn.net/jynyyhd/article/details/129461973

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python的excel数据线性回归可以通过使用一些库来实现,如numpy和pandas库进行数据处理,以及scikit-learn库进行回归建模。 首先,我们需要使用pandas库读取Excel数据,并将其转换为数据框。然后,我们可以使用numpy库将数据转换为numpy数组,以便进行后续操作。 接下来,我们可以使用scikit-learn库中的非线性回归模型,如多项式回归、高斯回归或支持向量回归等。这些模型可以帮助我们捕捉到数据的非线性关系。 对于多项式回归,我们可以使用scikit-learn库中的PolynomialFeatures函数来创建多项式特征。然后,我们可以使用线性回归模型来拟合这些多项式特征,并预测新的数据点。 对于高斯回归,我们将使用scikit-learn库中的GaussianProcessRegressor函数。该模型可以帮助我们找到具有高斯核函数的数据的最佳拟合曲线。 对于支持向量回归,我们可以使用scikit-learn库中的SVR函数。该模型通过支持向量机方法来拟合非线性关系,并预测新的数据点。 最后,我们可以通过评估回归模型的性能来确定模型的准确性。对于非线性回归模型,我们可以使用均方根误差(RMSE)或决定系数(R-squared)等指标来评估模型的拟合程度。 总结来说,Python中可以使用一些库来实现对Excel数据进行线性回归。这些库包括numpy和pandas进行数据处理,以及scikit-learn进行回归建模。我们可以使用多项式回归、高斯回归或支持向量回归等模型来捕捉数据的非线性关系,并通过评估模型的性能来确定模型的准确性。 ### 回答2: 非线性回归是指在数据集中存在非线性关系时,使用某种函数模型来拟合数据,并得到模型的参数估计值。Python中有许多库可以用于实现非线性回归,其中最常用的是使用numpy和scipy库进行数值计算和拟合。 在进行线性回归时,首先需要导入需要的库,如numpy和scipy。然后,我们需要准备好要拟合的数据集,并将其存储在一个数组中。接下来,我们要选择一个适当的非线性函数模型来拟合数据。常见的非线性函数模型有指数函数、幂函数、多项式函数等。在选择模型时,可以通过观察数据特点、尝试不同模型等方法来确定最佳模型。 一旦选定了模型,我们可以使用scipy库中的curve_fit函数来拟合数据。此函数需要传入两个参数,第一个参数是要拟合的函数模型,第二个参数是要拟合的数据集。curve_fit函数将返回一个包含参数估计值和参数协方差矩阵的元组。我们可以从元组中提取出参数估计值,并根据需要进行进一步的分析和应用。 除了使用scipy库外,还可以使用其他库如pandas、xlrd等来读取Excel中的数据,然后使用numpy和scipy进行线性回归拟合。这些库提供了丰富的功能来处理数据进行统计分析。 总之,使用Python进行线性回归需要先选择适当的非线性函数模型,然后使用相应的库进行拟合。通过合理选择模型和灵活运用库函数,可以实现对Excel数据的非线性回归分析。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值