作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在逐步提高 WLS regression functions 的参数使用统计模型。
我有一个 10x3 数据集 X,我声明如下:
X = np.array([[1,2,3],[1,2,3],[4,5,6],[1,2,3],[4,5,6],[1,2,3],[1,2,3],[4,5,6],[4,5,6],[1,2,3]])
这是我的数据集,我有一个 10x2 endog
向量,如下所示:
z =
[[ 3.90311860e-322 2.00000000e+000]
[ 0.00000000e+000 2.00000000e+000]
[ 0.00000000e+000 -2.00000000e+000]
[ 0.00000000e+000 2.00000000e+000]
[ 0.00000000e+000 -2.00000000e+000]
[ 0.00000000e+000 2.00000000e+000]
[ 0.00000000e+000 2.00000000e+000]
[ 0.00000000e+000 -2.00000000e+000]
[ 0.00000000e+000 -2.00000000e+000]
[ 0.00000000e+000 2.00000000e+000]]
现在导入import statsmodels.api as sm
后我这样做:
g = np.zeros([3, 2]) # g(x) is a function that will store the regression parameters
mod_wls = sm.WLS(z, X)
temp_g = mod_wls.fit()
print temp_g.params
我得到这个输出:
[[ -5.92878775e-323 -2.77777778e+000]
[ -4.94065646e-324 -4.44444444e-001]
[ 4.94065646e-323 1.88888889e+000]]
早些时候,来自the answer to this question ,我能够使用 numpy.dot
预测测试数据 X_test
的值,如下所示:
np.dot(X_test, temp_g.params)
我很容易理解,因为它是 endog 向量,y
是一个一维数组。但是,当我的 endog 矢量(在本例中为 z
)为 2D 时,它如何工作?当我尝试 1D 版本中使用的上述行时,出现以下错误:
self._check_integrity()
File "C:\Users\app\Anaconda\lib\site-packages\statsmodels\base\data.py", line 247, in _check_integrity
raise ValueError("endog and exog matrices are different sizes")
ValueError: endog and exog matrices are different sizes
最佳答案
np.dot(X_test, temp_g.params)
应该仍然有效。
在某些情况下,您需要检查矩阵的方向,有时需要转置
但是,预测
和大多数其他结果方法将不起作用,因为模型假设因变量 z 是一维。
问题又是你想做什么?
如果您想独立拟合 z 的列,则对其进行迭代,使每个 y 都是一维。
对于 z.T 中的 y:res = WLS(y, X).fit()
z.T
允许对列进行迭代。
在其他情况下,我们通常堆叠模型,使 y 为一维,其第一部分为 z[:,0]
,列的第二部分为 z[: ,1]
。设计矩阵或解释变量矩阵必须相应扩展。
statsmodels 正在为多变量因变量提供支持,但仍需要一些时间才能准备好。
关于python - 如何从 statsmodels 中 WLS 回归的 2D 参数获取测试预测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23369859/
我是一名优秀的程序员,十分优秀!