excel线性回归练习
一、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。