data-raw/testing-2.R

library(idiosyncratics)
library(tidyverse)



N <- 10
T <- 2

tbl <- tibble(N = seq(10, 50, 10),
              T = rep_len(10, 5))
tbl

a <- bind_cols(tbl, tbl %>% { map2(.$N, .$T, .f = fakedata::fake_panel, I = 2)} %>% enframe()) %>% select(-name) %>% rename(data = value)

b <- a %>%
  mutate(data = data %>% map(rename, industry = I, g_i = g)) %>%
  mutate(data = map(data, add_weights)) %>%
  mutate(data = map(data, add_quantiles, g_var = g_i)) %>%
  mutate(data = map(data, drop_outliers, g_var = g_i, method = 'drop')) %>%
  mutate(data = map(data, demean, g_var = g_i))
c <- b %>%
  mutate(comps = map(data, aggregate_components, g_var = g_i, w_var = lag_w))

c
# ok, now do lm summary stuff I guess.

# then write the pca function.

# asm <- asm %>% rename(industry = I, g_i = g)
# asm <- asm %>%
#   add_weights() %>% # add lagged weights to data
#   add_quantiles(g_var = 'g_i') %>% # add quantiles to data
#   drop_outliers(g_var = 'g_i', method = 'drop') # drop outliers based on quantiles

# then what.
# asm <- asm %>% demean(g_var = 'g_i')
# components <- asm %>% aggregate_components(g_var = 'g_i', w_var = 'lag_w')

lms <- . %>% lm(g2 ~ e, data = .) %>% summary() %>% .$r.squared
dlm <- function(df) {
  cov <- df %>% select(one_of(c('e', 'm', 'g2'))) %>% var()
  (cov / cov[dim(cov)[1], dim(cov)[2]]) %>% diag() %>% sqrt()
}

c %>% mutate(r2 = map_dbl(comps, lms),
             dlm = map(comps, dlm)) %>% .$dlm
tweed1e/idiosyncratics documentation built on May 29, 2019, 10:51 a.m.