wls

语法

wls(Y, X, W, [intercept=true], [mode=0])

参数

Y 是因变量;X 是自变量。

Y 是一个向量;X 是一个矩阵、表或元组。当 X 是矩阵时,如果行数等于 Y 的长度,X 的每一列都是一个因子;如果行数不等于 Y 的长度,并且如果列数等于 Y 的长度,X 的每一行都是一个因子。

W 是一个向量,表示权重,各元素为一个非负数。

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 对应每一个预测值和实际值之间的残差。

详情

返回对 XY 计算加权最小二乘回归的结果。

例子

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;
w=rand(10,7)​
wls(y, x1, w)

# output
[-17.6177  4.0016]

wls(y, (x1,x2), w);

# output
[-17.4168  3.0481 0.2214]
wls(y, (x1,x2), w, 1, 1);
factor beta stdError tstat pvalue
Intercept -17.4168 4.8271 -3.6081 0.0226
x1 3.0481 1.6232 1.8779 0.1336
x2 0.2214 0.3699 0.5986 0.5817
wls(y, (x1,x2), w,1, 2);

# output
Coefficient->
factor    beta      stdError tstat     pvalue
--------- --------- -------- --------- --------
intercept -10.11392 4.866583 -2.078239 0.106234
x1        3.938138  2.061191 1.910613  0.128655
x2        -0.088542 0.446667 -0.198227 0.852534

Residual->[6.452866,3.207839,-3.002812,-5.642629,-6.147264,-12.515038,5.590914]
RegressionStat->
item         statistics
------------ ----------
R2           0.957998
AdjustedR2   0.936997
StdError     17.172833
Observations 7

ANOVA->
Breakdown  DF SS           MS           F         Significance
---------- -- ------------ ------------ --------- ------------
Regression 2  26905.306594 13452.653297 45.616718 0.001764
Residual   4  1179.624835  294.906209
Total      6  28084.931429
x=matrix(1 4 8 2 3, 1 4 2 3 8, 1 5 1 1 5);
w=rand(8,5)
wls(1..5, x,w,0,1);
factor beta stdError tstat pvalue
beta0 0.0026 1.4356 0.0018 0.9988
beta1 -1 1.2105 -0.8261 0.5605
beta2 0.4511 0.5949 0.7582 0.587
beta3 1.687 1.7389 0.9701 0.5097