【问题标题】:How to fill missing data in excel time series如何在excel时间序列中填充缺失的数据
【发布时间】:2013-01-13 07:17:44
【问题描述】:

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

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

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

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

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

谢谢!

【问题讨论】:

    标签: excel matlab time-series missing-data


    【解决方案1】:

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

    >> 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
    

    如果您没有统计工具箱,我们需要更加努力地思考 - 请告诉我!

    【讨论】:

    • 嗨,是的,我有统计工具箱,你的建议实际上是个好主意。问题是我还需要计算对数返回的平均值。事实上,在我之前提到的价格矩阵中:logReturns = log (Prices (2: end, :)./Prices (1: end-1, :));然后,在那些 logRendimenti 上,我使用了您的建议 SigmaMissingValue = nancov (logReturns, 'pairwise')。到目前为止,一切都很好。关键是,如果我想计算均值(logReturns),以了解预期回报,则不可能排除 NaN。
    猜你喜欢
    • 2015-12-03
    • 2019-05-16
    • 2019-06-09
    • 1970-01-01
    • 2011-04-03
    • 2015-11-21
    • 1970-01-01
    • 2020-03-19
    • 1970-01-01
    相关资源
    最近更新 更多