---
source_url: https://docs.dolphindb.cn/zh/funcs/w/wls.html
fetched_at: 2026-05-19T09:44:04Z
category: funcs
title: wls
sha1: 4d27e8c08ca8d2b4b47378bb28c809225fff6ed9
---

# wls

## 语法

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

## 详情

返回对 *X* 和 *Y* 计算加权最小二乘回归的结果。

## 参数

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

## 返回值

取决于 *mode* 参数值。

## 例子

```dolphindb
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]
```

```dolphindb
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 |

```dolphindb
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
```

```dolphindb
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 |
