【发布时间】:2023-04-07 17:01:01
【问题描述】:
我有 10 个有关降水的气候站数据,它是 DEM。
我做了一个线性回归:
DEM = [200, 300, 400, 500, 600, 300, 200, 100, 50, 200]
Prep = [50, 95, 50, 59, 99, 50, 23, 10, 10, 60]
X = DEM #independent variable
Y = Prep #dependent variable
slope, intercept, r_value, p_value, std_err = stats.linregress(x,y)
但现在我想增加这些电台的权重,例如:
Weight = [0.3, 0.1, 0.1, 0.1, 0.2, 0.05, 0.05, 0.05, 0.05, 0.05]
我找到了加权最小二乘法来做这件事,但我想知道它是如何以及为什么起作用的,或者它是否有误。
import numpy as np
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=range(1, 8))
results = wls_model.fit()
results.params
【问题讨论】:
-
如果您想知道加权最小二乘法是如何(以及为什么)工作的,那么最好上一门统计学课程:SO 并不是真正适合这类问题的地方。
-
您需要考虑的一件事是权重代表什么:如果它们是错误(标准偏差),则权重应该是方差的倒数(1 / 错误**2)。你在这里给出的例子,
weights=range(1, 8)
,看起来很不切实际,因为这意味着错误随着X
的增加而减少。 -
感谢您的重播,这很有帮助。
标签:
python
linear-regression
least-squares
weighted
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何在python中对站进行加权以订购最小二乘? - Python技术站