ADsP 실전문제 풀이

본 토픽은 현재 준비중입니다. 공동공부에 참여하시면 완성 되었을 때 알려드립니다.

73~96

75번 summary()함수와 factor 자료형

여기서는 쥐의 먹이 종류에 따른 몸무게의 시간에 따른 변화를 측정한 자료인 BodyWeight 데이터를 사용합니다. 이 친구는 nlme라는 패키지에 내장되어 있습니다.

> library(nlme)
> data(BodyWeight)
> head(BodyWeight)
Grouped Data: weight ~ Time | Rat
  weight Time Rat Diet
1    240    1   1    1
2    250    8   1    1
3    255   15   1    1
4    260   22   1    1
5    262   29   1    1
6    258   36   1    1

데이터 프레임에 summary() 함수를 쓰게 되면 데이터에 대한 요약 통계 값을 보여줍니다.

summary(BodyWeight)
     weight           Time            Rat      Diet  
 Min.   :225.0   Min.   : 1.00   2      : 11   1:88  
 1st Qu.:267.0   1st Qu.:15.00   3      : 11   2:44  
 Median :344.5   Median :36.00   4      : 11   3:44  
 Mean   :384.5   Mean   :33.55   1      : 11         
 3rd Qu.:511.2   3rd Qu.:50.00   8      : 11         
 Max.   :628.0   Max.   :64.00   5      : 11         
                                 (Other):110

1번 숫자형 numeric으로 인식한 데이터는 4분위 수를 구해줍니다. weight나 Time처럼요. Diet는 숫자가 아니라 3종류 뿐인 요인factor 입니다. 각 factor의 개수를 세서 보여줍니다.

따라서 1번은 틀린 선지 입니다. 정답은 1번!

2번 Diet의 종류가 1, 2, 3이니까 먹이의 종류는 3가지 입니다. 

3번 해보면 아시겠지만 mean(BodyWeight$Diet)는 불가능합니다. 숫자여야 평균(mean)을 구할 텐데, Diet는 factor이기 때문이죠.

> mean(BodyWeight$Diet)
[1] NA
Warning message:
In mean.default(BodyWeight$Diet) :
  인자가 수치형 또는 논리형이 아니므로 NA를 반환합니다

4번 mean은 평균값입니다. 한편 median은 중앙값이라고 일렬로 데이터를 늘어놓았을 때 정확히 정 중앙에 있는 데이터 값입니다. weight의 Mean을 보면 선지와 똑같이 384.5이죠.

추가 : 연습문제

이 데이터셋에서 관측치의 개수는 몇 개일까요? Diet를 보면 88, 44, 44 개인데 이를 모두 합쳐면 196개가 나옵니다.

변수의 개수는 몇 개일까요? weight, Time, Rat, Diet 총 4가지입니다.

정답은 검은 부분을 드래그해서 확인하세요.

 

단답 15번 주성분 분석

또 주성분 분석입니다. 회귀 분석과 함께 계속 보게 될 문제지만 패턴은 뻔합니다.

PC2를 보면 누적 비율Cumulative Proportion이 0.8675입니다. 답은 86.75%죠. 주성분 분석에 대한 자세한 설명은 10번 문제를 참고하세요.

84번 독립표본 t검정 (전문가 ADP급)

준전문가 시험 범위가 아닙니다. 일단 넘어가겠습니다!

85번 swiss 회귀분석 - 변수선택법

다시 회귀분석입니다만, 이번에는 변수 선택법에 관한 문제입니다. 변수를 선택할 때는 4가지 방법이 있습니다. 모든 조합을 다 시험해보는 방법은 확실하지만, 변수가 많을 때에는 시간이 오래 걸립니다.

다음은 가장 중요해 보이는 변수를 '추가'해나가는 '전진'선택법입니다. 하지만 변수를 추가하면서 결과가 달라져 안정성이 부족한 편입니다.

다음은 문제에서 묻고 있는 후진 소거법입니다. 가장 적은 영향을 주고, 가장 덜 유의한 변수부터 제거해나가는 방법인데요.

> data("swiss")
> head(swiss)
             Fertility Agriculture Examination Education Catholic Infant.Mortality
Courtelary        80.2        17.0          15        12     9.96             22.2
Delemont          83.1        45.1           6         9    84.84             22.2
Franches-Mnt      92.5        39.7           5         5    93.40             20.2
Moutier           85.8        36.5          12         7    33.77             20.3
Neuveville        76.9        43.5          17        15     5.16             20.6
Porrentruy        76.1        35.3           9         7    90.57             26.6
> summary(lm1 <- lm(Fertility ~ . , data = swiss))

Call:
lm(formula = Fertility ~ ., data = swiss)

Residuals:
     Min       1Q   Median       3Q      Max 
-15.2743  -5.2617   0.5032   4.1198  15.3213 

