Определение класса переменных в регрессионной модели без доступа к исходному фрейму данных
У меня есть файл rda
, в котором есть модель логистической регрессии. Если я только хочу знать, какие типы данных для независимых переменных используются в glm
, Как я могу их проверить? Например, если мой Y~ X1+X2+X3
как я узнаю, какие типы данныхX1
, X2
а X3
есть? На данный момент у меня нет фрейма данных для исследования типов данных. Любая помощь будет высоко оценена.
1 ответ:
Я хотел бы сначала предложить кое-что более полезное. Как насчет проверки
$terms
? (Используяfit
ниже в качестве примера)## or `attr(terms(fit), "dataClasses")` attr(fit$terms, "dataClasses") # mpg qsec factor(am) wt factor(gear) # "numeric" "numeric" "factor" "numeric" "factor"
Поскольку в вашем вопросе упоминается только идентификация классов данных, этого достаточно. Но если вы хотите получить доступ к данным для переменных, проверьте
$data
. вот чемglm
отличается отlm
.glm
возвращает гораздо больше материала, чемlm
, включая аргументdata
. Обратите внимание,lm
не возвращаетdata
.
Еще немного о
model.frame
Почти всегда
model.frame
является лучшей процедурой. Но используйте его с некоторой осторожностью.dat <- mtcars fit <- glm(mpg ~ qsec + factor(am) + wt + factor(gear), data = dat, model = FALSE) rm(dat) model.frame(fit)
Ошибка в ИС.данные.фрейм (данные): объект 'dat' не найден
Это то, что я объяснил в комментарии под вопросом OP: если
$model
не являетсяNULL
,model.frame
просто извлекает его. Но если это действительно такNULL
,model.frame
стремится его реконструировать. Но чтобы восстановить его, вам нужен доступ к исходному фрейму данных. Если исходный фрейм данных недоступен, вы не получите ничего (кроме ошибка).Чтобы понять это, имейте в виду, что
model.frame
является (S3) общей функцией:.S3methods("model.frame") #[1] model.frame.aovlist* model.frame.default model.frame.glm* #[4] model.frame.lm*
model.frame.lm
иmodel.frame.glm
простое извлечение$model
из объекта модели (если$model
присутствует); в противном случае он вызываетmodel.frame.default
для построения фрейма модели из Формулы модели и исходного фрейма данных.