[R] Problem with ploting fitted values

Michael Bibo michael_bibo at health.qld.gov.au
Wed Dec 14 01:09:00 CET 2011


matys <mts89 <at> o2.pl> writes:

> 
> Hello!
> I have such a problem...
> Estimated a model based on common data (you can find it in R library), and I
> wanted to plot the orginal values with the estimated one. Unfortunately I
> can only see the original values.
> 
> Below is the code with data library:
> 
> /
> library(forecast) 
> data(AirPassengers)
> AP <- AirPassengers
> class(AP)
> start(AP)
> end(AP)
> frequency(AP)
> lgAP <- log(AP)
> t<-2:length(AP)
> 
> APsL<-log(ts(lgAP, start=1949, frequency=12))
> final<-(ts.intersect(lgAP,lgAPlag=lag(lgAP,-1), t=t,
> 		sin12 =  sin(2*pi*t/12), cos12 = cos(2*pi*t/12),dframe=TRUE)) 
> 
> summary(AIRlm <- lm(lgAP ~ lgAPlag + t + sin12 + cos12, data=final))
> 
> plot(lgAP, main="Log of Air Passengers",type="l", col=4, lty=2, lwd=2)
> lines(t, AIRlm$fitted, col=2, lwd=2)
> legend("topleft", legend=c("data", "fitted"), lty=c(2,1), col=c(4,2))
> /

If you try:

plot(t, AIRlm$fitted, col=2, lwd=2)

you can see that it does plot the points.  But note the x-axis.  The problem
with adding them to your original plot is that the x values (2:144) are out of
the range of the x-axis of the original plot, which is of a time series.

Try:

# transforming into parallel time series
AIRlm$fitted.ts <- ts(AIRlm$fitted, start = c(1949,1), frequency = 12)

plot(lgAP, main="Log of Air Passengers",type="l", col=4, lty=2, lwd=2)
lines(AIRlm$fitted.ts, col=2, lwd=2)


Hope this helps,

Michael Bibo
Queensland Health



More information about the R-help mailing list