how to treat the last observation? Forecasting??
    6 views (last 30 days)
  
       Show older comments
    
Dear all,
I have the following cell matrix
A={
 '24/09/2000'                  [4.1583]
    '22/10/2000'              [3.9389]
   '19/11/2000'               [4.3944]
    '17/12/2000'              [3.9313]
   '14/01/2001'               [3.9313]
    '11/02/2001'               [3.9313]
    '11/03/2001'              [4.0339]}
I can easily convert the above data points to monthly averages; through the calculation of the weighted average between successive observations.
For instance for the first observation I have
24*4.1583+ 6*3.9389
where 24 is the 24 days from month Octomber and 6=(last date of the month-24=30-24) The only problem is how to treat the last observation:
11*4.0339+?
One way is to extrapolate but I do not consider this method reliable. The above values are prices. So could I apply some other way? Maybe forecasting taking into account seasonality?
Any help/code provided will greatly appreciated
thanks
4 Comments
  Walter Roberson
      
      
 on 18 Aug 2012
				You do not have enough data to forecast with, not with any meaningful accuracy.
Accepted Answer
  Oleg Komarov
      
      
 on 18 Aug 2012
        A ={'24/09/2000'    4.1583
    '22/10/2000'    3.9389
    '19/11/2000'    4.3944
    '17/12/2000'    3.9313
    '14/01/2001'    3.9313
    '11/02/2001'    3.9313
    '11/03/2001'    4.0339};
% Convert to tractable double matrix, i.e. use serial dates
A = [datenum(A(:,1),'dd/mm/yyyy') cat(1,A{:,2})];
A =
                    730753                    4.1583
                    730781                    3.9389
                    730809                    4.3944
                    730837                    3.9313
                    730865                    3.9313
                    730893                    3.9313
                    730921                    4.0339
% Create a list of end-of-month dates (using two tricks):
- create first-day-of-next-month dates and subtract one
- datenum() automatically adjusts the date in case one of the units exceeds the max accepted value
xi = datenum(2000,10:16,1)-1;
% Interpolate
B  = interp1(A(:,1),A(:,2), xi,'linear','extrap');
% Plot
plot(A(:,1),A(:,2),'-dr',xi,B,'-ob')
set(gca,'Xtick',sort([A(:,1); xi']),'xgrid','on')
datetick('x','dd/mm','keepticks')
0 Comments
More Answers (0)
See Also
Categories
				Find more on Time Series 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!

