通过所有数据点+预测值的平滑样条

问题描述 投票:0回答:1

我正在尝试创建平滑样条线(可能是自然样条线),以在 7 个数据点之间获得更平滑的曲线。我觉得解决方案很简单,但仍然无法理解它。

这是我的数据:`

structure(list(time = c(7269, 21935, 43200, 86400, 172800, 259200, 
518400), speed = c(5.804787454, 4.558924, 3.88888889, 3.21296296, 
2.44675926, 1.9437728, 1.88)), row.names = c(NA, -7L), class = c("tbl_df", 
"tbl", "data.frame"))

这就是点之间有直线的样子。如何将数据拟合到仍然穿过所有数据点的更平滑的曲线?

实际上,我可以用

xspline
创建更平滑的曲线。但是,这并不像使用
predict
来获取给定 x 的 y 值那么容易。但也许这仍然是要走的路?

r ggplot2 spline
1个回答
1
投票
library(splines)
s <- interpSpline(speed ~ time, dd)
predict(s, x = seq(min(dd$time), max(dd$time), length.out = 101)
© www.soinside.com 2019 - 2024. All rights reserved.