如何填写excel时间序列中的缺失数据

时间:2013-01-29 16:36:25

标签: excel matlab time-series missing-data

我需要解决这个问题:在Excel工作簿中,我报告了10个时间序列(每月频率)10个标题应该涵盖过去15年。不幸的是,并非所有的游戏都可以涵盖15年的时间序列。例如,标题只能达到2003年;因此,在该标题的列中,我有前5年的“不可用”而不是值。一旦我将数据导入Matlab,显然,在标题的列中,较短的系列会出现NaN,其中没有值。

>> Prices = xlsread('PrezziTitoli.xls');

>> whos
Name   Size   Bytes  Class   Attributes    
Prices 182x10 6360   double

我的目标是估计方差 - 协方差矩阵,但是,由于缺乏数据,我无法进行计算。在计算方差 - 协方差矩阵之前,我想到插值来覆盖Matlab返回NaN的值,例如“填充”,但是在使用中有困难。

有些代码对我有用吗?你能救我吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

您是否安装了统计工具箱?在这种情况下,解决方案很简单:

>> x = randn(10,4);         // x is a 10x4 matrix of random numbers
>> x(randi(40,10,1)) = NaN; // set some random entries to NaN
>> disp(x)
   -1.1480       NaN   -2.1384    2.9080
    0.1049   -0.8880       NaN    0.8252
    0.7223    0.1001    1.3546    1.3790
    2.5855   -0.5445       NaN   -1.0582
   -0.6669       NaN       NaN       NaN
       NaN   -0.6003    0.1240   -0.2725
   -0.0825    0.4900    1.4367    1.0984
   -1.9330    0.7394   -1.9609   -0.2779
   -0.4390    1.7119   -0.1977    0.7015
   -1.7947   -0.1941   -1.2078   -2.0518
>> nancov(x)                // Compute covariances after removing all NaN rows
    1.2977    0.0520    1.6248    1.3540
    0.0520    0.5359   -0.0967    0.3966
    1.6248   -0.0967    2.2940    1.6071
    1.3540    0.3966    1.6071    1.9358
>> nancov(x, 'pairwise')    // Compute covariances pairwise, ignoring NaNs
    1.9195   -0.5221    1.4491   -0.0424
   -0.5221    0.7325   -0.1240    0.2917
    1.4491   -0.1240    2.1454    0.2279
   -0.0424    0.2917    0.2279    2.1305

如果你没有统计工具箱,我们需要更加思考 - 让我知道!