gpt4 book ai didi

r - 如何使用 smooth.spline() 函数制作单调(增加)平滑样条?

转载 作者:行者123 更新时间:2023-12-03 19:52:44 25 4
gpt4 key购买 nike

我有严格增加的数据,并希望拟合一个单调增加的平滑样条曲线以及 smooth.spline()由于此功能的易用性,请尽可能使用该功能。

例如,我的数据可以通过示例有效地重现:

testx <- 1:100
testy <- abs(rnorm(length(testx)))^3
testy <- cumsum(testy)
plot(testx,testy)
sspl <- smooth.spline(testx,testy)
lines(sspl,col="blue")

这不一定在所有地方都在增加。有什么建议吗?

最佳答案

这不使用 smooth.spline()splinefun(..., method="hyman")将适合单调递增的样条,也易于使用。例如:

testx <- 1:100
testy <- abs(rnorm(length(testx)))^3
testy <- cumsum(testy)
plot(testx,testy)
sspl <- smooth.spline(testx,testy)
lines(sspl,col="blue")
tmp <- splinefun(x=testx, y=cumsum(testy), method="hyman")
lines(testx[-1], diff(tmp(testx)), col="red")

产生下图(红色是单调递增样条的值)
enter image description here

来自 splinefun 的帮助文件:“方法“海曼”使用海曼过滤的方法计算单调三次样条=“fmm”适合严格单调输入。(在R 2.15.2中添加。)”

关于r - 如何使用 smooth.spline() 函数制作单调(增加)平滑样条?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25447999/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com