问题标签 [loess]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - LOESS回归置信区间的解释
我有一个看起来像这样的数据框:
为了识别数据中的信号,我决定应用一个简单的loess
平滑:
结果(包括置信区间)如下所示:
例如,我看到第 3 天的值比第 5 天更高,但这种差异显着吗?我应该比较每天的置信区间(在这种情况下,重叠),还是应该基于黄土曲线与 CI 的解释(例如,在第 3 天,曲线在第 5 天的置信区间之外)?
r - 将 LOESS 过滤器/回归应用于我的数据框的所有列
我有一个包含 100 列数值的数据框,其中每一列是第一列的不同循环移位。我需要在这些列上一一放置一个 LOESS 过滤器。在我的上下文中,协变量很简单,只是 index 1, 2, 3, ..., <number of rows>
。
如何在新数据框中获得平滑值?谢谢!
r - r loess:全局“参数”项的系数
有没有办法在局部回归建模中提取全局拟合项的系数?
也许我确实误解了全局拟合项在函数 loess 中的作用,但我想要的是以下内容:
拟合完成得很完美,但是,如何提取全局拟合项的估计值x_1
(即上面示例中接近 0.25 的某个值)?
r - [R]: loess fit 的 Bootstrap 置信区间与 ggplot 的默认 CI 不匹配。为什么?
我尝试使用手动创建的引导程序构建黄土拟合的置信区间。但是,我得到的置信区间比默认情况下返回的一个 ggplot 窄得多。有人知道不匹配的原因吗?
这是我的data.frame:
这里是我尝试构建引导程序的脚本:
然后我绘制了 ggplot 默认 CI(灰色区域)和自举 CI 的上下边界(作为点):
有人知道这种不匹配的原因吗?我做错了什么?
PS:如果你想知道为什么我手动编写这个,尽管有可用的引导函数。我这样做是为了在下一步中为黄土拟合的一阶导数创建一个 CI。因此,当这可行时,我将对每个拟合进行数值区分,然后平均取 97.5% 和 2.5% 的百分位数来获得黄土拟合的一阶导数的 CI。
编辑:我现在正在使用 Roland 建议的分位数功能。但是我不知道如何使用引导功能。这是我尝试过的:
在 aosmith 注意到它丢失后,我还添加了 return 命令。
正如 aosmith 正确指出的那样,我的函数实际上没有被使用,因为我没有将它分配给任何东西。多么菜鸟的错误。我还将返回函数放在不同的位置。在这里你可以看到它仍然不能很好地匹配它,但是它要好得多,我想可以接受。
谢谢@aosmith
r - 与 R 中的 span 相关的 LOESS 警告/错误
我在 R 中运行 LOESS 回归,并遇到了一些较小数据集的警告。
警告信息:
1: 在 simpleLoess(y, x, w, span, degree = degree, parametric = parametric, : 在 -2703.9 处使用的伪逆
2:在 simpleLoess(y, x, w, span, degree = degree, parametric = parametric, : 邻域半径 796.09
3:在 simpleLoess(y, x, w, span, degree = degree, parametric = parametric, : 倒数条件数 0
4: 在 simpleLoess(y, x, w, span, degree = degree, parametric = parametric, : 还有其他近奇点。6.1623e+005
这些错误在这里的另一篇文章中讨论: 了解 R 中的黄土错误。
这些警告似乎与为 LOESS 回归设置的跨度有关。我正在尝试应用与其他数据集类似的方法,其中可接受的平滑跨度的参数在 0.3 和 0.6 之间。在某些情况下,我可以调整跨度以避免这些问题,但在其他数据集中,必须将跨度增加到超出可接受的水平以避免错误/警告。
我很好奇这些警告的具体含义,以及这是否是回归可用的情况,但应该注意这些警告发生了,或者回归是否完全无效。
以下是有问题的数据集的示例:
这是没有换行符的数据
这是我正在使用的代码:
感谢您的帮助,如果需要任何其他信息,请告诉我。
r - 黄土的抖动效应
我问了一个关于 LOESS 错误和警告的先前问题:LOESS warnings/errors related to span in R。该问题与尝试对我的数据集运行 LOESS 回归时发生的此类警告有关。
警告信息:
1: 在 simpleLoess(y, x, w, span, degree = degree, parametric = parametric, : 在 -2703.9 处使用的伪逆
2:在 simpleLoess(y, x, w, span, degree = degree, parametric = parametric, : 邻域半径 796.09
3:在 simpleLoess(y, x, w, span, degree = degree, parametric = parametric, : 倒数条件数 0
4: 在 simpleLoess(y, x, w, span, degree = degree, parametric = parametric, : 还有其他近奇点。6.1623e+005
关于警告的问题已得到解答,建议我添加一些抖动以避免由于 x 轴具有一些重复相对大量次的值而导致黄土算法发现数值困难的问题。
在运行 LOESS 回归时,抖动数据避免了之前的错误和警告,但线的结果在某一点上有很大的不同。无论抖动多么小,结果仍然与非抖动结果不同。
以下是有问题的数据集的示例:
这是没有换行符的数据
这是我正在使用的代码:
第一张图像没有抖动
在下一张图中,我以蓝色运行原始数据,并以红色运行使用默认抖动因子的抖动版本。这让我想知道哪条回归线更有效。非抖动线看起来更适合眼睛,但改变抖动因子似乎对回归线影响很小的事实让我认为抖动和非抖动回归之间存在显着差异跑。我试图弄清楚这里到底发生了什么。
遵循 Hack-R 的示例答案,结果如下:
但是,使用相同的代码删除非抖动版本会导致这种情况。
在响应 Hack-R 的示例代码时,我注意到非抖动版本没有出现与我的初始代码相同的原始错误/警告。我通过 Hack-R 运行示例代码,然后添加我的原始代码以获得这些结果。
最后添加原始代码的 Hack-R 代码:
对于事情在哪里出错,我仍然有点茫然,但我怀疑提供的抖动和非抖动解决方案实际上并未将抖动样本与原始数据进行比较。
谢谢您的帮助。
更新
查看抖动和非抖动的代码,我注意到只运行了一条 LOESS 线,并且只运行了 LOESS 线上的一组预测值。这两个似乎都引用了原始值。如果情况完全如此,我不明白为什么不会出现与原始回归相同的警告。为了确保逐行所做的事情是清楚的,我列出了下面的代码以及我自己对我认为正在发生的事情的评论。我确定我在这里遗漏了一些东西。
我已经尝试过多次运行代码。我发现通过控制抖动因子,我通常可以使抖动回归接近非抖动回归。我发现有时,即使数据点抖动,我也会遇到一些与抖动数据之前相同的错误。我有一种感觉,这可能与在特定情况下这些点的抖动方式有关。抖动有时可能会将点移动得足够远以避免警告,而其他时候抖动不会将点移得足够远。作为一个随机因素,这似乎很难控制。我将尝试不断增加抖动因子,以查看是否存在不会发生此错误的点,而不会将这些点移动得太远而不会显着影响线条。我稍后会更新。
r - loess() 函数的预测
我试图只预测两个值,模型是
但它通过使用两个预测变量的所有存在值来估计模型 m1
mtcars$cyl 和 mtcars$disp,我只想估计 mtcars$mpg 的一个值。
我试过了
但它给了我以下警告消息:'newdata' has 2 rows but variables found have 32 rows
感谢你的帮助
r - ggplot2 geom_smooth中黄土的基本设置是什么?
编辑:
ggplot2
我用和 函数创建了以下图形geom_smooth()
。我使用了代码:
我的数据包含变量 x(只有 9 个值)和 y(公制)。现在我想添加loess
使用代码计算的方法的投影点:
现在我将这些投影点添加到我的情节中。
为什么蓝色点不在ggplot中的蓝色黄土线上?-method使用的代码是否与Rloess
中的标准 -function 不同loess
?
信息:对于超过 8.000 次观察的原始数据,没有伪逆警告,但问题是一样的。
r - 如何找到在什么时间速率等于某个值?
我有以下数据集:
rate1 是一个与时间相关的函数,在几天内趋向于接近 40 的值。
我想知道 rate1 在什么日期等于 40。
做我需要的一种可能性是密集填充 rate1 并减去我的目标值 (40)。一个点越接近零,它就越接近目标值。并包括一个小的“噪声”缓冲区,接受零范围内的所有点。
如何估计 R 中 rate1 的时间值等于 40?另外请建议R中是否有比我使用的更合适的方法?欢迎所有建议。