1. RSS, RSE, TSS等
RSS(Residual Sum of Squares)
RSS=e12+e22+e32+...+en2=(y1^−β0^−β1^x1)+...+(yn^−β0^−β1^xn)=∑i=1n(yi−yi^)2RSS = e_1^2 + e_2^2 + e_3^2 + ... + e_n^2 \\ =(\hat{y_1} - \hat{\beta_0} - \hat{\beta_1}x_1) + ... + (\hat{y_n} - \hat{\beta_0} - \hat{\beta_1}x_n) \\ = \sum_{i=1}^n(y_i - \hat{y_i})^2RSS=e12+e22+e32+...+en2=(y1^−β0^−β1^x1)+...+(yn^−β0^−β1^xn)=i=1∑n(yi−yi^)2
RSS定义了,在进行了回归之后,模型未能解释的变量。
RSE(Residual Standard Error)
RSE=RSSn−2=1n−2∑i=1n(yi−yi^)2RSE = \sqrt{\frac{RSS}{n-2}} \\ =\sqrt{\frac{1}{n-2}\sum_{i=1}^n(y_i-\hat{y_i})^2}RSE=n−2RSS=n−21i=1∑n(yi−yi^)2
RSE说明了,即使再好的回归模型也存在着RSE置信区间之内的误差,即模型对于数据的欠拟合程度。
TSS(Total Sum of Squares)
TSS=∑i=1n(yi−y‾)TSS = \sum_{i=1}^n(y_i - \overline{y})TSS=i=1∑n(yi−y)
其中y‾=1nyi\overline{y} = \frac{1}{n}y_iy=n1yi。TSS定义了yyy自身的方差,即衡量了YYY中yyy固有的变化程度。
R2R^2R2
R2=TSS−RSSTSS=1−RSSTSSR^2 = \frac{TSS-RSS}{TSS} = 1-\frac{RSS}{TSS}R2=TSSTSS−RSS=1−TSSRSS
- TSSTSSTSS:衡量了YYY中yyy固有的变化程度。
- RSSRSSRSS:进行回归之后,模型未能解释的变量值
- TSS−RSSTSS-RSSTSS−RSS:固有的变化程度 - 未能解释的变量值 = 能解释的变量值
- TSS−RSSTSS\frac{TSS-RSS}{TSS}TSSTSS−RSS:已经解释的变量值占所有固有变化的比例
R2R^2R2的变化区间为(0,1)(0, 1)(0,1),与yyy的尺度无关。所以,理论上R2R^2R2越大应该越好,即大量的变量可以被回归所解释。但实际场景中,R2R^2R2的值要看应用。
F−statisticF-statisticF−statistic用于估计H0H_0H0
F=(TSS−RSS)/pRSS/(n−p−1)F = \frac{(TSS - RSS)/p}{RSS/(n-p-1)}F=RSS/(n−p−1)(TSS−RSS)/p
其中,nnn为样本个数,ppp为多项式回归中的回归系数的个数
- TSSTSSTSS:yyy固有的方差,及固有的变量
- RSSRSSRSS:回归后,未能解释的变量
- TSS−RSSTSS - RSSTSS−RSS:回归后,能够解释的变量
- TSS−RSSp\frac{TSS-RSS}{p}pTSS−RSS:回归后,每个predictorpredictorpredictor所占的解释比例 (1)
- RSSn−p+1\frac{RSS}{n-p+1}n−p+1RSS:回归后,每个样本未能被解释的比例 (2)
- σ=RSE=RSSn−2\sigma=RSE=\sqrt{\frac{RSS}{n-2}}σ=RSE=n−2RSS:每个样本的未能被解释的占比 (3)
若对于上述的 (1),(2),(3) 式
-
(1)=(3),意味着每个predictorpredictorpredictor能解释的占比很低
-
(2)=(3),意味着每个样本能比解释的占比很低
-
可以推出F−statistic=1F-statistic=1F−statistic=1,即
β1=β2=...=βn=0\beta_1 = \beta_2 = ...= \beta_n = 0β1=β2=...=βn=0
说明各个predictorpredictorpredictor对预测yyy都是没有帮助的。
若对于上述的 (1),(2),(3) 式
-
(1)>(3),意味着每个predictorpredictorpredictor能解释的占比很高
-
(2)=(3),意味着每个样本能比解释的占比很低
-
可以推出可以推出F−statistic>1F-statistic>1F−statistic>1,可以推出
至少有一βi,i∈{1,2,...,p}不为0至少有一\beta_i,i\in\{1,2,...,p\}不为0至少有一βi,i∈{1,2,...,p}不为0
F−statisticF-statisticF−statistic,用于检验部分predictors是否为0
F−statistic=(RSS0−RSS)/qRSS/(n−p−1)F-statistic = \frac{(RSS_0 - RSS)/q}{RSS/(n-p-1)}F−statistic=RSS/(n−p−1)(RSS0−RSS)/q
- RSS0RSS_0RSS0:省略了qqq个predictorspredictorspredictors的模型的RSSRSSRSS
- RSS0−RSSRSS_0 - RSSRSS0−RSS:即这qqq个predictorpredictorpredictor能够解释的变量
- (RSS0−RSS)q\frac{(RSS_0 - RSS)}{q}q(RSS0−RSS):平均每个qqq能解释的变量的比例
- RSSn−p−1\frac{RSS}{n-p-1}n−p−1RSS:平均每个样本未能被解释的比例
如果使用个体的t−statistict-statistict−statistic和相关的p−valuep-valuep−value来衡量变量和响应之间的关系,很可能会得到错误的结论。
2. Variable selection
在一个多元回归式中,究竟哪些变量是和yyy有关系的?将没有关系的找出来
-
若是p=2p=2p=2,即有两个predictorpredictorpredictor,那么需要设计4个模型
- No variable
- 只包含X1X_1X1
- 只包含X2X_2X2
- 包含了X1,X2X_1,X_2X1,X2
然后对每个模型,可用如下指标进行检验:R2,BIC,AIC,CpR^2, BIC, AIC, C_pR2,BIC,AIC,Cp。但是当ppp特别打的时候,如p=20p=20p=20,那么就需要2202^{20}220个子集,这样做效率过低。故需要其他的手段
-
Forward Selection
先假设一个参数为空的模型,只有截距β0\beta_0β0。此外,有训练好了的ppp个variablevariablevariable。一个个往模型中加variablevariablevariable,并保证最低的RSSRSSRSS。满足某个条件的时候停止
-
Backward Selection
先假设所有的variablevariablevariable都要。然后,选择p−valuep-valuep−value最大的删除。不断地重复,直到满足某条件;如设定好p−valuep-valuep−value的阈值。
-
Mixed Selection
先假设一个参数为空的模型。然后,不断地加VariableVariableVariable进去,且保证加进去的使p−valuep-valuep−value最小,一旦超过了某个阈值,该variablevariablevariable就先放在一旁。最后,p−valuep-valuep−value分成两份,一份使得整个模型的p−valuep-valuep−value都较小,另一份使得p−valuep-valuep−value都较大。
3. Model Fit
两个衡量指标:R2,RSER^2,RSER2,RSE
-
对于RSERSERSE来说,具有较多变量的模型都有更大的RSERSERSE,只要RSSRSSRSS增长的幅度比ppp小,如下公式:
RSE=1n−p−1RSSRSE = \sqrt{\frac{1}{n-p-1}RSS}RSE=n−p−11RSS
4. Prediction
-
两个error
- Random Error ϵ\epsilonϵ不可控错误。即其他不明的错误未考虑进来,完美的变量是不可能被找到的,只能被估计。
- Model Bias是可控变量。可以通过不断地做实验,或训练模型来减少它。
-
两个interval
- Confidence interval。针对大部分城市的销售量区间,95%95\%95%的区间内包含了真实的值。
- Prediction interval。针对某个特定城市的销售量区间,95%95\%95%的区间包含了真实的值。
- 两个interval拥有相同的中心,但是prediction interval的范围比confidence interval的更加广。
5. 两个强假设
Predictors and Responses are additive and linear
-
Additive
Predictor xix_ixi的改变,那么yyy也相应的改变βi\beta_iβi的大小,和其他的predictors无关。即xix_ixi造成的影响和其他的predictors相互独立。
-
Linear
Predictorxix_ixi每次的改变1−unit1-unit1−unit对于yyy来说效果是一致的,无任何叠加的变化。
移除Additive假设,扩展线性回归
-
当为线性回归的时候,
Y=β0+β1x1+β2x2+ϵY = \beta_0 + \beta_1x_1 + \beta_2x_2 + \epsilonY=β0+β1x1+β2x2+ϵ
此时x1x_1x1的变化,会使得YYY的变化只和β1x1\beta_1x_1β1x1相关,未考虑到x2x_2x2对于x1x_1x1的影响,可能也会对YYY造成影响。
-
对线性回归进行扩展,如下:
Y=β0+β1x1+β2x2+β3x1x2+ϵ=β0+(β1+β3x2)x1+β2x2+ϵ=β0+β1~x1+β2x2+ϵY = \beta_0 + \beta_1x_1 + \beta_2x_2 + \beta_3x_1x_2 + \epsilon \\ =\beta_0 + (\beta_1 + \beta_3x_2)x_1 + \beta_2x_2 + \epsilon \\ =\beta_0 + \tilde{\beta_1}x_1 + \beta_2x_2 + \epsilonY=β0+β1x1+β2x2+β3x1x2+ϵ=β0+(β1+β3x2)x1+β2x2+ϵ=β0+β1~x1+β2x2+ϵ
此时,x1x_1x1的变化会有x2x_2x2的参与,x1x_1x1和x2x_2x2的interactioninteractioninteraction被考虑了进来。举个例子:流水线个数和员工人数,决定了生产量。现在增加流水线,提升了生产量;但生产量的提升,不仅仅是流水线的功劳,还有员工的功劳,即员工和流水线的相互作用interactioninteractioninteraction。
-
Hierarchical Principle(层次性原则)
若是一个模型中包含了interactioninteractioninteraction,那么这个模型也必须包含主要的影响因子x1, x2x_1, ~x_2x1, x2,即使x1, x2x_1, ~ x_2x1, x2相关系数的p−valuep-valuep−value很大。也就是说,当x1, x2x_1, ~x_2x1, x2的interactioninteractioninteraction很重要的时候,x1, x2x_1,~x_2x1, x2造成的影响也没多少人感兴趣了。但是它们得包含在模型中,否则会违背x1, x2x_1,~x_2x1, x2相关这件事。
移除Linear假设,扩展到Non-linear Relationship
mpg=β0+β1horsepower+β2horsepower2+ϵmpg = \beta_0 + \beta_1horsepower + \beta_2horsepower^2 + \epsilonmpg=β0+β1horsepower+β2horsepower2+ϵ
上述式子将mpgmpgmpg与horsepowerhorsepowerhorsepower的关系变为了非线性,可以看出来是一个二次的曲线。但需要注意的是,这仍是一个线性表达式,可以用线性回归的方法求解相关系数。因为改变的只是式子中的predictorpredictorpredictor而已,并不是相关系数。
6. Potential Problems
Non-linearity of the response-predictor relationships
-
残差ei=yi−yi^e_i = y_i - \hat{y_i}ei=yi−yi^
残差图(Residual PlotResidual ~ PlotResidual Plot)最好是橄榄球状,否则说明response和predictors是非线性关系
Correlation of Error Terms
Linear RegressionModelLinear ~ Regression ModelLinear RegressionModel的ϵi,i∈{1,2,...}\epsilon_i, i\in\{1,2,...\}ϵi,i∈{1,2,...}应该是故不相关的。
- 现有计算regressioncoefficientsregression coefficientsregressioncoefficients的方法都是基于ϵi\epsilon_iϵi互不相关的假设。即当前数据的ϵ\epsilonϵ不会影响到下一数据的ϵ\epsilonϵ。否则当前计算出的standard errorstandard ~ errorstandard error将低估了正确的SD,因为没考虑到这种相关性,导致错的离谱。预测的区间和真实的比将会更宽,如95%95\%95%的置信区间其实并没有0.95这么高
- 举个例子
- 假设将已有的nnn数据复制了一份,共有2n2n2n份数据用于训练模型
- 虽然标准差是2n2n2n个样本的,但其实真实有效的数据只有nnn份。两份数据存在了相关性。
- 训练得到的coefficientcoefficientcoefficient是针对2n2n2n份数据的,导致真实的置信区间缩小了2\sqrt22倍。
- 在time series data(时序序列数据)time ~ series ~ data(时序序列数据)time series data(时序序列数据)中经常会出现correlationcorrelationcorrelation的问题。比如说,**邻近时间点采集的数据,都会有相关的ϵ\epsilonϵ。**如果存在相关性,那么在残差图中就会发现追踪现象,即临近残差将会有相近的值。
- CorrelationCorrelationCorrelation对于Linear RegressionLinear ~ RegressionLinear Regression很重要。若是数据来自同一个家庭,一样的吃饭习惯,都会使得数据存在相关性。若是线性回归中,各个样本之间能够独立,将会有更大的意义。
Non-constant variance of error terms(误差项的不恒定方差)
-
一般来说,线性回归模型满足该假设
误差项有恒定的方差var(ϵi)=σ2var(\epsilon_i) = \sigma^2var(ϵi)=σ2
-
但如果responseresponseresponse的值不断地增加,该方差就会越来越大。当面对这个问题的时候,一个可行的方法就是对responseresponseresponse进行y\sqrt yy或者logYlogYlogY。
Outliers(离群点)
-
虽然离群点对于回归线的影响可能不大,但对于RSERSERSE,R2R^2R2指标都有着极大的影响,这导致对模型的分析出现严重的错误。比如说,confidence intervalconfidence ~ intervalconfidence interval,p−valuep-valuep−value的计算都出现问题。
-
可以通过
Studenized residuals=eiRSSStudenized ~ residuals = \frac{e_i}{RSS}Studenized residuals=RSSei
来计算,如果该值大于3,则该点为离群点
高杠杆点
-
高杠杆点势必离群点更危险的点,因为它容易带偏回归线。
-
对于高杠杆点的判断可通过如下公式
hi=1n+(xi−x‾)∑i′n(xi′−x‾)2 ∈(1n,1)h_i = \frac{1}{n}+\frac{(x_i - \overline{x})}{\sum_{i^{'}}^n(x_{i^{'}} - \overline{x})^2} ~ \in (\frac{1}{n}, 1)hi=n1+∑i′n(xi′−x)2(xi−x) ∈(n1,1)
若是(xi−x‾)(x_i - \overline{x})(xi−x)越大,则hih_ihi越大,说明了该点更可能为高杠杆点。通常hi>P+1nh_i > \frac{P+1}{n}hi>nP+1的点都是高杠杆点。
Collinearity(共线性)
-
两个predictorspredictorspredictors过于相关了,可以通过VIFVIFVIF指标来检测
VIF(β^j)=11−RXj∣X−j2VIF(\hat{\beta}_j) = \frac{1}{1-R^2_{X_j|X_{-j}}}VIF(β^j)=1−RXj∣X−j21
-
共线性使得各个变量之间互相关。而Linear RegressionLinear ~ RegressionLinear Regression假设各个边缘之间独立,否则对预测会造成影响。但在现实生活中,数据间往往存在着相关性,但机器学习侧重于预测的准确率。若准确率很高,则不用过于关注。
7. 几个问题总结
sales和budget之间是否存在关系?
- 通过多元回归将sale和TV,Radio,Newspaper联系起来
- 测试H0,βi=0,i∈{1,2,3,...}H_0,\beta_i=0,i\in\{1,2,3,...\}H0,βi=0,i∈{1,2,3,...}是否成立,使用F−statisticF-statisticF−statistic作为指标,p−valuep-valuep−value越低,说明存在关系的可能性越大。
Relationship有多强?
- RSERSERSE估计了标准误差
- R2R^2R2记录了ResponseResponseResponse中可以通过PredictorPredictorPredictor解释的变量占比
哪个媒体对sales有贡献?
- 检查每个predictorpredictorpredictor的t−statistict-statistict−statistic相关的p−valuep-valuep−value
- p−valuep-valuep−value越低,说明贡献越大
每个媒体在salessalessales上的影响有多大?
-
βj^\hat{\beta_j}βj^的标准差可用来构建置信区间。若置信区间内不包含000且远离000,那么说明response和该predictor占一定关系。
-
此外,共线性会导致标准差变大。故需要检测共线性是某predictor置信区间出现0的原因,通过VIFVIFVIF来检测。
-
若想检验单个变量对sale的影响,可以各自做线性回归。
预测能力有多强?
-
若使用预测区间
Y=f(x)+ϵY = f(x) + \epsilonY=f(x)+ϵ
-
若使用置信区间
Y=f(x)Y = f(x)Y=f(x)
预测区间比置信区间更加广阔,因为预测区间加入了不可控变量ϵ\epsilonϵ。
是否为线性关系?
residual plotresidual ~ plotresidual plot可用来检测非线性
广告数据存在协同性吗?
- 标准的线性回归模型假设predictorspredictorspredictors和responseresponseresponse之间存在加性关系,即各个prediction互相独立。
- 每个predictor造成的影响不依赖其他的predictors
线性回归与K-NN Regression比较
-
线性回归是基于parametricparametricparametric类方法,有很好的优点
- 仅需估计有限个β\betaβ
- 可以用统计方法进行分析
但也有缺点
- 有F(X)F(X)F(X)的强假设,若数据和假设无关,造成准确率很低
-
这时候就需要non−parametricnon-parametricnon−parametric的方法了,如KNN RegressionKNN ~ RegressionKNN Regression,如下
f(x0)^=1K∑xi∈N0yi\hat{f(x_0)} = \frac{1}{K}\sum_{x_i \in N_0} y_if(x0)^=K1xi∈N0∑yi
- 当K很大时,以MSEMSEMSE为衡量指标不会比Linear RegressionLinear ~ RegressionLinear Regression差多少。但是当kkk很小的时候,K−NN RegerssionK-NN ~ RegerssionK−NN Regerssion就很差了。
- 在现实生活中,当predictors的个数很多的时候,对于KNN RegressionKNN ~ RegressionKNN Regression就会有维度灾难,其MSEMSEMSE很大。故大多是场合还是基于Linear RegressionLinear ~ RegressionLinear Regression。
本文为作者原创,转载需注明出处!