数据分析笔记-线性回归模型

**

线性回归模型

**

1、一元线性回归

核心:y = a +bx + ε

1.1、借助散点图:相关性分析

数据分析笔记-线性回归模型_第1张图片
数据分析笔记-线性回归模型_第2张图片
这里可以直接用pandas里面的corr来求:
数据分析笔记-线性回归模型_第3张图片
或者
在这里插入图片描述

1.2、思路与方法:

具体求解其实比较简单,就是使得后面的误差项ε最小
数据分析笔记-线性回归模型_第4张图片
这里,对a,b求偏导= 0,取误差时最小时的a,b

1.3、Python实现

数据分析笔记-线性回归模型_第5张图片

2、多元线性回归

2.1、核心理解:

数据分析笔记-线性回归模型_第6张图片
类似一元线性,这里写一下推导,也挺简单的:
数据分析笔记-线性回归模型_第7张图片
这里需要注意的是我们在做多元线性回归的时候一般要求xa 与xb的相关性不能太强,这在行列式运算中就表现为r不能小于n,否则会有无数解。
所以在后面的state那里,需要把Newyork,California,Florida拆开,只保留两个,避免三组x,相关性太强。
那么这里就涉及到,三类数据,把哪个去掉:
由此衍生出哑变量:
设置方法如下:
dummies = pd,get_dummies(Profit.state)
这里相当于这种形式
newyork Florida California
0 1 1

Profit_New = pd.concat(Profit,dummies],axis =1)
Profit_New.drop(labels = [‘State’,‘New York’],axis = 1,inplace=True) #retain Florida and California

2.2、相关性分析

数据分析笔记-线性回归模型_第8张图片

2.3、Python实现:

这是要拟合的数据的一部分:
数据分析笔记-线性回归模型_第9张图片
注意:下面的model_selection要提前import:
from sklearn import model_selection
数据分析笔记-线性回归模型_第10张图片

这里可能需要重点学习一下train_test_split()函数和OLS()函数:

model_selection.train_test_split(*arrays, **options)

这里主要的几个参数就是:
*arrays : 数据源

test_size : 这里可以是浮点数和整数,浮点数就是选取多少比例的数据作为测试集,整数就选取多少数据样本

train_size :同上
注意:这里的size是根据index划分的,比如该数据有48行,那么test_size= 0.5 即选取24行为测试集数据
random_state : int, RandomState instance or None, optional (default=None):这一步输入int就是提供一个随机数种子,举例来说:random_state = 1,这个就代表一个确定的随机数集合,当换成其他数字时则选择其他的随机数集合。

sm.formula.ols(formula, data, subset=None, drop_cols=None, *args, **kwargs)

这个比较好理解,其中例子里那个c(state)是强调那一列是分类数据,而不是数字。
formula : str or generic Formula object
The formula specifying the model
data : array-like
The data for the model. See Notes.
subset : array-like
An array-like object of booleans, integers, or index values that
indicate the subset of df to use in the model. Assumes df is a
pandas.DataFrame
drop_cols : array-like
Columns to drop from the design matrix. Cannot be used to
drop terms involving categoricals.
args : extra arguments
These are passed to the model

3、模型的假设检验

F检验

在零假设(null hypothesis, H0)之下,统计值服从F-分布的检验。其通常是用来分析用了超过一个参数的统计模型,以判断该模型中的全部或一部分参数是否适合用来估计母体

结果判断:
F < F表 表明两组数据没有显著差异;
F ≥ F表 表明两组数据存在显著差异,拒绝零假设

假设:
在这里插入图片描述
即求线性方程组的是否有解的判断。
这里采用的方法是利用残差平方和(ESS)和回归平方和(RSS),来构造统计量
根据左式的结果去和右边的F(p,n-p-1)作比较(p是统计量个数,n是观测个数)
数据分析笔记-线性回归模型_第11张图片
数据分析笔记-线性回归模型_第12张图片
Python实现:
数据分析笔记-线性回归模型_第13张图片

t检验

t检验,亦称student t检验(Student’s t test),主要用于样本含量较小(例如n < 30),总体标准差σ未知的正态分布。 t检验是用t分布理论来推论差异发生的概率,从而比较两个平均数的差异是否显著

查附表,t0.025 / 34 = 2.032, t < t0.025 / 34, P >0.05,按α=0.05水准,不拒绝H0,两者的差别无统计学意义
假设:
在这里插入图片描述
Python实现:
数据分析笔记-线性回归模型_第14张图片
最后补充一下多元线性回归的用处:
抛开里面的数学问题,我们进行多元线性回归,无非根据从多个能影响我们的结果的因素的一系列数据中获得最近似结果。

你可能感兴趣的:(数据分析与挖掘)