For this assignemnt, I used Lennar Coporation (NYSE: LEN)

library(xts)
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
library(forecast)
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo

Subset, create time series, plot

Lennar$Date <- as.Date(Lennar$Date)
Lennar2 <- Lennar[c(1,6)]
LennarTS = xts(Lennar2$Adj.Close, order.by=Lennar2$Date)
plot(LennarTS, main = "Lennar Adjusted Closing Price ($)")

Find out how many observations for 80% of the data

(nrow(LennarTS)*.8)
## [1] 401.6

Split the data between test set and training set

dataTrain = first(LennarTS,'402 days') #Extract first 402 days
dataTest = last(LennarTS, '100 days' ) #Extract last 100 days

Regression

mod = tslm(ts(dataTrain) ~ trend)
summary(mod)
## 
## Call:
## tslm(formula = ts(dataTrain) ~ trend)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -10.1972  -3.6614  -0.3733   3.3619  11.0017 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 43.668006   0.477231   91.50   <2e-16 ***
## trend        0.035130   0.002052   17.12   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 4.775 on 400 degrees of freedom
## Multiple R-squared:  0.4228, Adjusted R-squared:  0.4213 
## F-statistic:   293 on 1 and 400 DF,  p-value: < 2.2e-16

Test regression on test data

forecastTest = forecast(mod, h=100)
print(accuracy(forecastTest, dataTest))
##                         ME      RMSE       MAE         MPE      MAPE      MASE
## Training set -4.927284e-16  4.763408  3.883515  -0.9092679  7.874314  5.728727
## Test set     -5.898852e+00 13.007782 10.221371 -17.0831611 23.465227 15.077950
##                   ACF1
## Training set 0.9747835
## Test set            NA

New regression on entire data

mod2 = tslm(ts(LennarTS)~trend)
summary(mod2)
## 
## Call:
## tslm(formula = ts(LennarTS) ~ trend)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -26.3819  -3.8651   0.7007   4.9668  16.0287 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 45.377263   0.618875   73.32   <2e-16 ***
## trend        0.023662   0.002132   11.10   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 6.923 on 500 degrees of freedom
## Multiple R-squared:  0.1976, Adjusted R-squared:  0.196 
## F-statistic: 123.2 on 1 and 500 DF,  p-value: < 2.2e-16

Use full-data regression to predict next 100 days and plot

forecastNext100 = forecast(mod2, h=100)
autoplot(forecastNext100, main = "Lennar Corp 100-day Stock Forecast", ylab = "Adj. Closing Price ($)")