PyQt-Fit的NonParamRegression与R的黄土

时间:2018-03-16 15:28:43

标签: r python-3.x loess

这两个功能或多或少相同吗?例如,如果我有一个R调用,如:

loess(formula = myformula, data = mydata, span = myspan, degree = 2, normalize = TRUE, family = "gaussian")

如何使用PyQt-Fit获得相同或相似的结果?我应该只使用smooth.NonParamRegression调用method=npr_methods.LocalPolynomialKernel(q=2)函数(http://pythonhosted.org/PyQt-Fit/NonParam_tut.html)吗?其他参数怎么样,例如spanfamily

更新

我确实意识到这两种实现可能不相同(https://www.statsdirect.com/help/nonparametric_methods/loess.htm)。但是,任何有关“近似”其结果的评论都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

Statsmodels 具有LOWESS实现 (http://www.statsmodels.org/devel/generated/statsmodels.nonparametric.smoothers_lowess.lowess.html)。

查看有关LOESS和LOWESS之间的区别的帖子:https://stats.stackexchange.com/questions/161069/difference-between-loess-and-lowess

有关如何在Python中使用 statsmodels的 lowess函数的快速示例

import numpy as np
import statsmodels.api as sm

lowess = sm.nonparametric.lowess

生成两个随机数组x和y:

x = np.random.rand(100, 1)
y = np.random.rand(100, 1)

运行lowess函数( Frac 是指带宽。请注意, frac it 是任意设置的。另外,此处未指定所有参数,有些参数设置为默认值。有关更多信息,请参见官方文档):

results = lowess(y, x, frac=0.05, it=3)

结果存储在二维数组中。第一列包含排序后的x(exog)值,第二列包含相关的估计y(endog)值。

例如,如果您要构造残差,则可以按以下步骤进行操作:

res = y - results[:,1]