代码之家  ›  专栏  ›  技术社区  ›  Gilles Cosyn

(三次)样条插值

  •  8
  • Gilles Cosyn  · 技术社区  · 10 年前

    我想对人口数据执行(三次)样条插值,以将年度数据“转换”为季度数据。我知道这样做有很多缺点,但我需要这样做。

    下面是我的代码示例(使用通用输入数据):

    #--------------spline interpolation
    
    x <- c(1973:2014)
    population <- seq(500000, 600000, length.out=42)
    list <- spline(x, population, n=4*length(x), method="fmm",
                  xmin=min(x), xmax=max(x), ties=mean)
    
    x_spline <- list$x
    pop_spline <- list$y
    

    我如何定义样条曲线是按“季度”计算的,换句话说,在1973.25、1973.5、1973.75、1974等。?对不起,我不是统计学专家:将年度数据“转换”为季度数据的最佳方法是什么:“fmm”、“自然”、“周期性”、“monoH.FC”或“hyman”?假设人口增长在一年中均匀分布。

    1 回复  |  直到 3 年前
        1
  •  12
  •   Colonel Beauvel    8 年前

    为什么不使用 splinefun :

    func = splinefun(x=x, y=population, method="fmm",  ties = mean)
    

    然后定义要预测的点:

    func(seq(1973, 2014, 0.25))