【问题标题】:R Interpolate between Loess CurveR 黄土曲线之间的插值
【发布时间】:2019-03-19 02:49:25
【问题描述】:

黄土曲线已拟合以下数据:

library(tidyverse)
data <- tribble(~x, ~y,
    1,  0.254334545,
    2,  0.495754951,
    3,  0.711091409,
    4,  0.864910881,
    5,  0.941040554,
    6,  0.97463615,
    7,  0.989459747,
    8,  0.995969154,
    9,  0.998773181,
    10, 1)
x <- data$x
y <- data$y

lo <- loess(y~x)
plot(x,y)
xl <- seq(min(x),max(x), (max(x) - min(x))/1000)
lines(xl, predict(lo,xl), col='red', lwd=2)

如何提取平滑函数的值,y for x = c(1.5, 2.5, 3.5) 说?

谢谢。

【问题讨论】:

    标签: r interpolation loess


    【解决方案1】:

    您可以使用predict.loess 根据 LOESS 拟合进行预测

    # Fit LOESS model
    fit <- loess(y ~ x, data = data)
    
    # Predict y values for x = c(1.5, 2.5, 3.5)
    predict(fit, data.frame(x = c(1.5, 2.5, 3.5)))
    #        1         2         3
    #0.3849209 0.6154395 0.7926339
    

    或者返回data.frame

    df <- data.frame(x = c(1.5, 2.5, 3.5))
    transform(df, y.pred = predict(fit, df))
    #    x    y.pred
    #1 1.5 0.3849209
    #2 2.5 0.6154395
    #3 3.5 0.7926339
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 2013-11-07
      • 2022-01-23
      • 2014-06-23
      相关资源
      最近更新 更多