Regresja liniowa z interakcją kończy się niepowodzeniem w pakiecie rms

Bawię się interakcją w formule. Zastanawiałem się, czy możliwe jest wykonanie regresji z interakcją dla jednej z dwóch zmiennych obojętnych. Wydaje się, że działa to w regularnej regresji liniowej za pomocą funkcji lm (), ale z funkcją ols () w pakiecie RMS ta sama formuła nie działa. Ktoś wie dlaczego?

Oto mój przykład

<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>

A teraz przykład 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>

Ten eksperyment może nie być najmądrzejszą statystyką, ponieważ wydaje się, że szacunki ulegają znacznym zmianom, ale jestem trochę ciekawy, dlaczego ols () zawodzi, ponieważ powinien wykonywać „te same procedury dopasowania używane przez lm”

questionAnswers(1)

yourAnswerToTheQuestion