Weighted Least Squares (WLS)
Fit a Weighted Least Squares (WLS) regression of dependent_ticker on independent_tickers.
Also known as: weighted regression.
For more information about the method, see regression_model.get_wls.
No programming experience? With the Finance Toolkit MCP server, AI assistants such as Claude and ChatGPT can calculate the Weighted Least Squares (WLS) for you. Just ask in plain English.
Calculate the Weighted Least Squares (WLS) in Python
The Weighted Least Squares (WLS) is available in the Econometrics module of the open-source Finance Toolkit. Install it with:
pip install financetoolkit -U
Then call get_wls as shown below.
import pandas as pd
from financetoolkit import Toolkit
toolkit = Toolkit(["AAPL", "MSFT"], api_key="FINANCIAL_MODELING_PREP_KEY")
returns = toolkit.econometrics._get_price_column("weekly", "Return")
weights = pd.Series(1.0, index=returns.index)
# AAPL (the first ticker) is dependent, MSFT is independent
toolkit.econometrics.get_wls(weights, period="weekly")
Which returns:
| Coefficient | Std. Error | t-Statistic | P-Value | |
|---|---|---|---|---|
| Intercept | 0.0016 | 0.0024 | 0.6712 | 0.5031 |
| MSFT | 0.8681 | 0.0596 | 14.5659 | 0 |
Parameters
get_wls accepts the following parameters:
- weights (pd.Series): The (positive) weight of each observation, aligned to
the same period index as the return data (e.g.
1 / rolling_variance). - dependent_ticker (str | None, optional): The dependent (predicted) asset. Defaults to None, meaning the Toolkit instance’s first ticker.
- independent_tickers (str | list[str] | None, optional): The independent
(predictor) asset(s). Defaults to None, meaning every other ticker in
the Toolkit instance besides
dependent_ticker. - include_benchmark (bool, optional): Whether to include “Benchmark” in the default independent ticker(s) (has no effect when independent_tickers is given explicitly). Defaults to False.
- period (str, optional): The data frequency (daily, weekly, monthly, quarterly, or yearly). Defaults to “daily”.
- column (str, optional): The historical data column to regress on. Defaults to “Return”.
- add_constant (bool, optional): Whether to include an intercept. Defaults to True.
- cov_type (str, optional): Which covariance estimator to use, applied to the weighted/
transformed problem – see
get_ols’scov_typefor the full list of options. Defaults to “nonrobust”. - clusters (pd.Series | None, optional): The cluster label for each observation,
required when
cov_type="cluster". Defaults to None. - maxlags (int | None, optional): The maximum lag to include when estimating the
HAC (Newey-West) covariance matrix, required when
cov_type="HAC". Seeget_ols’smaxlagsfor the rule-of-thumb formula. Defaults to None. - rounding (int | None, optional): The number of decimals to round the results to. Defaults to None.
Related Regression
The Econometrics module page introduces the module, and the sidebar lists all of its functions.