Coefficients:
                 Estimate Std. Error t value Pr(>|t|)    
(Intercept)      66.91518   10.70604   6.250 1.91e-07 ***
Agriculture      -0.17211    0.07030  -2.448  0.01873 *  
Examination      -0.25801    0.25388  -1.016  0.31546    
Education        -0.87094    0.18303  -4.758 2.43e-05 ***
Catholic          0.10412    0.03526   2.953  0.00519 ** 
Infant.Mortality  1.07705    0.38172   2.822  0.00734 ** 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 7.165 on 41 degrees of freedom
Multiple R-squared:  0.7067,    Adjusted R-squared:  0.671 
F-statistic: 19.76 on 5 and 41 DF,  p-value: 5.594e-10

어떤 변수를 제거해야할지 알고 싶으면 각 변수 오른쪽 끝에 있는 *의 개수를 보면 됩니다. 

Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

이렇게 설명이 나와 있는데, 쉽게 말해 *이 많을 수록 통계적으로 유의하고 중요하다는 말입니다. 거꾸로 말하면 *이 한 개도 안 달린 Examination 같은 변수는 출산율(Fertility)과 별 관계가 없다는 거죠.

그래서 정답은 2번입니다.

한편 아까 4가지 변수선택법이 있다고 했는데요. 마지막 방법은 단계별 방법(stepwise method)이라 부르는데, 직역하면 현명하게 한 걸음 한 걸음 내딛는다는 뜻입니다. 변수를 추가해나가면서 새 변수가 문제를 일으키면 그 변수를 삭제하는 식으로 단계별로 추가/삭제를 섞어 쓰면서 더 이상 검토할 게 없을 때 끝납니다. 전진 선택법과 후진 제거법을 절충한 방식이라 할 수 있겠죠.

86번 산점도 - 상관계수

이렇게 각 데이터를 점으로 표시해서 흩어놓은 것을 산점도(Scatter plot)라고 부릅니다.

1번 이렇게 둥글게 퍼진 모양은 상관계수가 0에 가깝습니다.

2번 상관계수가 1이면 오른쪽으로 올라가는 직선 모양을 하고 있습니다.

3번 상관계수가 -1이면 오른쪽으로 떨어지는 직선 모양을 하고 있습니다.

4번 상관계수는 -1 <= r <=1 다시 말해 -1과 같거나 더 크고 1과 같거나 작아야 합니다. 따라서 상관계수가 2로 나올 수는 없습니다.

 

87번 처치에 따른 효과, 신뢰구간

내장 데이터면 찾아서 직접 구현해보고 싶었는데, 데이터셋을 찾지 못했습니다. 그래서 해설만 해보겠습니다.

일단 약을 먹으면 폐활량이 늘어나는 건 분명해보입니다. 그런데 실선(여자)가 더 위로 올라가 있죠. 점선은 저 아래 있습니다. 다시 말해 여자와 남자 모두에게 약이 효과가 있지만... 여자에게 효과가 더 좋은 약인 모양입니다.

1번 참

2번 남녀가 같으니까 참입니다.

3번 여자female에게 더 효과적이니 거짓입니다. 정답은 3번!

4번 교호작용은 어떤 변수의 효과가 다른 변수의 영향을 받는다는 뜻입니다. 쉽게 말해 '성별Sex'에 따라 '약Drug'의 효과가 달라지는 게 바로 교호작용입니다. 교호작용이 존재한다는 참.

94번 tapply

tapply는 범주형 변수별로, 주어진 변수의 값을 함수로 계산해주는 함수입니다. 일단 보면 BrandABCD가 있습니다. 이건 Detergent 세제의 종류인 모양입니다. 그러니 Water인 1번과 4번은 제외합니다.

그러면 2번과 3번의 싸움인데요. 우리는 '평균'을 구하는 함수를 찾고 있습니다.

앞서 말했듯 평균을 구하는 함수는 Mean입니다. 그리고 Median은 중앙값이죠. 이에 대해서는 방금 75번에서 설명했으니 넘어가겠습니다.

정답은 Detergent에 mean 을 사용하는 2번입니다.

95번

역시 무슨 데이터를 썼는지 몰라서 해설만 하고 넘어가겠습니다.

Q-Qplot은 정규분포일 때 기대되는 '분위수'를 나타낸 그래프입니다. 4분위수 할 때 그 분위수입니다. 다만 4등분이 아니라 매우 잘게 쪼갠 그래프지요. 정규분포에 가까울 수록 Q-Q 플롯은 대각선 모양을 하게 됩니다. 그래서 주어진 분포가 정규분포인지 검사할 때 Q-Q플롯을 사용합니다. 

이 중에 가장 직선에 가까운 건 '나' 2번입니다.

 

  • 봤어요 (0명)

댓글

댓글 본문
작성자
비밀번호
버전 관리
Taehee Kim
현재 버전
선택 버전
graphittie 자세히 보기