Стратегия проведения регрессионного моделирования в R - PullRequest
0 голосов
/ 07 ноября 2018

Я не уверен, что это правильное место, чтобы спросить, но позвольте мне попробовать в любом случае. Я хотел бы провести структурированный анализ набора данных с использованием линейных регрессий. Я подумал, что было бы неплохо начать с создания фрейма / таблицы данных, в которой каждая строка содержит одну из моделей, которые я хотел бы проанализировать. Затем я продолжу определять зависимую переменную (y) и независимые переменные (x). Определите формулы и так одно. Основываясь на этой таблице, я хотел бы запустить регрессию для каждой модели и использовать эти модели для вычисления новых столбцов, таких как R2 или AIC, в моей таблице моделей для сравнения моделей. Я также хотел бы сделать это, потому что мне, возможно, придется сравнить различные подмножества исходных данных, для которых я бы учел, с дополнительным столбцом. Как MWE, я думал о чем-то вроде этого.

rm(list=ls())
library(data.table)
#data
dt<-data.table(mtcars)
#define possible models
models<-data.table(Number=1:2, y="mpg", x=c("cyl", "cyl + gear"))
models[,formula:=paste0(y," ~ ", x)]
#List for model objects
model.objects<-list()
model.objects[models$Number]<-list(NULL)

#my regression function
myreg.function<-function(model){
   summary(lm(models[Number==model,formula],data=dt))
}
#run regression models for each model number
model.objects<-lapply(models$Number,myreg.function)
#Extract R2 from each model and write it into the data tabele
models$R2<-lapply(model.objects, function(x) x[["r.squared"]])

Это разумный способ сделать это? Должен ли я использовать больше списков? Я думаю, что было бы довольно утомительно создавать объекты с конкретными описаниями для каждой модели. Какие-нибудь предложения, которые я должен прочитать, чтобы узнать о лучшем способе этого в хорошо структурированной манере?

Это чисто вопрос приложения / реализации, а не о том, как я должен это делать абстрактно. R в квадрате это просто пример. Я действительно осведомлен об эконометрике выбора моделей и т. Д. И что количество моделей может увеличиваться в геометрической прогрессии. По крайней мере, я на это надеюсь. Я скорее хочу указать 3-5 типов моделей и сравнить их структурированным образом с одной таблицей или списком, расширив эти 3-5 моделей вариантами, используя значения журнала или различные подмножества данных, чтобы таблица увеличивала время 2-5 раз.

...