library(readr)
library(dplyr)
library(xts)
setwd("~/ga/repos/lesson-15")
df = read_csv('financial_indicators2.csv', na = "#N/A")
df <- df[complete.cases(df),]
df_xts <- as.xts(df %>%
select(-DATE) %>%
scale(center=TRUE, scale=TRUE),
order.by = df$DATE)
roll_var<-function(x){
output<-prcomp(x)$sdev^2
return(output[1]/sum(output))
}
rolling_var<-rollapply(df_xts, 90, roll_var, by.column=FALSE)
plotting_df <- tbl_df(data.frame(date=index(rolling_var), var = coredata(rolling_var)))
ggplot(plotting_df, aes(x=date, y=var)) +
geom_line() +
theme_bw() +
ggtitle('90 Day Rolling Variance Explained')