线性回归练习
一、用excel中数据分析功能做线性回归练习
1. 添加数据分析工具
打开excel软件–点击左上角“文件”–找到“选项”,进入excel选项界面。
点击左下角“加载项”,在点击“转到”。
勾选“分析工具库”、“分析工具库VBA”选项,点击“确定”。
点击“数据”可以看到“数据分析”选项,即为添加成功。
2.用excel完成线性回归
打开weights_heights(身高-体重数据集).xls表格,点击“数据”–打开“数据分析”选项–选择“回归”–“确定”。
(一)20组数据
将Weight作为Y值,Height作为X值,选择20组数据的区域,并勾选“线性拟合图”,点击“确定”。
确定后会得到如下图表
选中表中的数据,点击鼠标右键,“添加趋势线”。
选择“线性”,并勾选“显示公式”、“显示R平方值”。
完成后的图如下,可以看到公式以及R的平方值。
(二)200组数据
同上步骤,选取200个数据区域。
得到的图表如下
(三)2000组数据
同上步骤,选取2000个数据区域。
得到的图表如下
二、用jupyter编程(不借助第三方库),用最小二乘法,重做第1题
1.安装Anaconda,并启动Jupyter Notebook
2.进入界面,点击“new”新建文件
新建文件如下
3.运行代码
20组数据
20组数据代码如下:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import math
# 读取表格
df = pd.read_excel(r"C:\Users\lh\Desktop\weights_heights.xls")
df.shape
# 20组数据
d = df.head(20)
x = d["Height"]
y = d["Weight"]
plt.scatter(x,y)
plt.axis([65,72,0,180])
plt.show()
#计算平均值
x_mean=np.mean(x)
y_mean=np.mean(y)
a = num/d
b = y_mean - a * x_mean
print("所得直线方程为:y=",a,"x",b)
# 输出结果为:所得直线方程为:y= 4.128037498890453 x -152.2337845345731
print("R-squared:",((num/math.sqrt(d*m))**2))
# 输出结果为:R-squared: 0.32542302493662545
y_hat=a * x +b
plt