statsmodels.regression.linear_model.WLS¶
-
class statsmodels.regression.linear_model.WLS(endog, exog, weights=
1.0, missing='none', hasconst=None, **kwargs)[source]¶ 加权最小二乘法
权重被假定为(与)观测值方差的倒数成比例。也就是说,如果变量要通过 1/sqrt(W) 进行变换,你必须提供 weights = 1/W。
- Parameters:¶
- endogarray_like
一个一维的内生响应变量。因变量。
- exogarray_like
一个 nobs x k 的数组,其中 nobs 是观测值的数量,k 是回归变量的数量。默认情况下不包含截距,应由用户添加。请参阅
statsmodels.tools.add_constant。- weightsarray_like,
optional 一维权重数组。 如果你提供 1/W,那么变量会预乘以 1/sqrt(W)。 如果没有提供权重,默认值为 1,WLS 结果与 OLS 相同。
- missing
str 可用的选项是‘none’、‘drop’和‘raise’。如果选择‘none’,则不进行nan检查。如果选择‘drop’,则会删除任何包含nan的观测值。如果选择‘raise’,则会引发错误。默认值是‘none’。
- hasconst
Noneor bool 指示RHS是否包含用户提供的常数。如果为True,则不检查常数,k_constant设置为1,所有结果统计量都计算为存在常数。如果为False,则不检查常数,k_constant设置为0。
- **kwargs
在使用公式接口时,用于设置模型属性的额外参数。
- Attributes:¶
- weights
ndarray 作为参数提供的存储权重。
- weights
注释
如果权重是数据的函数,那么诸如fvalue和mse_model等后估计统计数据可能不正确,因为该包尚不支持无常数回归。
示例
>>> import statsmodels.api as sm >>> Y = [1,3,4,5,2,3,4] >>> X = range(1,8) >>> X = sm.add_constant(X) >>> wls_model = sm.WLS(Y,X, weights=list(range(1,8))) >>> results = wls_model.fit() >>> results.params array([ 2.91666667, 0.0952381 ]) >>> results.tvalues array([ 2.0652652 , 0.35684428]) >>> print(results.t_test([1, 0])) <T test: effect=array([ 2.91666667]), sd=array([[ 1.41224801]]), t=array([[ 2.0652652]]), p=array([[ 0.04690139]]), df_denom=5> >>> print(results.f_test([0, 1])) <F test: F=array([[ 0.12733784]]), p=[[ 0.73577409]], df_denom=5, df_num=1>方法
fit([method, cov_type, cov_kwds, use_t])模型的完整拟合。
fit_regularized([method, alpha, L1_wt, ...])返回一个正则化的线性回归模型的拟合结果。
from_formula(formula, data[, subset, drop_cols])从公式和数据框创建模型。
get_distribution(params, scale[, exog, ...])构建预测分布的随机数生成器。
hessian(params)模型的海森矩阵。
hessian_factor(params[, scale, observed])计算用于计算Hessian的权重。
information(params)模型的费舍尔信息矩阵。
初始化模型组件。
loglike(params)计算高斯对数似然函数在参数params处的值。
predict(params[, exog])从设计矩阵返回线性预测值。
score(params)模型的得分向量。
whiten(x)WLS模型的白化器,将每一列乘以sqrt(self.weights)。
属性
模型的自由度。
残余自由度。
内生变量的名称。
外生变量的名称。