- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想对一些数据进行平滑样条拟合,我注意到内部计算的 LOOCV 误差似乎取决于数据是否无序。具体来说,我只在订购数据时得到预期的结果。
我不明白为什么会出现这种情况?有帮助吗?
set.seed(0)
x <- seq(1:10)
y <- x^2 + rnorm(10,0,2)
fit.ss <- smooth.spline(x=x, y=y, cv=TRUE)
cat("CV ordered: ",format(fit.ss$cv.crit))
# CV ordered: 13.46173
xu <- sample(x)
yu <- y[xu]
fit.ss.u <- smooth.spline(x=xu, y=yu, cv=TRUE)
cat("CV unorderd: ",format(fit.ss.u$cv.crit))
# CV unorderd: 65552.74
spar.opt <- fit.ss$spar
preds <- rep(NA, 10)
for (i in 1:10){
ss <- smooth.spline(x=x[-i], y=y[-i], cv=TRUE, spar=spar.opt)
preds[i] <- predict(ss,x=x[i])$y
}
cat("CV manual: ",format(mean((preds - y)**2)))
# CV manual: 13.49424
订购的 CV 和 CV 手册(几乎)相同并且符合预期,而未订购的版本则完全不同。
请注意,这是 https://stats.stackexchange.com/q/561802/213798 的副本,我似乎没有得到任何输入。
最佳答案
看起来像 smooth.spline
中的错误。当它在内部计算 cv.crit
时,它会将原始顺序的观察值与按 x
顺序的预测值进行比较。 (我不确定确切的区别是什么,但大概是某种“留一”计算。)
代码如下:
cv.crit <-
if(is.na(cv)) NA
else {
r <- y - fit$ty[ox]
if(cv) {
ww <- wbar
ww[ww == 0] <- 1
r <- r / (1 - (lev[ox] * w)/ww[ox])
if(no.wgts) mean(r^2) else weighted.mean(r^2, w)
} else
(if(no.wgts) mean(r^2) else weighted.mean(r^2, w)) /
(1 - (df.offset + penalty * df)/n)^2
}
在第 4 行,事情看起来不对劲。在这一点上,你的未分类数据,我明白了
Browse[2]> y
[1] 47.142866 80.988466 104.809307 25.829283 63.410559 3.525909 32.920100 3.347533 18.544859 11.659599
和
Browse[2]> fit$ty[ox]
[1] 2.458502 5.274807 11.019719 17.995820 25.281214 34.165585 46.918576 63.054358 82.093996 103.915902
所以看起来 fit$ty[ox]
是基于有序的 x
值,而 y
是原始顺序。
不幸的是,更正并不明显:此时 ox
为 TRUE
,因此它没有做任何事情。他们真正需要做的是按照与 fit$ty
排序相同的方式对 y
进行排序。但其他地方可能还有其他问题,因为当我尝试这样做时,这还不足以解决问题。
关于R: smooth.spline LOOCV-error 取决于数据点的顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70867146/
我有几个数据点似乎适合于通过它们拟合样条曲线。当我这样做时,我得到了一个非常坎bump的拟合,例如过度拟合,这不是我所理解的平滑。 是否有特殊的选项/参数来恢复像here这样的非常平滑的样条曲线的功能
在生产环境中运行 Angular 6 时出现此错误。 91%额外的 Assets 处理脚本-webpack-plugin✖「wdm」: Error: ENOENT: no such file or d
张力与三次样条插值有何关系?我指的是this article用于三次样条插值。第一个结点的张力系数 t=0,最后一个结点的张力系数 t=1。但是我们可以在哪里替换三次样条中的其他张力值,例如 0.1、
我是 R 的新手,我正在尝试将 smooth.spline() 应用于大型数据帧。我查看了相关线程(“将 n 个函数的列表应用于数据帧的每一行”,“如何应用样条基矩阵”,...)。这是我的数据框以及我
我知道平滑参数(lambda)对于拟合平滑样条曲线非常重要,但是我在这里没有看到有关如何选择合理的lambda(spar =?)的任何文章,有人告诉我spar通常在0到1的范围内。当使用smooth.
我需要一个插值函数来插值一个点: var times = new List(); var offsets = new List(); .. .. ..//I fill times and offset
我尝试了几种不同的开箱即用选项来平滑我的数据中的一个步骤,但还没有完全找到我所追求的。在下面粘贴一个小的可复制示例。正如下面的屏幕截图中突出显示的,是否有一个 R 函数可以平滑步骤,类似于 smoot
我使用smooth.spline来估计我的数据的三次样条。但是当我使用方程计算 90% 逐点置信区间时,结果似乎有点偏差。有人可以告诉我我是否做错了吗?我只是想知道是否有一个函数可以自动计算与 smo
我想对一些数据进行平滑样条拟合,我注意到内部计算的 LOOCV 误差似乎取决于数据是否无序。具体来说,我只在订购数据时得到预期的结果。 我不明白为什么会出现这种情况?有帮助吗? set.seed(0)
我正在尝试在 Windows 中安装 Apache Spline。我的 Spark 版本是 2.4.0Scala 版本为 2.12.0我按照这里提到的步骤 https://absaoss.github
我正在准备一些代码来用样条插入一系列点。 有many kinds样条:二次,三次,许多边界条件...... 到目前为止,我已经尝试了最流行的:三次样条,边界条件: 自然:二阶导数在第一点和最后点为零。
下图中,Matlab中使用spap2函数来平滑噪声数据。结果非常好。 Eigen 库支持此功能 Splines 。我正在寻找 Eigen 中的示例以获得类似的结果。对于 Matlab,我使用了 spa
我想在 R 中平滑非常长、嘈杂的数据。但我发现对于高度周期性的数据,开箱即用的 smooth.spline() 很快就会崩溃,平滑后的数据开始出现振铃现象。 考虑一个余弦时间序列(有或没有噪声) t
我对它们之间的关系有点困惑。在我的课上,我的教授询问如何使用自动计算的切线将 C1 连续分段 Hermite 曲线拟合到 x 个点。有人可以解释这是如何工作的吗? 最佳答案 埃尔米特样条是 的一种方法
我找到了 2012 年 Android API 的 Spline 实现: https://android.googlesource.com/platform/frameworks/base/+/mas
我有一个效果很好的 highcharts 样条图。我改变了一些 ajax 调用,现在它不会绘制连接前 30 个左右点的线。它只是绘制点一段时间,然后线条就出现了。我更关心线条而不是点。 有谁知道为什么
我想在我的屏幕上生成一个随机样条。这是我目前所拥有的: public class CurvedPath { Random rn; CatmullRomSpline curve; float[] xPt
我有严格增加的数据,并希望拟合一个单调增加的平滑样条曲线以及 smooth.spline()由于此功能的易用性,请尽可能使用该功能。 例如,我的数据可以通过示例有效地重现: testx <- 1:10
有没有办法计算在 R 中具有平滑样条曲线(或类似曲线)的特定点的曲率? 该曲线是根据一组 x,y 点计算的。 先感谢您。 最佳答案 如果您知道有一个 predict(),这实际上很容易。 smooth
我有一个月度图表(在 highcharts 中制作),其中有两个 SPLINE 系列。我想为图表中的系列添加随机文本(基于系列的随机位置),我怎样才能实现这一点。 我希望它看起来像这样。 最佳答案 您
我是一名优秀的程序员,十分优秀!