다음과 같은 유사한 질문과 답변을 검토했지만 다른 질문을하기에 충분하지 않은 것으로 생각됩니다.newdata에 대한 예측 경고
Getting Warning: " 'newdata' had 1 row but variables found have 32 rows" on predict.lm in R
R Warning: newdata' had 15 rows but variables found have 22 rows
Warning message 'newdata' had 1 row but variables found have 16 rows in R
warning when calculating predicted values
Trouble using predict with linear model in R
Predict.lm in R fails to recognize newdata
,536,913,632 10마지막으로 나열된 질문은 모델링 된 것과 득점되는 것 사이의 명명 규칙의 핵심에 이르는 Joran의 커다란 답을 얻었습니다.
필자가 맞추는 모델은 몇 가지 명명 문제를 생성하는 다항식입니다.
val poly(grp, 2).1 poly(grp, 2).2
1 39.54227 -0.290170670 0.374017601
2 48.68225 -0.272368788 0.308602552
주 내 예측 변수의 이름 :
mdl <- lm(val ~ poly(grp,2), data = mRetCurv)
model.frame(mdl)
다음과 같은 출력을 생성합니다. 내가
predict.lm(mdl, newdata = apl$grp)
를 호출하면 나는 변수 GRP와 같은 표준 경고를! = 폴리 (GRP, 2) 0.1 또는 폴리 (GRP, 2) .2까지 predict.lm로 우려하고있다. 나는 grp의 중복 열을 만들고 model.frame과 일치하도록 두 이름을 바꾸려고했지만 R은 "poly (grp, 2) .1"을 열 이름으로 사용하지 않았습니다. 또한 많은 행에 적용 할 때 데이터를 복제하는 데이터 효율적인 솔루션이 아닙니다.
도움을 주시면 감사하겠습니다.
는
'newdata'는 벡터가 아닌 데이터 프레임이어야한다고 생각합니다. 'predict (mdl, newdata = apl)'를 실행하면 어떻게됩니까? – eipi10
apl은 데이터 프레임이며 이미 변수 grp가 있습니다. 즉, 나는 방금 말한 것을 시도하고 apl $ grp를 떨어 뜨 렸습니다. 그리고 그것은 완벽하게 작동했습니다. 덧글 대신 대답으로 추가하면 나는 그것을 당신에게 맞는 것으로 표시하는 것이 행복 할 것입니다. – VPMACH