ya it looks like you can't use predict to take in data.
In general you could do the following:
fit a model to n-(prediction sample set length). Then use the predict
function to do a 1 step forward forecast. Test to see how close it is to the
actual 1 value ahead.
Then train your model on n-(prediction sample set length-1). predict 1 step
ahead and compare to the next value. rinse and repeat.
-Rob
On Thu, Mar 18, 2010 at 2:59 AM, RAGHAVENDRA PRASAD <
raghav.nprasad@gmail.com> wrote:
> Hi,
>
> Thanks a lot.It was very useful to me.If i m correct we cant do real time
> Stock forecasting using R with ARIMA+GARCH model using garchFit or any
other
> available packages which are avaibale in R as Predict function wont take
any
> test data.
>
> Eg: predict(garch11sp500t, 10)
>
> We just need to give how for how many periods we need the forecast
> results.Is there any work around any packages avaiable where we can use
test
> data for prediction like we have in Neural Nets package.
>
>
> Regards,
> Raghav
>
>
> On Wed, Mar 17, 2010 at 8:40 PM, Rob Forler <rforler@uchicago.edu>
wrote:
>
>> Hi,
>>
>> I can help, but what you are saying doesn't make sense. firstly
what is
>> fitted.ga?
>>
>> You can use predict from the garchFit that will give the predictions
for
>> fitted.gar for example.
>>
>> For example,
>>
>> library(fGarch)
>> library(tseries)
>> library(moments)
>>
>> data = get.hist.quote(instrument="^GSPC",
"1990-01-01", "2010-02-01",
>> quote = c("AdjClose"),provider=c("yahoo"))
>>
>> ret = diff(log(data))
>>
>> garch11sp500t = garchFit(~arma(1,1) +garch(1,1), data=ret,
>> cond.dist="std")
>>
>> > predtsp500 = predict(garch11sp500t, 10)
>> > predtsp500
>> meanForecast meanError standardDeviation
>> 1 0.0013071158 0.01049783 0.01049783
>> 2 0.0011799772 0.01051555 0.01050872
>> 3 0.0010749574 0.01053107 0.01051959
>> 4 0.0009882084 0.01054509 0.01053042
>> 5 0.0009165514 0.01055807 0.01054123
>> 6 0.0008573608 0.01057034 0.01055201
>> 7 0.0008084679 0.01058211 0.01056276
>> 8 0.0007680811 0.01059354 0.01057349
>> 9 0.0007347205 0.01060472 0.01058418
>> 10 0.0007071638 0.01061572 0.01059485
>>
>> you will see that both the mean and the standard deviation is
forecasted.
>> This gives you both the "stock forecast" and the stocks'
volatility
>> forecast.
>>
>> now comparing the models you have a lot of different options. And it
cares
>> what you are looking to use the predictions for.
>>
>> In the above example imagine you were using the model to trade. You
would
>> want to pick the model that gives you the best pnl.
>>
>> Secondly you want to look at the acf and the pacf of the standarized
>> residuals to makes sure that there are not any significant lags. Also
you
>> may want to look at the distribution of the residuals! are they really
>> t-distributed? you can use a qq type test to determine this. if not you
may
>> have a model misspecification. you may need to use a skewed
distribution or
>> you may need to use something like aparch (in garchFit) which fits an
>> asymmetric model/
>>
>> you also want to look at summary(garch11sp500t)
>> look at :
>> Error Analysis:
>> Estimate Std. Error t value Pr(>|t|)
>> mu 1.003e-04 3.718e-05 2.697 0.00701 **
>> ar1 8.260e-01 5.913e-02 13.971 < 2e-16 ***
>> ma1 -8.621e-01 5.267e-02 -16.368 < 2e-16 ***
>> omega 4.090e-07 1.365e-07 2.998 0.00272 **
>> alpha1 5.743e-02 6.607e-03 8.693 < 2e-16 ***
>> beta1 9.409e-01 6.484e-03 145.123 < 2e-16 ***
>> shape 6.990e+00 6.820e-01 10.249 < 2e-16 ***
>> ---
>> you can see here that all the coefficients are very significant.
>>
>> also,
>> AIC BIC SIC HQIC
>> -6.539617 -6.530588 -6.539621 -6.536455
>>
>> are computed from the summary. Google these. Picking a model with a
lower
>> aic or bic can be another way to choose the model.
>>
>> If you need more help let me nkow,
>> Rob
>>
>> On Wed, Mar 17, 2010 at 1:11 AM, RAGHAVENDRA PRASAD <
>> raghav.nprasad@gmail.com> wrote:
>>
>>> Hi,
>>>
>>> Although my doubt is pretty,as i m not from stats background i am
not
>>> sure
>>> how to proceed on this.
>>>
>>> Currently i am doing a forecasting.I used ARIMA to forecast and
time
>>> series
>>> was volatile i used garchFit for residuals.
>>> How to use the output of Garch to correct the forecasted values
from
>>> ARIMA.
>>>
>>> Here is my code:
>>>
>>> ###delta is the data
>>>
>>> fit<-arima(delta,order=c(2,,0,1))
>>>
>>> fit.res <- resid(fit)
>>> ##Check for Residuals
>>> acf((fit.res-mean(fit.res))/sd(fit.res))
>>> acf(((fit.res-mean(fit.res))/sd(fit.res))^2)
>>> fit.fore = predict(fit, n.ahead=test)
>>>
>>> ##Use ARIMA GARCH To fit residuals from ARIMA Model
>>> 1.
>>> fitted.gar<-garchFit(formula
>>> =~arma(2,1)+garch(1,1),data=*fit.res*,cond.dist
>>> = "std",trace=FALSE)
>>> sresi=fitted.gar@residuals/fitted.gar@sigma.t ###Standardised
>>> Residuals
>>> acf(sresi)
>>> acf(sresi^2)
>>> fore.res<-predict(fitted.ga, n.ahead=test)
>>>
>>> OR
>>> 2.
>>> fitted.gar<-garchFit(formula
>>> =~arma(2,1)+garch(1,1),data=*delta*,cond.dist >>>
"std",trace=FALSE)
>>> sresi=fitted.gar@residuals/fitted.gar@sigma.t ###Standardised
>>> Residuals
>>> acf(sresi)
>>> acf(sresi^2)
>>> fore.res<-predict(fitted.ga, n.ahead=test)
>>>
>>> My Question is
>>> 1. How to use fore.res(Result from Garch Model) to change fit.fore
>>> (Forecasted values from ARIMA)
>>> 2.Out of 1 and 2 for GARCH which one is correct.Pretty
confused.Shud we
>>> need
>>> to use the residuals got from ARIMA Model or the series directly ?
>>>
>>> Regards,
>>> Raghav
>>>
>>> [[alternative HTML version deleted]]
>>>
>>> ______________________________________________
>>> R-help@r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>> PLEASE do read the posting guide
>>> http://www.R-project.org/posting-guide.html
>>> and provide commented, minimal, self-contained, reproducible code.
>>>
>>
>>
>
[[alternative HTML version deleted]]