首页 文章

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

提问于
浏览
0

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

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

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

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

有些代码对我有用吗?你能帮助我吗?

谢谢!

1 回答

  • 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
    

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

相关问题