我想对人口数据执行(三次)样条插值,以便"转换"年度数据到季度数据。我知道有相当多的缺陷,但我需要这样做。
以下是我的代码示例(使用通用输入数据):
#--------------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等?很抱歉没有成为统计专家:什么是最好的方法?#34;转换"年度数据到季度数据:" fmm","自然","周期"," monoH.FC"或" hyman"?假设人口增长在一年中均匀分布。
致以最诚挚的问候和许多感谢!
答案 0 :(得分:10)
为什么不使用splinefun
:
func = splinefun(x=x, y=population, method="fmm", ties = mean)
然后定义要预测的点:
func(seq(1973, 2014, 0.25))