rms пакет Glm: как добавить показатели в формулу
Я пытаюсь построить модель glm, используя Glm() из пакета rms в R. Но я не знаю правильного выражения в формуле Glm для индикаторов.
Позвольте мне использовать данные диафрагмы в качестве примера, в базе R glm
функция, мой код работает, и это как ниже:
model1 = glm(Sepal.Length~Sepal.Width + Petal.Length + ifelse(Sepal.Width==3,1,0),data=iris)
Но если я использую ту же формулу в Glm
, он вернется
model2 = Glm(Sepal.Length~Sepal.Width + Petal.Length + ifelse(Sepal.Width==3,1,0),data=iris)
Ошибка в if (! Length(fname) ||! Any(fname == zname)) {: отсутствует значение там, где требуется TRUE/FALSE
Или если я использую
model3 = Glm(Sepal.Length~Sepal.Width + Petal.Length + asis(Sepal.Width==3),data=iris)
Ошибка в if (asc[i] == 8) next: пропущенное значение, где требуется TRUE/FALSE
Я просто не знаю, как правильно определить это преобразование. Также я знаю, что могу решить эту проблему, поместив этот индикатор в качестве нового столбца в данных, но тогда я не смог использовать rms
"s Predict()
функция для генерации правильного сюжета.
1 ответ
Как предполагается в комментариях, это, кажется, работает хорошо (я действительно не знаю, что я делаю с datadist
, но шарить...)
iris$sepal3 <- as.numeric(iris$Sepal.Width==3)
library(rms)
ddist <- with(iris,datadist(Sepal.Width, Petal.Length, sepal3))
options(datadist="ddist")
model1 <- Glm(Sepal.Length~Sepal.Width + Petal.Length + sepal3,
data=iris)
plot(Predict(model1))
(Я получаю предупреждение о Calling 'structure(NULL, *)' is deprecated
, но я думаю, что это потому, что я использую версию разработки R с версией 5.1 RMS...