0. 들어가며
27회 ADP 실기를 76.7 점 (기계학습 28.7/통계학습 48)으로 간신히 합격했습니다.
불합격했던 첫 번째 도전인 26회 시험에 나왔던 문제를 복원하고, 연구하는 과정이 이번 27회 시험의 quantile regression 풀이에 큰 도움이 되었습니다.
베이지회귀 문제는 5+5=10 점 중 3+0=3점 정도 획득했을 것 같습니다.
시험 본 직후에 복기를 했던 글 입니다.
[Adp 실기 기출 풀이] 26회 - 베이지안 회귀분석
help.search 를 이용하여 bayesreg 라는 패키지를 찾았는데, 회귀계수는 대충 뽑았었고(추측 점수 3점) 예측에는 실패(추측 점수 빵점)했었습니다.
추측 점수가 3점이라고 한 이유는, 회귀분석 모델이 문제에서 원하는 것과는 거리가 있기 때문입니다.
문제에서는 역감마함수를 사전분포로 하라고 했는데,bayesreg 의 prior 나 model 옵션 중에 그에 맞는 값을 찾을 수 없습니다. MCMCpack 패키지도 살펴보았지만 문제에 딱 맞는 부분을 찾지 못했습니다.
예측은 predict 함수를 이용하여 시도했지만 실패했습다.
한 달 정도 연구한 끝에 얻은 결론이 workaround (쉬운 말로 표현하면 꽁수)입니다.
[R] length of 'dimnames' [2] not equal to array extent
그냥 하나의 행을 갖는 dataframe 을 인수로 넘기면 에러가 나니, 똑 같은 행을 두 개로 만들어 인수로 넘겨 결과를 보는 허접한 꽁수였습니다.
그런데 당연하면서도 놀라운 답을 우연히 알게 되었습니다.
직접 회귀식을 작성하고 독립 변수를 대입해서 예측하면 되지 않겠느냐는 의견을 채팅방(https://open.kakao.com/o/gJl1ud2c)에서 보았습니다.
가장 기본적인 방법을 떠올리지 못했던 것입니다. 감사합니다. 소니님~
베이즈회귀 문제를 education 과 prestige 변수로 income 을 예측하는 문제라고 하는 것을 보니,채팅방 질문자가 제 복원문제 글을 보았을 것 같습니다.
이번 답안에는 set.seed 를 추가하였습니다.
결과가 매번 달라진다는 점을 몰랐는데, 오랜만에 다시 풀어보니 결과가 실행할 때마다 달라지는 군요. MCMC 그러니깐 몬테칼로 시뮬레이션이 돌아가니 결과가 매번 달라지겠지요.
model = "normal" 그리고 prior = "ridge" 는 bayesreg 에서 제공하는 디폴트이며 더 적합한 것을 찾지 못해 그대로입니다. 이 부분은 다른 패키지를 찾거나 해야 하는 남겨진 숙제입니다.
1. 문제
7. car 패키지의 Prestige 데이터에서 독립변수를 education, prestige로 하여 종속변수 income을 예측하는 베이지안 회귀 모델을 생성하라. (실제 문제는 몸무게 키 허리둘레 3개 칼럼으로 구성된 weight.csv 파일을 읽어서 다음을 구하라.)
7-1 회귀계수를 소수점 2자리에서 반올림하여 구하라.
단, 회귀모델 수립시 burnin 은 1000 으로 하고 MCMC는 10000 이상 되게하고 prior 분포는 역감마함수를 사용하고 Improper XXX XXX XXX 를 사용해라 (조건을 엄청 많이 주었는데 잘 모르는 내용이라 기억이 부실합니다.)
7-2 주어진 식을 이용하여 education이고 17이고 prestige가 90 일 때 income을 예측하라
2. 풀이
7-1 회귀계수
education prestige 절편의 회귀계수는 각각 -73.23 181.33 -884.48 임
#데이터
data(Prestige,package = "carData")
head(Prestige)
#풀이
library(bayesreg)
set.seed(1234)
m <- bayesreg(
income ~ education+prestige ,
data=Prestige,
model = "normal",
prior = "ridge",
n.samples = 1000,
burnin = 1000,
thin = 5,
t.dof = 5
)
summary(m)
7-2 예측
education이고 17이고 prestige가 90 일 때의 income은 14190.31 임
17 * -73.23 + 90 * 181.33 -884.48
'ADP (R)' 카테고리의 다른 글
ADP 27회 실기 합격 - 통계 고득점 분석 (2) | 2023.01.19 |
---|---|
[Adp 실기 기출 풀이] 27회 - Quantile 회귀 (0) | 2023.01.17 |
[Adp 실기 기출 풀이] 27회 - Type3 분산 분석 (0) | 2023.01.13 |
ADP 27회 실기 합격 - 공부 방법 (0) | 2023.01.05 |
ADP 27회 실기 합격-아직도 합격예정? (0) | 2022.12.23 |