Линейная регрессия с взаимодействием терпит неудачу в rms-пакете

Я играю с взаимодействием в формуле. Я задавался вопросом, возможно ли сделать регрессию с взаимодействием для одной из двух фиктивных переменных. Кажется, что это работает в регулярной линейной регрессии с использованием функции lm (), но с функцией ols () в пакете rms та же формула не выполняется. Кто-нибудь знает почему?

Here's my example

<code>data(mtcars)

mtcars$gear <- factor(mtcars$gear)
regular_lm <- lm(mpg ~ wt + cyl + gear + cyl:gear, data=mtcars)
summary(regular_lm)

regular_lm <- lm(mpg ~ wt + cyl + gear + cyl:I(gear == "4"), data=mtcars)
summary(regular_lm)
</code>

А теперь пример RMS

<code>library(rms)

dd <- datadist(mtcars)
options(datadist = "dd")

regular_ols <- ols(mpg ~ wt + cyl + gear + cyl:gear, data=mtcars)
regular_ols

# Fails with:
#     Error in if (!length(fname) || !any(fname == zname)) { : 
#         missing value where TRUE/FALSE needed
regular_ols <- ols(mpg ~ wt + cyl + gear + cyl:I(gear == "4"), data=mtcars)
</code>

Этот эксперимент может быть не самой разумной статистикой, поскольку кажется, что оценки существенно меняются, но мне немного любопытно, почему ols () терпит неудачу, поскольку он должен выполнять «те же процедуры подгонки, которые используются lm».

Ответы на вопрос(1)

Ваш ответ на вопрос