这两个功能或多或少相同吗?例如,如果我有一个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)吗?其他参数怎么样,例如span
和family
?
更新
我确实意识到这两种实现可能不相同(https://www.statsdirect.com/help/nonparametric_methods/loess.htm)。但是,任何有关“近似”其结果的评论都会受到赞赏。
答案 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]