用na.approx插值:它是如何做到的?

时间:2011-02-06 20:13:35

标签: r interpolation zoo

我正在对就业数据做一些轻微的抑制,我在动物园包中偶然发现了na.approx方法。这些数据代表了政府总就业人数的百分比,我估计粗略估计是要考察州和地方政府之间的变化趋势。他们应该添加一个。

        State % Local %
2001    na  na
2002    na  na
2003    na  na
2004    0.118147539 0.881852461
2005    0.114500321 0.885499679
2006    0.117247083 0.882752917
2007    0.116841331 0.883158669

我使用样条设置,允许估计前导na的

z <- zoo(DF2,1:7)    
d<-na.spline(z,na.rm=FALSE,maxgap=Inf)

给出了输出:

State % Local %
0.262918013 0.737081987
0.182809891 0.817190109
0.137735231 0.862264769
0.118147539 0.881852461
0.114500321 0.885499679
0.117247083 0.882752917
0.116841331 0.883158669

很好吗?令我惊讶的部分是,近似的na值总和为1(这是我想要的,但意外!)但na.approx的文档说它分别按列进行每列。我错过了什么吗?我的钱是误读了文档

1 个答案:

答案 0 :(得分:2)

我相信这只是线性最小二乘的机会属性。由于系列之和等于1的约束,两个回归的斜率总和为零;拦截总和为一。因此,任何时间点的两个回归的拟合值总和为1。

编辑:更多解释。
y1 = a + beta * t + epsilon
y2 = 1-y1 =(1-a)+( - β)* t-epsilon
因此,运行OLS会使截距总和为1,并且斜率为零。