오류
length of 'dimnames' [2] not equal to array extent
발생
베이즈회귀(bayesreg) 모델을 통해 예측을 시도(predict)하는 과정에서 발생
재현
library(car)
library(bayesreg)
m <- bayesreg(
income ~ education+prestige ,
data=Prestige,
model = "normal",
prior = "ridge",
n.samples = 1000,
burnin = 1000,
thin = 5,
t.dof = 5
)
predict(
m,
data.frame(education=17,prestige=90),
type = "linpred",
bayes.avg = FALSE,
sum.stat = "mean",
CI = 95
)
연구
newdata 인수에 Prestige 를 주면 에러가 안남.
이는 모델 생성시 사용한 data 포맷과 동일한 포맷의 newdata 가 인수로 들어가야 함을 의미
그런데 Prestige 중 하나의 행 즉 Prestige[1,]을 주면 에러가 남.
Prestige[4:5,] 와 같이 2개 이상의 행이면 문제가 없다.
깔끔한 해결책은 아직 모르겠습니다.
지저분하지만 data.frame(education=17,prestige=90) 에 훈련데이터에 있는 변수들을 추가하고 하나의 추가적인 행을 추가해서 예측을 하면 오류를 피할 수가 있습니다.
workaround
test <- rbind(data.frame(education=17,income=NA,women=NA,prestige=90,census=NA,type=NA),
data.frame(education=17,income=NA,women=NA,prestige=90,census=NA,type=NA))
predict(
m,
test,
type = "linpred",
bayes.avg = FALSE,
sum.stat = "mean",
CI = 95
)
'ADP (R)' 카테고리의 다른 글
ADP 27회 실기 후기 (0) | 2022.11.28 |
---|---|
[R] use column names for `x` 오류 해결 (0) | 2022.11.15 |
[R]`data` and `reference` should be factors... (0) | 2022.10.30 |
[R] factor() vs as.factor() (0) | 2022.10.28 |
[Adp 실기 기출 풀이] 25회 평균 계산 문제 (0) | 2022.10.27 |