Лог Ферт c Регрессия - PullRequest
       6

Лог Ферт c Регрессия

0 голосов
/ 11 февраля 2020

Я пытаюсь найти предикторов для людей, продающих свои автомобили, выполнив логистическую регрессию c. Мой размер выборки n = 922 и имеет в основном кардинальные и порядковые переменные. Поскольку некоторые из моих переменных имеют до 7 категорий (-> 6 фиктивных переменных), я столкнулся с разделением. В литературе они рекомендуют подход Фёрта с уменьшенной систематической ошибкой c регрессии.

После установки пакета я использовал следующую формулу:

logistf(formula = attr(data, "formula"), data = sys.parent(), pl = TRUE, ...)

и ввел (или попытался ввести) мои данные:

mydataBrAll <- logistf(formula = attr(mydataBr$Verkauft, "formula"), data = mydataBr, pl = FALSE)
summary(mydataBrAll)

Verkauft , являющийся моей зависимой переменной, и mydataBr , являющийся моими данными

Что за термин должен быть введен в «формула» ? И если это работает, могу ли я использовать пошаговый обратный алгоритм (или псевдо R² et c) так же, как я использовал бы его в обычном log.reg. модель?:

'Backwards Selection'
backwards <- step(mydataBrAll, direction = "backward")

Некоторые из вас могут подумать, что это простая проблема, но я не могу понять это с помощью объяснений в Интернете.

Любая помощь очень оценили!

1 Ответ

0 голосов
/ 12 февраля 2020

Формула должна быть обычным объектом формулы, используемым в большинстве функций моделирования в R (например, lm(), glm() и т. Д. c.). Вы можете получить подробную информацию о том, как написать формулу, набрав help(formula) в командной строке R.

По сути, формула является выражением формы y ~ model. Цитирование из раздела подробностей help(formula):

Выражение формы y ~ модель интерпретируется как спецификация того, что ответ y моделируется линейным предиктором, заданным символически моделью.

В вашем примере, предполагая, что у вас есть 3 предиктора, называемые x1, x2, x3 (которые могут быть numeric или factor переменными), вы можете написать:

mydataBrAll <- logistf(formula = Verkauft ~ x1 + x2 + x3, data = mydataBr, pl = FALSE)
summary(mydataBrAll)

Обратите внимание, что формула может быть более сложной и включать преобразования переменных предиктора. Опять же, для получения более подробной информации см. Документацию formula.

. Как вы знаете, выражение attr(data, "formula"), показанное в документации logistf() как часть сигнатуры функции (иначе API), относится к атрибут с именем formula, который может существовать в объекте, содержащем данные, которые вы передаете в параметре data функции. Поскольку в вашем примере это не так (очевидно, вы не добавили этот атрибут в свой объект данных), вы должны явно определить формулу при вызове logistf().
Для получения дополнительной информации об атрибутах в объектах см. help(attr).

По второму вопросу о обратном выборе: в разделе «Подробности» документации для logistf() вы видите следующее предложение:

Кроме того, функции прямого и обратного выполнения удобный выбор переменной

Т.е. пакет содержит функции forward() и backward(), которые могут использоваться для выполнения прямого и обратного выбора предикторов.

Функция step() может также работает, так как ничто не указывает на обратное на странице документации.

...