与具有不同统计显著性水平的数据相匹配

2024-06-16 12:32:37 发布

您现在位置:Python中文网/ 问答频道 /正文

Polyfit是一个很好的工具来拟合一条线到一组点。然而,我的数据具有不同程度的统计意义。在

例如,对于一个点(x1,y2),我可能只有10个观测值,而对于另一个点(x2,y2),我可能有10000个观测值。我通常至少有10个点,我想在使用polyfit时根据统计显著性对每个点进行加权。有没有什么方法(或类似的功能)可以做到这一点?在


Tags: 工具数据方法功能意义x1x2显著性
3条回答

更直接:

import numpy as np
result = np.polynomial.polynomial.polyfit(x,y,deg,w=weight of each observation)

我不知道numpy,但是你可以写你自己的polyfit函数。Polyfit就是解线性方程。在

http://en.wikipedia.org/wiki/Polynomial_regression#Matrix_form_and_calculation_of_estimates
(在您的例子中,epsilon可能是0)

您可以看到,您只需将y中的每一行和x中的每一行乘以您的系数。
这应该是10行代码(我记得我花了4小时才重新发明了minsquare方程,但在MATLAB中只有2行代码)

一种可能性是在^{}中使用加权最小二乘法

大致:

y是响应或内生变量(endog

x是你的一维解释变量

在你的权重数组中,这个观察值的权重越高

得到多项式矩阵,并拟合

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,您可以使用

^{pr2}$

相关问题 更多 >