Homework 2: Problems 1--3 ========================= *Firstname LastName (Replace this part with your name)* --- In Problems 1--3, we analyze the Russell 2000 Stock Index, adjusted daily closing price, recorded from 10 September 1987 to 10 February 2017. ```{r} data <- read.csv("http://ptrckprry.com/course/forecasting/data/russell.csv") russell <- data$russell date <- as.Date(data$date) time <- 1:length(russell) ``` We will work with the mean-adjusted series: ```{r} today <- russell - mean(russell) ``` Problem 1 ========= Part A ------ Here is a plot of Today's Russell versus time, as well as Yesterday's Russell versus time: ```{r} # The following command creates a lagged version of the 'today' vector. # It works by dropping the last value of the today vector, and then # prepending a missing value ('NA'): # # today x1 x2 x3 x4 # yesterday NA x1 x2 x3 # # By construction, yesterday[t] is equal to today[t-1] for all t > 1. # # Note that a negative index value (-length(today), in this instance) # means "drop the element at this index". # yesterday <- c(NA, today[-length(today)]) plot(date, today, xlab="Date", ylab="Mean-Adjusted Russell", type="l", lty=1) lines(date, yesterday, lty=3) # adds lines for yesterday to the existing plot legend("topleft", inset=0.05, legend=c("Today", "Yesterday"), lty=c(1,3)) ``` Next, here is a plot of Today's Russell versus time, as well as 0.5 (Yesterday's Russell): ```{r} ## Replace this comment with code to make the plot ``` Part B ------ **Based on these two plots, which seems to be a better forecast of Today's Russell: Yesterday's Russell, or 0.5 (Yesterday's Russell)?** Part C ------ Here are the average squared forecast errors for the two forecasts: ```{r} # Replace this comment with code to compute average squared forecast # errors for the two forecasts (you will compute two numbers: one for # 'yesterday', and one for '0.5 yesterday'). # # Hint: use the mean function. ``` **Based on this, which one was better?** Problem 2 ========= Part A ------ Here is a plot of Today's Russell versus Yesterday's Russell: ```{r} # Add code to make the plot. Put "Today's Russell" on the y-axis. ``` **Describe any patterns you see.** Part B ------ Here is a linear regression fit of Today's Russell on Yesterday's Russell: ```{r} # Replace the ???? with code to fit the linear regression model, then # uncomment the following two lines. # # model <- ???? # summary(model) ``` **What is the prediction of Today's Russell implied by the regression coefficients?** **Is this consistent with your answers to Problem 1, parts B and C?** Part C ------ The 95% confidence interval for the slope is ```{r} # Add code to compute the confidence interval for the coefficient of # "yesterday". # # Hint: use the confint function. ``` **Is the slope in your fitted regression significantly different from 1?** The 95% confidence interval for the intercept is ```{r} # Add code to compute the confidence interval for the intercept. # Hint: use the confint function ``` **Briefly comment on the intercept as well.** Part D ------ **Based on everything you have done so far, do you see any strong evidence that the Russell is *not* a random walk**? Part E ------ Here is the correlation coefficient between Today's Russell and Yesterday's Russell: ```{r} # There are two ways to do this in R: # # 1. You can get the R^2 with the command `summary(model)$r.squared`, # then take the square root, and then multiply by the sign of the # coefficient, `sign(coef(model)[["yesterday"]])`. # # 2. You can use the `cor` function. # # Choose either method and compute the value here. ``` **Based on this, how strong is the linear association between Today's Russell and Yesterday's Russell?** Problem 3 ========= Part A ------ We define the Russell returns as ```{r} # Replace the ???? with code to compute the Russell returns, then # uncomment the following two lines: # ret.today <- ???? # ret.yesterday <- c(NA, ret.today[-length(ret.today)]) ``` Here is a plot of Today's return versus time: ```{r} # Add the plot here. ``` Here are the sample average and standard deviation of the returns: ```{r} # Hint: use the mean and sd functions. ``` Here is an ordinary t-test of whether the mean returns are zero: ```{r} # Replace this comment with code to perform a t-test on the data # stored in `ret.today`. # # Hint: use the t.test function. ``` **Are the mean returns significantly different from zero? Interpret your findings.** Part B ------ Here is a histogram of the Russell returns: ```{r} # Add code to make the histogram. # # Hint: use the hist command. ``` Here is a boxplot: ```{r} # Add code to make the boxplot. # # Hint: use the boxplot command. ``` Finally, here is a normal quantile-quantile plot: ```{r} # Add code to make the normal quantile-quantile plot. # # Hint: use the qqnorm command. ``` **Do you think that the Russell returns are normally distributed? Explain.** Part C ------ Here is a plot of today's return versus yesterday's return ```{r} # Add code to make the plot. ``` Here is a zoomed in plot: ```{r} # Due to the extreme values, there is not much information in the # plot above. You can zoom in on the plot by adding xlim and # ylim arguments, as in plot(x, y, xlim=c(1, 3), ylim=c(-2,2)); this would # sets the x limits to [1,3] and sets the y limits to [-2,2]. # Replace this comment by taking the previous plot command and then # adding appropriate values for xlim and ylim. ``` **Does this plot appear very different from the one in Problem 2(A)? Which seems to be easier to predict: Today's Russell, or Today's return?** Part D ------ Here is a linear regression of today's returns on yesterday's returns: ```{r} # Add code to fit the model and print a summary of the fit. ``` **What is the prediction of today's return implied by the regression coefficients?** **Are the coefficients statistically significantly different from zero?**