Вот мой пример данных:
date = as.Date(c("2018-01-02", "2018-01-03", "2018-01-04", "2018-01-05",
"2018-01-08")),
X10026 = c(NA, -0.00998786767581905, 0.0138127158236847,
-0.00955052427703185, 0.000741739716790146),
X10028 = c(NA, 0.0102061855670104, -0.0205122971731809,
-0.0103146488851844, 0.0631645436361723),
X10032 = c(NA, 0.00130975769482644, 0.0122629169391759,
0.00492650621870472, 0.0466929197138954),
X93436 = c(NA, -0.0102330515084391, -0.00828999211977932,
0.00622970567668935, 0.0626382292829057),
mktrf = c(0.0085, 0.0059, 0.0042, 0.0066, 0.0019),
smb = c(0.0036, -0.0039, -0.0026, -0.0034, -0.0016),
hml = c(-0.0022, -0.0021, 0.0024, -0.0026, 7e-04)
)
Теперь я пытаюсь запустить линейную регрессию для нескольких переменных результата. Я хочу сделать это с помощью функции purr: map и пакета broom. Через некоторое время это сработало. Однако теперь я хочу получить средние предельные эффекты на основе сохраненных моделей с ggeffect. ggpredict работает, но ggeffect нет. ggpredict содержит контрольные переменные в их контрольной категории, я хочу, чтобы средние предельные эффекты сохраняли значения постоянными на их наблюдаемых значениях.
вот моя попытка:
# loop over outcomes; save predicted valies (at reference l)
# loop over outcome variables
sample_data <- sample_data %>%
gather(stock, return, starts_with("X")) %>%
group_nest(stock) %>%
mutate(model = map(data,
~lm(formula = "return ~ mktrf + hml + smb",
data = .x,
na.action = na.exclude)),
effects = map(model,ggeffect),
tidy = map(model, broom::tidy),
glance = map(model, broom::glance),
augment = map(model, broom::augment)) %>%
unnest(data)
И это сообщение об ошибке, которое я получаю:
Can't compute marginal effects, 'effects::Effect()' returned an error.
Reason: object '.x' not found
You may try 'ggpredict()' or 'ggemmeans()'.
ggeffects работает за пределами l oop, поэтому он должен имеют какое-то отношение к функции карты. Есть мысли?