我正在使用Python的statsmodel来执行加权线性回归。由于这是我第一次使用这个模块,我进行了一些基本的测试。
这样做,我发现参数的估计误差(即不确定性)与重量无关。
这不符合我天真的期望(较大的误差条会产生更不确定的结果),或者我在非线性拟合中看到的定义,通常使用加权 Hessian来报告参数的不确定性。
我找不到参数错误计算的明确描述(在statsmodels文档或支持页面中)。在此发布以查看是否有人有此经验(以及未来的搜索者)。
最小代码:
import numpy as np
import statsmodels.api as sm
escale = 1
xvals = np.arange(1,11)
yvals = xvals**2 # dummy nonlinear y-data
evals = escale*np.sqrt(yvals) # errorbars
X = sm.add_constant(xvals) # to get intercept term
model = sm.WLS(yvals, X, 1.0/evals**2) # weight inverse to error
result = model.fit()
print "escale = ", escale
print "fit = ", result.params
print "err = ", result.bse # same value independent of escale
这是statsmodels或PEBKAC中的数字错误(即,这是正确的行为,我的期望是错误的)?