diff --git a/inst/monashDemo/monashDemo.Rmd b/inst/monashDemo/monashDemo.Rmd new file mode 100644 index 0000000..e0d3df6 --- /dev/null +++ b/inst/monashDemo/monashDemo.Rmd @@ -0,0 +1,142 @@ +--- +author: Rob J Hyndman +title: Monash +date: \today +titlefontsize: 22pt +fontsize: 12pt +colortheme: monashblue +toc: true +tocheader: Time series graphics +tighttoc: true +output: + binb::monash: + fig_height: 4.5 + fig_width: 8 +header-includes: + - \usepackage{booktabs} + - \tabcolsep=0.12cm +--- + +```{r setup, include=FALSE} +knitr::opts_chunk$set(echo = TRUE) +library(forecast) +library(ggplot2) +options(width=50) +``` + +# Time plots + +## Time plots + +```{r} +autoplot(USAccDeaths) + + ylab("Total deaths") + xlab("Year") +``` + +# Seasonal plots + +## Seasonal plots + +```{r} +ggseasonplot(USAccDeaths, year.labels=TRUE, + year.labels.left=TRUE) + ylab("Total deaths") +``` + +## Seasonal plots + + * Data plotted against the individual "seasons" in which the data were observed. (In this case a "season" is a month.) + * Something like a time plot except that the data from each season are overlapped. + * Enables the underlying seasonal pattern to be seen more clearly, and also allows any substantial departures from the seasonal pattern to be easily identified. + * In R: `ggseasonplot()` + +# Seasonal polar plots + +## Seasonal polar plots + +```{r, out.width="6.2cm"} +ggseasonplot(USAccDeaths, year.labels=TRUE, + polar=TRUE) + ylab("Total deaths") +``` + +\only<2>{ + \begin{textblock}{4}(8,4) + \begin{alertblock}{} + Only change is to switch to polar coordinates. + \end{alertblock} + \end{textblock} +} + +# Seasonal subseries plots + +## Seasonal subseries plots + +```{r, echo=TRUE} +ggsubseriesplot(USAccDeaths) + + ylab("Total deaths") +``` + +## Seasonal subseries plots + + * Data for each season collected together in time plot as separate time series. + * Enables the underlying seasonal pattern to be seen clearly, and changes in seasonality over time to be visualized. + * In R: `ggsubseriesplot()` + + +# Lag plots and autocorrelation + +## Lagged scatterplots + +```{r} +gglagplot(USAccDeaths, lags=9) +``` + +## Lagged scatterplots + +```{r} +gglagplot(USAccDeaths, lags=9, do.lines=FALSE) +``` + +\only<2>{ + \begin{textblock}{4}(8.3,3) + \begin{block}{} + \begin{itemize}\tightlist + \item Each graph shows $y_t$ plotted against $y_{t-k}$ for different values of $k$. + \item Autocorrelations are correlations associated with these scatterplots. + \end{itemize} + \end{block} + \end{textblock} +} + +## Autocorrelation + +We denote the sample autocovariance at lag $k$ by $c_k$ and the sample autocorrelation at lag $k$ by $r_k$. Then define + +\begin{block}{} +\begin{align*} +c_k &= \frac{1}{T}\sum_{t=k+1}^T (y_t-\bar{y})(y_{t-k}-\bar{y}) \\[0.cm] +\text{and}\qquad +r_{k} &= c_k/c_0 +\end{align*} +\end{block}\pause\small + + * $r_1$ indicates how successive values of $y$ relate to each other + * $r_2$ indicates how $y$ values two periods apart relate to each other + * $r_k$ is \textit{almost} the same as the sample correlation between $y_t$ and $y_{t-k}$. + +## Autocorrelation + +Results for first 9 lags for `USAccDeaths` data: + + +```{r, echo=FALSE, results='asis'} +USAccDeathsacf <- matrix(acf(c(USAccDeaths), lag.max=9, + plot=FALSE)$acf[-1,,1], nrow=1) +colnames(USAccDeathsacf) <- paste("$r_",1:9,"$",sep="") +knitr::kable(USAccDeathsacf, booktabs=TRUE, + align="c", digits=3, + format.args=list(nsmall=3)) +``` + +```{r USAccDeathsacf, fig.height=2.5} +ggAcf(USAccDeaths) +``` diff --git a/inst/monashDemo/monashDemo.pdf b/inst/monashDemo/monashDemo.pdf new file mode 100644 index 0000000..15e4552 Binary files /dev/null and b/inst/monashDemo/monashDemo.pdf differ diff --git a/inst/rmarkdown/templates/monash/resources/template.tex b/inst/rmarkdown/templates/monash/resources/template.tex index 8267465..14326b3 100644 --- a/inst/rmarkdown/templates/monash/resources/template.tex +++ b/inst/rmarkdown/templates/monash/resources/template.tex @@ -249,18 +249,19 @@ $if(dir)$ \fi $endif$ -$for(header-includes)$ - $header-includes$ -$endfor$ - %% Monash overrides $if(toc)$ \AtBeginSection[]{ \frame{ - \frametitle{Outline} + \frametitle{$if(tocheader)$$tocheader$$else$Outline$endif$}\vspace*{0.2cm} + $if(tighttoc)$\fontsize{12}{13}\selectfont\parskip=0cm\itemsep=0cm$endif$ \tableofcontents[currentsection,hideallsubsections] }} $endif$ +$if(tighttoc)$ +\setbeamerfont{section number projected}{size=\small} +$endif$ + % Redefine shaded environment if it exists (to ensure text is black) \ifcsname Shaded\endcsname \definecolor{shadecolor}{RGB}{225,225,225} @@ -268,6 +269,10 @@ $endif$ \fi %% +$for(header-includes)$ + $header-includes$ +$endfor$ + $if(title)$ \title[$shorttitle$]{$title$} $endif$ @@ -334,7 +339,8 @@ $endfor$ $if(toc)$ \frame{ - \frametitle{Outline} + \frametitle{$if(tocheader)$$tocheader$$else$Outline$endif$}\vspace*{0.2cm} + $if(tighttoc)$\fontsize{12}{13}\selectfont\parskip=0cm\itemsep=0cm$endif$ \tableofcontents[hideallsubsections] } $endif$