Get Data

Data may be imported from a local file or downloaded from the web. For this example we will use an R internal example time series variable, sunspot.month. The saved time series may also be loaded from the web.

  # The internal data set may be called directly
  sunspot.month[1:15]
##  [1]  58.0  62.6  70.0  55.7  85.0  83.5  94.8  66.3  75.9  75.5 158.6  85.2
## [13]  73.3  75.9  89.2
  # It is not "local"
  ls()
## character(0)
  # We load the saved sunspot.month from facweb1.
  # This fails because redlands.edu won't serve Rdata files
  #load(url("http://facweb1.redlands.edu/fac/jim_bentley/downloads/R/sunspotmonth.Rdata"))
  # It is now "local"
  sunspot.month = sunspot.month[1:15]
  ls()
## [1] "sunspot.month"
  sunspot.month[1:15]
##  [1]  58.0  62.6  70.0  55.7  85.0  83.5  94.8  66.3  75.9  75.5 158.6  85.2
## [13]  73.3  75.9  89.2
  # Remove the local copy
  rm(sunspot.month)
  # Check to see if the "global" copy is still there
  sunspot.month[1:15]
##  [1]  58.0  62.6  70.0  55.7  85.0  83.5  94.8  66.3  75.9  75.5 158.6  85.2
## [13]  73.3  75.9  89.2

Time Plots

For now, We will focus on the first 15 months in the series.

  # Plot using points
  plot(sunspot.month[1:15], ylab="Avg. Daily Sunspots per Mo.")

  # Plot using lines
  plot(sunspot.month[1:15], type="l", ylab="Avg. Daily Sunspots per Mo.")

  # Plot using both points and lines
  plot(sunspot.month[1:15], type="b", ylab="Avg. Daily Sunspots per Mo.")

It appears that the average number of daily sunspots per month is increasing over months. A line that describes this relationship is adspm = 62.959 + 2.209 (Index). This line can be added to the plot using the abline function.

  # Base R
  plot(sunspot.month[1:15], ylab="Avg. Daily Sunspots per Mo.")
  abline(a=62.959, b=2.209, col="red", lty=2)
  #
  # Now use lattice to create a similar plot
  p_load(lattice)

  month=1:15
  xyplot(sunspot.month[1:15]~month, 
         panel=function(x, y, ...){
           panel.xyplot(x, y, ...)
           panel.abline(a=62.959, b=2.209, col="red", lty=2)
         }, ylab="Avg. Daily Sunspots per Mo."
  )

According to this plot a good guess for the adspm 10 years from the start would be about 60 + 2(120) = 300. And, 100 years from the start we should see 60 + 2(1200) = 2460. A plot can confirm this.

  # Base R
  plot(sunspot.month, ylab="Avg. Daily Sunspots per Mo.")

  # Use lattice
  xyplot(sunspot.month, ylab="Avg. Daily Sunspots per Mo.")

Actually, the plot appears to refute the increasing nature of the number of sunspots. Instead we see that the number of sunspots seems to cycle every 10 years or so. Be careful extrapolating from the short term to the long term.