Хобрук: Ваш путь к мастерству в программировании

Логистическая регрессия и начальная загрузка

Я пытаюсь запустить сначала логистическую регрессию, используя lrm из пакета RMS. Моя модель отлично работает с glm, но не с lrm.

model1 <- lrm( Outcome30Days ~ ISS1 + ISS2 + as.factor(GCSgr)+ 
as.factor(Gender)*as.factor(agegr),data=sub2, x=T, y=T, se.fit=T)

Если ISS1 и ISS2 удалить, модель запустится, но с этими двумя переменными - нет. сообщение об ошибке:

Unable to fit model using “lrm.fit”

Мне нужно запустить его с lrm, потому что пакет validate с использованием бутстрапа работает (видимо) только с lrm. Любая помощь будет оценена по достоинству.


  • Он просто говорит вам, что математически он не может соответствовать модели, которую вы указали. В частности, похоже, что он основан на коде ошибки, возвращаемом базовым кодом Fortran. Диагностика точной проблемы потребует подробного понимания как ваших данных, так и точной математической процедуры, используемой для подбора модели. 12.07.2013
  • Спасибо, Джоран, если это было неверно, почему модель работает с glm? Что-то вызывает недоумение в lrm. 15.07.2013
  • Я думаю, что я заставил это работать, используя штраф = 5, ниже 5 это не работает. 15.07.2013
  • Модель будет выглядеть так: 15.07.2013
  • model1 ‹- lrm( Outcome30Days ~ ISS1 + ISS2 + as.factor(GCSgr)+ as.factor(Gender)*as.factor(agegr),data=sub2, x=T, y=T, se.fit=T, штраф=5) 15.07.2013

Ответы:


1

lrm имеет более низкую устойчивость к корреляции между независимыми переменными, чем glm. Если ваша модель работает с glm и работает с lrm, когда вы удаляете некоторые переменные, это, вероятно, проблема. К счастью, вы можете настроить допуск с помощью аргумента tol. По умолчанию to=1e-7. Попробуйте изменить его на tol=1e-9. Код будет выглядеть так:

model1 <- lrm( Outcome30Days ~ ISS1 + ISS2 + as.factor(GCSgr)+ 
as.factor(Gender)*as.factor(agegr),data=sub2, x=T, y=T, se.fit=T, tol=1e-9)

Это лучше, чем возиться со штрафом, потому что изменение штрафа изменит вашу логарифмическую вероятность и может повлиять на ваши результаты.

20.11.2015
  • Другой вариант — увеличить максимальное количество итераций с помощью параметра maxit= — по умолчанию для lrm.fit(), находящегося под lrm(), установлено 12 итераций, а для glm.fit() — 25, согласно файлам справки. 08.03.2017
  • Новые материалы

    Я собираюсь научить вас Python шаг за шагом
    Привет, уважаемый энтузиаст Python! 👋 Готовы погрузиться в мир Python? Сегодня я приготовил для вас кое-что интересное, что сделает ваше путешествие более приятным, чем шарик мороженого в..

    Альтернатива шаблону исходящих сообщений для архитектуры микросервисов
    Познакомьтесь с двухэтапным сообщением В этой статье предлагается альтернативный шаблон для папки Исходящие : двухэтапное сообщение. Он основан не на очереди сообщений, а на..

    React on Rails
    Основное приложение Reverb - это всеми любимый монолит Rails. Он отлично обслуживает наш API и уровень просмотра трафика. По мере роста мы добавляли больше интерактивных элементов..

    Что такое гибкие методологии разработки программного обеспечения
    Что представляют собой гибкие методологии разработки программного обеспечения в 2023 году Agile-методологии разработки программного обеспечения заключаются в следующем: И. Введение A...

    Ториго  — революция в игре Го
    Наш следующий вызов против ИИ и для ИИ. Сможет ли он победить людей в обновленной игре Го? Обратите внимание, что в следующей статье AI означает искусственный интеллект, а Goban  —..

    Простое развертывание моделей с помощью Mlflow — Упаковка классификатора обзоров продуктов NLP от HuggingFace
    Как сохранить свои модели машинного обучения в формате с открытым исходным кодом с помощью MLFlow, чтобы позже получить возможность легкого развертывания. Сегодня модели упаковки имеют несколько..

    Математика и интуиция - Часть 1
    У каждой математической формулы есть доказательство. Часто эти доказательства слишком сложно понять, поскольку многие из них основаны на индукции, некоторые - на очень сложных наблюдениях, а..