**
**
核心:y = a +bx + ε
具体求解其实比较简单,就是使得后面的误差项ε最小
这里,对a,b求偏导= 0,取误差时最小时的a,b
类似一元线性,这里写一下推导,也挺简单的:
这里需要注意的是我们在做多元线性回归的时候一般要求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
这是要拟合的数据的一部分:
注意:下面的model_selection要提前import:
from sklearn import model_selection
这里可能需要重点学习一下train_test_split()函数和OLS()函数:
这里主要的几个参数就是:
*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,这个就代表一个确定的随机数集合,当换成其他数字时则选择其他的随机数集合。
这个比较好理解,其中例子里那个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
在零假设(null hypothesis, H0)之下,统计值服从F-分布的检验。其通常是用来分析用了超过一个参数的统计模型,以判断该模型中的全部或一部分参数是否适合用来估计母体
结果判断:
F < F表 表明两组数据没有显著差异;
F ≥ F表 表明两组数据存在显著差异,拒绝零假设
假设:
即求线性方程组的是否有解的判断。
这里采用的方法是利用残差平方和(ESS)和回归平方和(RSS),来构造统计量
根据左式的结果去和右边的F(p,n-p-1)作比较(p是统计量个数,n是观测个数)
Python实现:
t检验,亦称student t检验(Student’s t test),主要用于样本含量较小(例如n < 30),总体标准差σ未知的正态分布。 t检验是用t分布理论来推论差异发生的概率,从而比较两个平均数的差异是否显著
假设:
Python实现:
最后补充一下多元线性回归的用处:
抛开里面的数学问题,我们进行多元线性回归,无非根据从多个能影响我们的结果的因素的一系列数据中获得最近似结果。