Анализ временной задержки в списке вмененных наборов данных
Мой вопрос и данные аналогичны посту в: Циклические данные с последовательными выводами временных задержек Коэффициенты линейной регрессии
set.seed(242)
df<- data.frame(month=order(seq(1,248,1),decreasing=TRUE),
psit=c(79,1, NA, 69, 66, 77, 76, 93, NA, 65 ,NA ,3, 45, 64, 88, 88
,76, NA, NA, 85,sample(1:10,228, replace=TRUE)),var=sample(1:10,248,
replace=TRUE))
Однако структура моего набора данных отличается, потому что я вменял пропущенные значения для psit
, Сейчас psit
, month
а также var
теперь вложены в список tempdata
после использования mice()
функция для вменения значений. Сейчас tempdata
включает в себя 40 новых вмененных наборов данных.
tempdata<-mice(data = df, m = 40, method = "pmm", maxit
= 50, seed = 500)
Я хочу взять 40 вмененных наборов данных, выполнить один и тот же анализ временных задержек для каждого вмененного набора данных (это отличается от поста выше, где был один набор данных для предварительного анализа временного отставания) и объединить значения R-квадрата для каждого подобного временного лага среди всех вмененных наборов данных.
Сообщения на mice
указать, что вы можете объединить результаты lm()
с помощью:
modelFit1 <- with(tempdata,lm(psit~ month))
summary(pool(modelFit1))
Однако я хочу объединить значения R-квадрата для одинаковых временных задержек среди всех 40 вмененных наборов данных. Поэтому я не уверен, как использовать dyn$lm()
функция на каждый вмененный набор данных в tempdata
а затем использовать pool()
функция для объединения результатов для квадратов значений.
Чтобы достичь этого результата. Я пробовал следующее, но получаю ошибку:
modelFit1 <- with(tempData, lapply(1:236, function(i) dyn$lm(psit ~
lag(var, -i),tail(z, 12+i))))
summary(pool(modelFit1),function(x) summary(x)$r.squared))
1 ответ
Поскольку вы используете пакет mouse, не подойдет ли вам "pool.r.squared"?
pool.r.squared(modelFit1, adjusted = FALSE)
# est lo 95 hi 95 fmi
# R^2 0.1345633 0.06061036 0.226836 0.1195257