ADsP 실전문제 풀이

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

49~72

51번

시계열 ARMA모델 문제입니다. PACF와 ACF그래프를 읽을 줄 알아야합니다.

문제에서 어떤 데이터를 썼는지 몰라서 앞에서 사용한 lh데이터를 다시 불러왔습니다. 시중 교재들은 보통 영국 왕의 사망 시기를 기록한 king 데이터를 쓰는 모양입니다.

> data(lh) #앞서 실습했던 lh 호르몬 시계열 데이터를 다시 불러옵니다.
> acf(lh) #MA모델을 어떻게 만들지 알기 위해서 acf 플롯을 그립니다.
> pacf(lh) #AR모델을 어떻게 만들지 알기 위해서 pacf플롯을 그립니다.

그러면 이런 플롯이 나옵니다.

위 쪽이 ACF고 아래쪽이 PACF입니다. 도표 왼쪽을 보면 쓰여 있죠.

그래프에서 주목해야할 건 저 파란색 점선입니다. 값이 파란색 점선 안으로 들어오기 직전의 값을, 절단값이라 부릅니다. 이 절단 값을 보고 MA와 AR모델을 결정하고, 둘을 합쳐서 ARMA모델을 만들게 됩니다.

교재와 달리 저희 lh데이터를 보면 ACF는 절단값이 MA(1) (0에서 시작하기 때문에 2번째지만 1입니다), PACF도 AR(1) (이쪽은 1부터 시작하니까 1입니다.)인 걸 알 수 있습니다.

고로 교재와 달리 저희 lh데이터 모델에서는 ARMA(1,1)이 되겠네요.

52번

또 주성분 분석 문제입니다. 이제 패턴이 보이시죠? 친숙한 iris붓꽃 데이터를 다시 가져와서 주성분 분석을 해보겠습니다.

#iris 의 5번째 열은 붓꽃의 품종을 분류한 요인factor이라
#[1:4]를 써서 제외했습니다.

> princomp(iris[1:4])
Call:
princomp(x = iris[1:4])

Standard deviations:
   Comp.1    Comp.2    Comp.3    Comp.4 
2.0494032 0.4909714 0.2787259 0.1538707 

 4  variables and  150 observations.

#이제 summary()함수를 써서 요약된 분석결과를 봅시다.
> summary(princomp(iris[1:4]))
Importance of components:
                          Comp.1     Comp.2     Comp.3      Comp.4
Standard deviation     2.0494032 0.49097143 0.27872586 0.153870700
Proportion of Variance 0.9246187 0.05306648 0.01710261 0.005212184
Cumulative Proportion  0.9246187 0.97768521 0.99478782 1.000000000

주성분 분석은 항상 Cumulative Proportion만 봐도 됩니다. 3개 열 중에 맨 아래 열이죠. 

아이리스 데이터의 경우 1개의 주성분으로도 92.46%나 되는 데이터를 설명하고 있습니다. 그러면 4개의 변수를 1개의 변수로 축약할 경우 손실되는 데이터는... 100- 92.46 = 7.54% 가 되겠지요?

책에 나온 예제에서는 2개 변수로 축약할 때... 다시 말해 Comp.2에서 0.9555 다시 말해 95.55%를 설명하고 있습니다. 선택지에 나온 것처럼 소수점 아래 한 자리까지 반올림하면 95.6%죠. 100에서 95.6을 빼면 4.4%니까 4번입니다.

단답11

단골 손님인 선형회귀입니다. 이번에는  cars 내장 데이터가  등장했습니다. 차의 속도마다 브레이크를 밟았을 때 멈출 때까지의 제동거리 데이터를 담고 있는데요. 정말 심플하게 생겼습니다.

> cars
   speed dist
1      4    2
2      4   10
3      7    4
4      7   22
5      8   16

이 정도만 살펴봐도 속도가 빠를 수록 제동거리도 커진다는 걸 알 수 있죠. 양의 상관 관계가 있는듯 합니다. 하지만 같은 속도일 때에도 2~10, 4~22 정도로 분산이 큰 편이네요.

데이터는 살펴봤으니 바로 선형 회귀를 해볼까요?

> model = lm(formula = dist ~ speed, data = cars)
> summary(model)

Call:
lm(formula = dist ~ speed, data = cars)

Residuals:
    Min      1Q  Median      3Q     Max 
-29.069  -9.525  -2.272   9.215  43.201 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -17.5791     6.7584  -2.601   0.0123 *  
speed         3.9324     0.4155   9.464 1.49e-12 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 15.38 on 48 degrees of freedom
Multiple R-squared:  0.6511,    Adjusted R-squared:  0.6438 
F-statistic: 89.57 on 1 and 48 DF,  p-value: 1.49e-12

풀이 과정은 다음과 같습니다

  1. Estimate 값을 보고 회귀식을 구합니다. dist = 3.9324*speed -17.5791
  2. 회귀식에 10마일을 대입합니다. dist = 39.324 -17.5791 = 21.7449

답은 21.4가 아니라 21.7입니다. 교재 해설대로 계산을 해봐도 아실 거에요. 교재 오류입니다.

63번

이번 문제에서 사용한 데이터는 USArrests 내장 데이터입니다. 살인, 폭행, 도시범죄, 강간 순으로 되어 있습니다.

> data("USArrests")
> USArrests
               Murder Assault UrbanPop Rape
Alabama          13.2     236       58 21.2
Alaska           10.0     263       48 44.5
Arizona           8.1     294       80 31.0
Arkansas          8.8     190       50 19.5
California        9.0     276       91 40.6

그러면 바로 군집 분석을 해볼까요?

#군집 분석 모델을 만듭니다.
> hc <- hclust(dist(USArrests),method="ave")
# 결과를 출력합니다.
> plot(hc, hang =-1)

책에 나온 것과 같은 결과가 나왔죠?

  1. 이 모델은 계층적 군집화 모델입니다. 군집 모델은 계층 / 비계층 / 혼합 모델 3종류가 있는데요. 계층적 군집화 모델은 먼저 크게 쪼갠 다음 세세하게 쪼개 나갑니다. 그래서 그림과 같은 모양을 하게 되죠. 답은 1번
  2. method로 ave를 썼는데요. 도표 아래를 보면 average(평균)이라고 쓰여 있는 것도 볼 수 있습니다. 평균연결법을 사용했다는 뜻입니다. 그 밖에도 최단 / 최장 / 와드 연결법이 있습니다. 다른 방법을 쓰면 결과도 달라지겠죠... 이건 4번으로 이어집니다.
  3. 왼쪽 끝을 보면 플로리다, 노스 캐롤라이나... 그 다음에 캘리포니아가 있죠. 이 계층적 구조도는 일단 둘로 나눈 다음 각각 또 둘로 나눠서 4개 줄기로 나눌 수 있는데요. 플로리다와 노스 캐롤라이나는 같은 줄기에 있지만... 캘리포니아는 다른 줄기에 속해 있는 걸 볼 수 있습니다.
  4. 앞서 말했듯 다른 거리 정의 방법을 쓰면 결과가 다르게 나옵니다.  자세한 설명은 교재의 군집분석 부분을 참조하세요~

65번

텍스트 마이닝은 비정형 데이터 마이닝이라 안 나옵니다. 옛날 빅데이터 전문가 가이드 기반으로 나온 책이라 그런가봐요.

댓글

댓글 본문
버전 관리
Taehee Kim
현재 버전
선택 버전
graphittie 자세히 보기