初识线性回归

一、excel中数据分析功能做线性回归练习

(一)用excel打开下载的身高体重文件夹。

在这里插入图片描述
(二)添加数据分析的工具:
1.文件—更多—选项
在这里插入图片描述

在这里插入图片描述

2.点击加载项,后点击跳转
在这里插入图片描述

3.勾选分析工具库分析工具库—VBA,后点击确定
在这里插入图片描述

4.点击查看右上角有一个数据分析,则添加成功
在这里插入图片描述

(三)用excel表完成线性回归
1.点击数据数据分析回归,点击确定
在这里插入图片描述
2.选择体重做Y值,身高X值,选取20个数据
输入自己适合的输出区域,选择线性拟合图,点击确定
在这里插入图片描述

2.输出图表如下
在这里插入图片描述
3.双击体重,设置坐标轴格式,点击坐标轴选项,设置最大最小值,间隔单位
在这里插入图片描述

在这里插入图片描述

4.修改后图像如下
在这里插入图片描述
5.点击选择原始数据,鼠标右键
在这里插入图片描述
6.选择添加趋势线,设置趋势线格式为线性,点击选择显示公式,显示R平方值
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

7.设置好格式如下
在这里插入图片描述

8.以同样的方法选择200个数据
在这里插入图片描述
8.其图像数据如下
在这里插入图片描述
9,继续选择2000个数据
在这里插入图片描述

10.获得回归图像、方程、相关系数如下
在这里插入图片描述

二、jupyter编程(不借助第三方库),最小二乘法,重做第1题

(一)打开jupyter notebook程序

在这里插入图片描述

(二)进入页面

在这里插入图片描述

(三)新建文件

在这里插入图片描述

(四)改文件名称

在这里插入图片描述

在这里插入图片描述

(五)代码以及结果

1. 20组数据

import pandas as pd
import numpy as np
from numpy import array
from numpy import mean
import os
import matplotlib.pyplot as plt
import math
df=pd.read_excel('C:\\Users\\86199\\weights_heights.xlsx')
dl=df.head(20)
x=dl["Weight"]
y=dl["Height"]
plt.scatter(x,y)
plt.axis([0,180,65,72])
#计算平均值
x_mean=mean(x)
y_mean=mean(y)
num=0.0#分子
d=0.0#分母
m=0.0
for x_i,y_i in zip(x,y):
    num+=(x_i-x_mean)*(y_i-y_mean)
    d+=(x_i+x_mean)**2
    m+=(y_i+y_mean)**2
a=num/d
b=y_mean-a*x_mean
y_hat=a*x+b
plt.scatter(x,y)#散点图绘制数据x,y
plt.plot(x,y_hat,color='coral')#绘制图线
plt.axis([80,180,65,72])#规定范围
plt.show()#调用显示

显示输出
在这里插入图片描述

2.200组数据

在这里插入图片描述

结果
在这里插入图片描述

3.2000组数据

在这里插入图片描述
结果
在这里插入图片描述

三、jupyter编程,借助skleran,重做第1题

(一)20组数据

1.代码部分
(1)调用包

import numpy as np
import pandas as pd
from contextlib import contextmanager as _contextmanager
import logging
from numpy import array
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt
import math
df=pd.read_excel('C:\\Users\\86199\\weights_heights.xlsx')

(2)读取数据

df.shape

(3)赋值变量取20组数据

x=array(df[['Weight']].values[:20,:])
y=array(df[['Height']].values[:20,:])

(4)调用线性回归函数

model=LinearRegression(fit_intercept=True,normalize=True)
model.fit(x,y)

(5)输出斜率

print(model.coef_)

在这里插入图片描述

(6)输出截距

print(model.intercept_)

在这里插入图片描述

(7)输出线性回归表达式

a=model.intercept_
b=model.coef_
y_hat=b*x+a
print("线性回归方程为:y=",b,"x",a)

在这里插入图片描述

(8)计算R的平方

model.score(x,y)

在这里插入图片描述

(9)绘图输出

plt.figure()
plt.scatter(x,y)#散点图绘制原始数据
plt.plot(x,y_hat,color='coral')
plt.show()

在这里插入图片描述

(二)200组数据

1.代码,其他与第一题类似
在这里插入图片描述
2.结果输出
在这里插入图片描述
在这里插入图片描述

(三)2000组数据

1.代码与第一题类似
在这里插入图片描述
2.结果输出
在这里插入图片描述

在这里插入图片描述

四、总结

excel做线性回归和jupyter借助skleran很像,比较简单都是通过调用已有存在的函数进行输出直接得到结果,而自己用Python编写代码进行运算也对线性回归的原理性质更加清晰,丰富了自己的知识。

五、参考资料

用excel中数据分析功能做线性回归练习。分别选取20、200、2000(或20000)组数据。记录回归方程式、R2 ; 用jupyter编程(不借助第三方库),用最小二乘法;借助skleran。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值