【问题标题】:PyQt-Fit's NonParamRegression vs. R's loessPyQt-Fit 的 NonParamRegression 与 R 的 loess
【发布时间】:2018-03-16 15:28:42
【问题描述】:

这两个函数或多或少是等价的?例如,如果我有一个 R 调用,例如:

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

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

更新

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

【问题讨论】:

    标签: r python-3.x loess


    【解决方案1】:

    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指的是bandwidth。注意fracit是任意设置的。另外,这里没有指定所有参数,有的设置为默认值,更多请查看官方文档):

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

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

    例如,如果您想构建残差,可以按以下步骤进行:

    res = y - results[:,1]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-07
      • 1970-01-01
      • 2020-11-15
      • 2015-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多