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
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.