【问题标题】:loess predict with new x values黄土预测新的 x 值
【发布时间】:2012-10-01 02:02:40
【问题描述】:

我试图了解predict.loess 函数如何能够在点x 计算原始数据中不存在的新预测值 (y_hat)。例如(这是一个简单的例子,我意识到这种例子显然不需要黄土,但它说明了这一点):

x <- 1:10
y <- x^2
mdl <- loess(y ~ x)
predict(mdl, 1.5)
[1] 2.25

loess 回归通过在每个x 上使用多项式来工作,因此它在每个y 上创建一个预测的y_hat。但是,因为没有存储系数,所以这种情况下的“模型”只是用于预测每个 y_hat 的详细信息,例如 spandegree。当我做predict(mdl, 1.5) 时,predict 如何能够在这个新的x 上产生一个值?它是否在两个最近的现有x 值及其关联的y_hat 之间进行插值?如果是这样,它是如何做到这一点的背后的细节是什么?

我已在线阅读 cloess 文档,但无法找到它讨论此问题的位置。

【问题讨论】:

  • 插值、外插或两者兼而有之?我认为你的意思只是插值。
  • 这里是a link!我希望这会有所帮助。

标签: r regression smoothing loess


【解决方案1】:

我猜想对于 x 处的预测,predict.loess 对 x 附近的一些点进行回归,并计算 x 处的 y 值。

访问https://stats.stackexchange.com/questions/223469/how-does-a-loess-model-do-its-prediction

【讨论】:

    【解决方案2】:

    为了更好地了解黄土配合中发生的情况,请尝试运行 TeachingDemos 包中的 loess.demo 函数。这使您可以交互地单击图(甚至在点之间),然后它会显示预测中使用的点集及其权重以及该点的预测线/曲线。

    另请注意,loess 的默认设置是对黄土拟合进行第二次平滑/插值,因此您在拟合对象中看到的可能不是真正的黄土拟合信息,而是第二次平滑。

    【讨论】:

      【解决方案3】:

      在手册第 42 页找到答案:

      In this algorithm a set of points typically small in number is selected for direct    
      computation using the loess fitting method and a surface is evaluated using an interpolation
      method that is based on blending functions. The space of the factors is divided into
      rectangular cells using an algorithm based on k-d trees. The loess fit is evaluated at
      the cell vertices and then blending functions do the interpolation. The output data
      structure stores the k-d trees and the fits at the vertices. This information
      is used by predict() to carry out the interpolation.
      

      【讨论】:

      • 哪个手册?我正在尝试自己找到答案,并希望看到混合功能。
      • 我认为您引用了这份文件:netlib.org/a/cloess.pdf,这似乎是 William S. Cleveland、Eric Grosse 和 Ming-Jen Shyu 的论文或报告的附录。虽然我不确定引文,因为我没有找到主要文件,只是找到了附录。
      【解决方案4】:

      但是,由于没有存储系数,因此在这种情况下,“模型”只是用于预测每个 y_hat 的详细信息

      也许您已经使用print(mdl) 命令或简单地使用mdl 来查看模型mdl 包含的内容,但事实并非如此。模型真的很复杂,存储的参数也很多。

      要了解里面的内容,您可以使用unlist(mdl) 并查看其中的参数列表。

      这是描述其实际工作原理的命令手册的一部分:

      装配在本地完成。也就是说,对于点 x 处的拟合,使用 x 邻域中的点进行拟合,由它们与 x 的距离加权(在计算距离时忽略“参数”变量的差异)。邻域的大小由 α 控制(由 span 或 enp.target 设置)。对于 α 1,使用所有点,“最大距离”假定为 α^(1/p) 乘以 p 个解释变量的实际最大距离。

      对于默认族,通过(加权)最小二乘法进行拟合。为了 family="symmetric" M 估计过程的几次迭代 使用 Tukey 的双权重。请注意,由于初始值为 最小二乘拟合,这不一定是一个非常有抵抗力的拟合。

      我相信它试图在每个点的附近拟合一个多项式模型(而不仅仅是整个集合的单个多项式)。但是邻域并不意味着只有一个点之前和一个点之后,如果我正在实现这样一个函数,我会在离点 x 最近的点上放一个很大的权重,对远端点放低权重,并尝试拟合一个多项式适合最高的总重量。

      然后,如果应该预测高度的给定 x' 最接近点 x,我尝试使用拟合在点 x 的邻域上的多项式 - 比如说 P(x) - 并将其应用于 x' - 比如说P(x') - 这就是预测。

      如果您正在寻找特别的东西,请告诉我。

      【讨论】:

      • 感谢您的回答。但是,我的问题中描述了多项式回归背后的逻辑/数学。我试图了解如何计算中间点。一定是通过某种插值?
      • 谢谢,是的,这正是我在问题中所描述的。请注意:“点 x 处的拟合,使用 x 邻域中的点进行拟合”。问题是:x_1 和 x_2 之间会发生什么.. 例如,在数据集中不存在的 x_1 + epsilon
      • 还是加了两段。有不清楚的地方不要犹豫
      • 谢谢。但是,我认为我们相互误解了。假设有一个点 (y_1, x_1) 我们要计算 g(y)。我们使用所有点(在 x_1 和 y_1 的范围内)来计算 OLS 回归。我们对所有点 (x_1..x_n) 重复这个过程,因此有 g(y_1)...g(y_n)。但是,如果我们查看不在原始数据集中的点 x_1+epsilon 会发生什么?我们没有要查找的 g(y_1+epsilon)?
      • 如果每个点(比如 x_1+epsilon)都在数据集中,还有什么要预测的?另一点是我们不只有一个多项式 g(x),而是说 n 个多项式 g_1(x), g_2(x) ... g_n(x) 使得 g_i(x) 被创建为最适合(x_i, y_i) 附近的点。只需使用拟合多项式到数据集中可用的最近点(比如 x_1)来预测它(所以你的答案是 g_1(x_1 + epsilon)。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-24
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      相关资源
      最近更新 更多