elasticNetBasic

语法

elasticNetBasic(Y, X, [mode=0], [alpha=1.0], [l1Ratio=0.5], [intercept=true], [normalize=false], [maxIter=1000], [tolerance=0.0001], [positive=false], [swColName], [checkInput=true])

详情

进行弹性网络回归(ElasticNet 回归)计算。即最小化以下目标函数:



参数

Y 数值类型的向量,表示因变量。

X 数值类型的向量/元组/矩阵/表,表示自变量。

  • X 是向量/元组时,其长度必须等于 Y 的长度。

  • X 是矩阵/表时,其行数必须等于 Y 的长度。

mode 一个整数,可取以下 3 个值

  • 0(默认值): 输出一个系数估计向量

  • 1: 输出一个具有系数估计,标准差,t 统计量和 p 值的表

  • 2: 输出一个具有 ANOVA(方差分析)、RegressionStat(回归统计)、Cofficient(系数) 和 Residual(残差) 的字典,具体含义见下表:

键 ANOVA 对应值:

Source of Variance 自由度(Degree of freedom) 平方和(Sum of Square) 均方差(Mean of square) F统计量 Significance
Regression(回归) 变量个数(p) 回归平方和(SSR) 回归均方差(MSR=SSR/R) MSR对MSE的比值 显著性,即统计出的P值
Residual(残差) 残差自由度(n-p-1) 残差平方和(SSE) 残差均方差(MSE=MSE/E)
Total 样本自由度, 不包括常数项(n-1) 总离差平方和(SST)

键 RegressionStat 对应值:

item 统计值
R2 R决定系数,描述回归曲线对真实数据点拟合程度的统计量。范围在 [0,1]之间,越接近1 ,说明对y的解释能力越强,拟合越好。
AdjustedR2 经自由度修正后的决定系数,通过样本数量与模型数量对 R-squared 进行修正。
StdError 回归残差标准误差,残差经自由度修正后的标准差。
Observations 观察样本个数。

键 Coefficient 对应值:

元素 说明
factor 自变量名称
beta 回归系数估计值
stdError 回归系数标准误差。
tstat T统计值,衡量系数的统计显著性。

键 Residual 对应每一个预测值和实际值之间的残差。

alpha 一个浮点数,表示乘以L1范数惩罚项的系数。默认值是1.0。

l1Ratio 0与1之间的浮点数,表示L1范数惩罚项所占比例。若 l1Ratio=0,只有L2范数惩罚项。若 l1Ratio=1,只有L1范数惩罚项。默认值为0.5。

intercept 布尔值,表示是否包含回归中的截距。默认值为 true,此时系统自动给 X 添加一列 “1” 以生成截距。

normalize 布尔值,默认值为 false。若设为 true,则所有自变量均会进行如下标准化:减去平均值,然后除以L2范数。若 intercept 为 false,该参数会被忽略。

maxIter 一个正整数,表示最大迭代次数。默认值是1000。

tolerance 一个浮点数,表示迭代中止的边界差值。默认值是0.0001。

positive 布尔值,表示是否强制系数为正数。默认值是 false。

swColName 字符串,表示列名,必须为 X 中存在的列名。如果未指定该参数,则所有样本的权重都默认为1;如果指定该参数,则将指定的列作为自变量的权重。

checkInput 布尔值,表示是否检查输入参数(yColName, xColNames 和 swColName)的合法性。

  • 若 checkInput=true(默认值),则会检查这些参数中是否存在无效值(NULL),若存在,则会报错;

  • 若 checkInput=false,则不检查无效值。

重要:
强烈建议开启 checkInput,以检查输入参数的有效性。如果不开启 checkInput,则必须确保输入参数中不存在无效值,并且中间计算过程中不会产生无效值,否则可能得到一个无用的模型。

返回值

取决于 mode 参数。

例子

y = [225.720746,-76.195841,63.089878,139.44561,-65.548346,2.037451,22.403987,-0.678415,37.884102,37.308288]
x0 = [2.240893,-0.854096,0.400157,1.454274,-0.977278,-0.205158,0.121675,-0.151357,0.333674,0.410599]
x1 = [0.978738,0.313068,1.764052,0.144044,1.867558,1.494079,0.761038,0.950088,0.443863,-0.103219]

// mode 为 0 (默认)时,返回向量
elasticNetBasic(y, [x0,x1])
// Output: [22.577707498321878,57.579636500541489,0]

// mode 为 1 时,返回一个表
elasticNetBasic(y, [x0,x1], mode=1)
// Output:
factor    beta               stdError           tstat             pvalue           
--------- ------------------ ------------------ ----------------- -----------------
intercept 22.577707498321878 22.386965663128339 1.008520218329887 0.346787434490777
x0        57.579636500541489 13.942071237979131 4.129919831688331 0.00440442978694 
x1        0                  19.967090598379201 0                 1

// mode 为 2 时,返回一个字典
elasticNetBasic(y, [x0,x1], mode=2)
// Output:
Coefficient->
factor    beta               stdError           tstat             pvalue           
--------- ------------------ ------------------ ----------------- -----------------
intercept 22.577707498321878 22.386965663128339 1.008520218329887 0.346787434490777
x0        57.579636500541489 13.942071237979131 4.129919831688331 0.00440442978694 
x1        0                  19.967090598379201 0                 1                

RegressionStat->
item         statistics        
------------ ------------------
R2           0.389552377491606 
AdjustedR2   0.215138771060637 
StdError     39.286356679948966
Observations 10                

ANOVA->
Breakdown  DF SS                    MS                    F                 Significance     
---------- -- --------------------- --------------------- ----------------- -----------------
Regression 2  28418.938722454950038 14209.469361227475019 9.206495588035528 0.010968516432523
Residual   7  10803.924748289195122 1543.417821184170634                                     
Total      9  72952.805231094462214                                                          

Residual->[74.113234125070192,-49.595011281755397,17.47127589853094,33.131334209489637,-31.854741498345688,-8.727333433143787,-7.179722769525263,-14.54104145650942,-3.906433128003563,-8.911560665807712]