0
아래 코드에서 모델 1 & 2는 올바르게 작동하고 동일한 결과를 산출합니다. 모델 4는 잘 작동합니다.올레 (ols)에 대한 상호 작용이있는 공식
require(rms)
mtcars$ind <- I(mtcars$gear==4)
dd <- datadist(mtcars)
options(datadist = "dd")
ols(as.formula(mpg ~ wt + cyl + gear + cyl:gear), data=mtcars) #1
ols(as.formula(mpg ~ wt + cyl + gear + cyl * gear), data=mtcars) #2
ols(as.formula(mpg ~ wt + cyl + gear + cyl:ind), data=mtcars) #3
ols(as.formula(mpg ~ wt + cyl + gear + cyl * ind), data=mtcars) #4
모델 3 다음 오류
Error in if (!length(fname) || !any(fname == zname)) { :
missing value where TRUE/FALSE needed
에게 OLS와 RMS에서 I는 디버그 (설정하려고
2: Design(eval.parent(m))
1: ols(as.formula(mpg ~ wt + cyl + gear + cyl:ind), data = mtcars)
추적의 출력()이다) ::: 디자인을 제공하며 아주 멀지 않았다 !! 나는 rms :: lrm()을 사용할 때이 문제에 부딪 쳤고 ol에서 일어난다는 것을 깨달았다.
# 3은 # 3이 작동하지 않는 이유는 무엇입니까? 그들은 하나의 수식에서 동일한 용어를 사용하는데 :
을 사용하고 다른 하나는 *
을 사용합니다. 고마워.
왜 'as.formula'에서 수식을 래핑합니까? 꼭 필요한 것은 아닙니다. 또한 질문을 쉽게 대답 할 수 있도록 [재현 가능한 예] (http://stackoverflow.com/a/5963610/1412059)를 제공해야합니다. 그러나 세 번째 모델에는'cyl : ind'라는 상호 작용이 포함되어 있지만'ind'는 주 효과로 포함되어 있지 않습니다. 그와 같은 것은 매우 구체적인 상황에서만 좋은 아이디어이지만 일반적으로는 아닙니다. 'ols'는 상호 작용의 효과가 항상 주 효과로 존재한다고 가정한다는 것은 잘 추측 할 수 있습니다. – Roland
고맙습니다 @roland. 여기에 인스턴스를 생성하는 코드는 없지만 mtcars는 [datasets] (https://stat.ethz.ch/R-manual/R-devel/library/datasets/html/mtcars.html)의 일부입니다. 따라서 위의 코드는있는 그대로 실행될 수 있습니다. – ironv