ols
语法
ols(Y, X, [intercept=true], [mode=0])
详情
返回对 X 和 Y 计算普通最小二乘回归的结果。需要注意的是,该函数会将 X 和 Y 中的空值替换为0后进行计算。
参数
Y 是因变量;X 是自变量。
Y 是一个向量;X 是一个矩阵、表或元组。当 X 是矩阵时,如果行数等于 Y 的长度,X 的每一列都是一个因子;如果行数不等于 Y 的长度,并且如果列数等于 Y 的长度,X 的每一行都是一个因子。
intercept 是一个布尔变量,表示是否包含回归中的截距。默认值是 true。当它为 true 时,系统自动给 X 添加一列 “1” 以生成截距。
mode 是一个整数,默认值为 0,可取以下 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 对应每一个预测值和实际值之间的残差。
例子
$ x1=1 3 5 7 11 16 23
$ x2=2 8 11 34 56 54 100
$ y=0.1 4.2 5.6 8.8 22.1 35.6 77.2;
$ ols(y, x1);
[-9.912821,3.378632]
$ ols(y, (x1,x2));
[-9.494813,2.806426,0.13147]
$ ols(y, (x1,x2), 1, 1);
factor |
beta |
stdError |
tstat |
pvalue |
---|---|---|---|---|
intercept |
-9.494813 |
5.233168 |
-1.814353 |
0.143818 |
x1 |
2.806426 |
1.830782 |
1.532911 |
0.20007 |
x2 |
0.13147 |
0.409081 |
0.321379 |
0.764015 |
$ ols(y, (x1,x2), 1, 2);
Coefficient->
factor beta stdError tstat pvalue
--------- --------- -------- --------- --------
intercept -9.494813 5.233168 -1.814353 0.143818
x1 2.806426 1.830782 1.532911 0.20007
x2 0.13147 0.409081 0.321379 0.764015
Residual->[6.525447,4.223774,-0.383487,-5.820153,-6.638199,-6.907387,9.000005]
RegressionStat->
item statistics
------------ ----------
R2 0.940241
AdjustedR2 0.910361
StdError 8.173444
Observations 7
ANOVA->
Breakdown DF SS MS F Significance
---------- -- ----------- ----------- --------- ------------
Regression 2 4204.416396 2102.208198 31.467739 0.003571
Residual 4 267.220747 66.805187
Total 6 4471.637143
$ x=matrix(1 4 8 2 3, 1 4 2 3 8, 1 5 1 1 5);
$ x;
#0 |
#1 |
#2 |
---|---|---|
1 |
1 |
1 |
4 |
4 |
5 |
8 |
2 |
1 |
2 |
3 |
1 |
3 |
8 |
5 |
$ ols(1..5, x);
[1.156537,0.105505,0.91055,-0.697821]
$ ols(1..5, x.transpose());
[1.156537,0.105505,0.91055,-0.697821]
// 系统会调整因变量和自变量的维数,以便进行回归