computing montly averages when time series observations are irregural
    10 views (last 30 days)
  
       Show older comments
    
 Dear all,
I have the following problem
Let
A ={
'02/11/08'    [0.2150]    [429.5674]    [    100]    [2.2678e+04]
   '30/11/08'    [0.2117]    [463.1360]    [    100]    [2.4383e+04]
    '28/12/08'    [0.2209]    [436.6316]    [    100]    [2.3148e+04]
    '25/01/09'    [0.2212]    [441.5430]    [    100]    [2.2987e+04]
    '22/02/09'    [0.2201]    [453.7015]    [    100]    [2.3675e+04]
    '22/03/09'    [0.2185]    [461.3925]    [    100]    [2.3680e+04]
    '19/04/09'    [0.2104]    [486.4095]    [    100]    [2.5367e+04]
    '17/05/09'    [0.2162]    [451.4833]    [    100]    [2.3986e+04]
    '14/06/09'    [0.2158]    [475.8620]    [    100]    [2.4245e+04]
    '12/07/09'    [0.2211]    [449.4574]    [    100]    [2.2766e+04]
    '09/08/09'    [0.2221]    [456.2507]    [    100]    [2.2523e+04]
    '06/09/09'    [0.2175]    [472.2659]    [    100]    [2.3593e+04]
    '04/10/09'    [0.2182]    [479.3408]    [    100]    [2.4359e+04]
    '01/11/09'    [0.2286]    [442.6719]    [    100]    [2.1490e+04]
    '29/11/09'    [0.2211]    [481.4548]    [    100]    [2.4054e+04]
    '27/12/09'    [0.2259]    [468.2757]    [    100]    [2.3037e+04]
    '31/01/10'    [0.2300]    [461.5581]    [    100]    [2.2050e+04]
    '28/02/10'    [0.2259]    [487.6257]    [    100]    [2.3293e+04]
    '28/03/10'    [0.2200]    [529.8777]    [    100]    [2.5493e+04]
    '25/04/10'    [0.2315]    [433.3039]    [    100]    [2.0387e+04]
    '23/05/10'    [0.2274]    [500.8603]    [    100]    [2.4019e+04]
}
As you can see from the first column I have irregular time series observations. Each observation can represent a 4-week or a 5-week or a 6-week average. For example the observation [0.2117] which is the second value of the second column is the average of the values that have been recorded between ‘03/11/08' and '30/11/08' In order to be able to analyze econometrically these data and run my regressions I need to obtain regular time series observations. So I need to convert these values to monthly averages and have something like
Let A ={
'11/08'     [mon. average]     [mon. average]    [mon. average] 
  '12/08' [mon. average]     [mon. average]    [mon. average] 
  '01/09'  [mon. average]     [mon. average]    [mon. average]  
  '02/09'    [mon. average]     [mon. average]    [mon. average] 
  '03/09'   [mon. average]     [mon. average]    [mon. average] 
  '04/09'   [mon. average]     [mon. average]    [mon. average]    
  '05/09'  [mon. average]     [mon. average]    [mon. average]  
  '06/09'  [mon. average]     [mon. average]    [mon. average]      
  '07/09'  [mon. average]     [mon. average]    [mon. average]     
  '08/09'  [mon. average]     [mon. average]    [mon. average]     
  '09/09'  [mon. average]     [mon. average]    [mon. average]      
  '10/09' [mon. average]     [mon. average]    [mon. average]      
  '11/09'  [mon. average]     [mon. average]    [mon. average]    
  '12/09'  [mon. average]     [mon. average]     [mon. average]
}
Could interpolation be a solution to this problem? I would be grateful if you could provide some code.
cheers
3 Comments
Accepted Answer
  per isakson
      
      
 on 28 Jul 2012
        
      Edited: per isakson
      
      
 on 28 Jul 2012
  
      Hint:
- vec = datevec( A{:,1}, 'dd/mm/yy' )
- out = accumarray( vec(:,2), A(something), [], @mean )
Better
    vec = datevec( char(A{:,1}), 'dd/mm/yy' );
    out = accumarray( vec(:,2:3), transpose([A{:,2}]), [], @mean );
This returns the means of the values of each month respectively. There is a value for each month. Is that what you want?
More Answers (0)
See Also
Categories
				Find more on Descriptive Statistics and Visualization in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

