文章目录
前言
本篇博客内容主要围绕线性回归进行练习。分别通过Excel和jupyter notebook对大量身高和体重数据进行分析,判断身高和体重之间是否具有线性相关性。
一、Excel实现数据线性分析
1、添加数据分析工具
按一下步骤添加数据分析工具即可
1、文件——更多——选项:
2、加载项:
3、勾选分析工具库和分析工具库—VBA,后点击确定:
4、最后点击确定,在数据栏中找到数据分析说明添加成功:
2、使用Excel的数据分析进行回归分析
1、点击数据分析,在弹出窗口中选择“回归”并确认:
确认后弹出新窗口如下:
2、Excel回归分析参数设置
1)选定数据来源范围
可以通过Y值输入区域文本框直接编辑数据输入的范围,也可以点击文本框之后向上的箭头符号框选Excel表格中的某个范围。并进行输入参数设置时需要将Y和X的输入区域都确定好。先选定20组数据作为数据输入:
(2)使用步骤(1)中的方法选中分析结果的输出区域:
(3)残差项中选择较为直观的线性拟合图:
(4)点击确认后,得到输出的图表如下:
(5)双击横坐标或纵坐标轴,设置坐标轴格式,点击坐标轴选项,设置最大最小值,间隔单位:
X轴设置:
Y轴设置:
修改后图表显示如下:
(6)双击图表中蓝色点(原始数据),选中后鼠标右击,选中添加线性趋势线:
(7)在设置线性趋势线格式弹窗中对趋势线进行设置。勾线线性。趋势线名称为:身高与体重关系。勾选显示公式和显示R平方值:
(8)回归分析结果如下:
(9)点击选择数据,再点击弹窗中的编辑对分析的数据范围进行修改,使之选中200组数据。修改如下,并点击确认:
对200组数据进行回归分析结果如下:
对2000组数据分析结果如下:
对20000组数据分析如下:
二、使用jupyter编程,用最小二乘法重做上述回归分析
1、程序编写前准备
1、启动jupyter notebook:可以点击下图中Jupyter Notebook(Anaconda3),再稍作等待即可启动。也可以点击Anaconda Prompt输入指令:jupyter notebook,稍作等待即可启动:
指令启动:
启动后如图所示:
2、创建ipynb文件:点击页面中的new,选择一个虚拟环境,即可创建一个ipynb文件:
在新创建的ipynb文件中可以点击File中的Rename进行ipynb文件名更改这里我将文件名更改为:wz_homework2:
3、在图中红色选中区域即可开始编程:
2、最小二乘法回归分析程序编写
最小二乘法介绍:
设拟合直线的公式为:
其中:拟合直线的斜率为:
计算出斜率后,根据和已经确定的斜率k,利用待定系数法求出截距b。
1、20组数据回归分析代码:
import pandas as pd
import numpy as np
import math
#准备数据
p=pd.read_excel('D:\\个人\作业\\python机器学习\\第二次作业:初识线性回归(Excel-Python实现)\\weights_heights(身高-体重数据集).xls','weights_heights')
#读取20