作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
Polyfit 是一个很好的工具,可以将一条线拟合到一组点上。然而,我的数据具有不同程度的统计显着性。
例如,对于一个点 (x1,y2) 我可能只有 10 个观测值,而对于另一个点 (x2,y2) 我可能有 10,000 个观测值。我通常至少有 10 个点,我想在使用 polyfit 时根据统计显着性对每个点进行加权。有什么方法(或类似的功能)可以做到这一点吗?
最佳答案
一种可能性是在 statsmodels
中使用加权最小二乘法
大致:
y 是响应或内生变量 (endog
)
x 是您的一维解释变量
w 你的权重数组,越高,那个观察的权重就越大
得到多项式矩阵,并拟合
import numpy as np
import statsmodels.api as sm
exog = np.vander(x, degree+1)
result = sm.WLS(y, exog, weight=w).fit()
参数在result.params
中。拟合值在 result.fittedvalues
预测在不同版本之间发生了变化。在 0.4 版本中,您可以使用
result.predict(np.vander(x_new, degree+1))
关于python - 具有不同统计显着性水平的数据的 numpy polyfit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8451681/
我是一名优秀的程序员,十分优秀!