축적된 지식을 바탕으로 근본 원리를 깊이 이해하고, 이를 새로운 상황에 적용해 도출하는 창의적인 아이디어
지식에 근본 원리에 대한 이해와 창의적 판단이 더해진 최상위 단계는 지혜(Wisdom)이다.
DIKW는 객관적 사실인 데이터에서 의미가 해석된 정보, 정보가 구조화·내면화된 지식을 거쳐 지혜로 올라간다.
- 데이터는 다른 데이터와의 관계가 해석되기 전의 가공 전 사실이다.
- 정보는 데이터를 가공해 연관 관계와 의미를 도출한 결과이다.
- 지식은 정보를 분류·구조화해 자신의 것으로 내면화한 단계이다.
동일한 내용의 데이터가 중복되지 않도록 한곳에 모아 관리하는 것은 통합된 데이터(Integrated Data)의 특징이다.
데이터베이스의 4가지 특징은 통합된 데이터·저장된 데이터·공용 데이터·변화되는 데이터이다.
- 저장된 데이터는 컴퓨터가 접근할 수 있는 매체에 기록된다는 뜻이다.
- 공용 데이터는 여러 사용자가 서로 다른 목적으로 함께 이용한다는 뜻이다.
- 변화되는 데이터는 갱신을 거치면서도 현재의 정확한 상태를 유지한다는 뜻이다.
OLTP는 개별 거래 단위의 상세 데이터를 다루고, OLAP는 분석을 위해 집계된 요약 데이터를 주로 다루므로 방향이 뒤바뀌었다.
OLTP는 주문·입금 같은 거래를 실시간 처리하는 데이터 위주 시스템이고, OLAP는 다차원 데이터를 대화식으로 분석하는 정보 위주 시스템이다.
- OLTP는 삽입·갱신이 잦고 OLAP는 대량 조회 중심이다.
- OLTP는 현재 값, OLAP는 누적된 과거 이력을 주로 본다.
- OLTP는 중복을 줄이는 정규화, OLAP는 조회 성능을 위한 비정규화 구조를 쓴다.
데이터의 품질과 신뢰성, 즉 믿을 수 있는 데이터인지를 따지는 특성은 정확성(Veracity)이며, 3V에 덧붙는 확장 요소이다.
3V(Volume·Variety·Velocity)에 가치(Value) 또는 정확성(Veracity)을 더해 4V로 설명한다.
- 규모는 데이터의 양이 매우 크다는 특성이다.
- 다양성은 정형·반정형·비정형 등 형태가 다양하다는 특성이다.
- 속도는 데이터의 생성·처리 속도가 빠르다는 특성이다.
데이터가 재사용·재조합되고 여러 목적으로 쓰이면서 누가 언제 어디에 활용할지 알 수 없게 된 것은 데이터 활용 방식의 변화에 따른 난제이다.
가치 산정이 어려운 이유는 데이터 활용 방식, 새로운 가치 창출, 분석 기술 발전의 세 가지이다.
- 새로운 가치 창출은 기존에 없던 가치를 만들어 측정이 어렵다는 이유이다.
- 분석 기술 발전은 지금은 가치 없는 데이터도 새 기법으로 가치가 생긴다는 이유이다.
- 저장 매체 가격 하락은 빅데이터 출현 배경일 뿐 가치 산정 난제가 아니다.
(가) 고객의 나이와 월 이용 시간이 만족도 점수에 얼마나 영향을 주는지 수치로 추정한다.
(나) 신제품 후기 문장에 쓰인 표현을 긍정·부정으로 판별해 비율을 집계한다.
(가)는 독립변수의 변화가 종속변수에 미치는 영향을 추정하므로 회귀분석, (나)는 문장의 긍정·부정을 판별하므로 감정분석이다.
7가지 기본 테크닉은 연관규칙 학습·유형분석·유전 알고리즘·기계학습·회귀분석·감정분석·소셜네트워크 분석이다.
- 유형분석은 새 사례가 어느 집단에 속하는지 분류하는 기법이다.
- 소셜네트워크 분석은 사람 간 관계와 영향력을 파악하는 기법이다.
- 연관규칙 학습은 함께 나타나는 항목 간 관계를 찾는 기법이다.
한 번 수집된 개인정보가 여러 기관을 거치며 2차·3차 목적으로 재사용되어, 정보 제공자가 수집 당시 동의한 범위만으로는 실제 활용 용도를 모두 알 수 없게 되었다.
재사용이 일상화된 환경에서는 제공자 동의만으로 통제하기 어려우므로 사생활 침해는 동의에서 책임으로 전환해 사용자 책임을 강화하는 방식으로 막는다.
건마다 동의를 다시 받는 방식은 활용 경로를 모두 예측할 수 없어 근본 대책이 되지 못한다.
- 용도마다 재동의를 받는 것은 기존 동의 모델을 강화할 뿐 한계를 해결하지 못한다.
- 예측만으로 제재하는 것은 책임 원칙 훼손 문제에 해당한다.
- 알고리즈미스트는 알고리즘 피해자를 대변하는 전문가로 수집 범위 결정과 무관하다.
알고리즘이 데이터를 학습하며 스스로 개선되는 것은 3요소 중 기술 측면의 변화로, 진화하는 알고리즘과 인공지능이 이에 해당한다.
빅데이터 활용의 3요소는 데이터·기술·인력이며 각각 데이터화, 인공지능, 데이터 사이언티스트와 알고리즈미스트로 변화한다.
- 데이터화는 사물과 행동이 데이터로 기록되는 데이터 측면의 변화이다.
- 알고리즈미스트는 알고리즘 피해를 구제하는 인력 측면의 변화이다.
- 데이터 사이언티스트 확보는 분석 인력 측면의 과제이다.
(가) 분산 저장소를 구축하고 대용량 데이터를 병렬 처리한다.
(나) 머신러닝 알고리즘을 선택하고 통계 모형을 설계한다.
(다) 경영 문제를 분석 과제로 정의하고 결과를 의사결정에 연결한다.
(가)는 데이터 관리·처리 기술인 IT(Data Management), (나)는 수학·통계·머신러닝인 분석(Analytics), (다)는 컨설팅·커뮤니케이션인 비즈니스 분석 영역이다.
데이터 사이언스는 세 영역을 아우르며 데이터에서 의미 있는 가치를 끌어낸다.
- 분산 저장·병렬 처리는 통계 모형 설계가 아니라 IT 영역이다.
- 모형 설계는 비즈니스 분석이 아니라 분석 영역이다.
- 과제 정의와 의사결정 연결은 IT가 아니라 비즈니스 분석 영역이다.
디지털화된 정보와 사물을 효과적으로 이어 주는 것이 핵심 가치였던 시기는 연결(Connection) 단계이다.
가치 패러다임은 디지털화 → 연결 → 에이전시 순으로 변화해 왔다.
- 디지털화는 아날로그 세상을 디지털로 바꾸는 것이 가치였던 첫 단계이다.
- 에이전시는 복잡한 연결을 효과적·신뢰성 있게 관리하는 것이 가치인 단계이다.
- 자동화는 가치 패러다임 3단계에 포함되지 않는다.
분석 대상(What)은 모르지만 분석 방법(How)은 알고 있으면 통찰(Insight) 유형으로, 기존 기법으로 데이터를 분석해 새로운 지견을 얻는다.
대상과 방법을 아는지에 따라 최적화(대상·방법 모두 앎), 솔루션(대상만 앎), 통찰(방법만 앎), 발견(모두 모름)으로 나눈다.
- 최적화는 대상과 방법을 모두 알 때의 개선 접근이다.
- 솔루션은 대상은 알지만 방법을 모를 때 해법을 찾는 접근이다.
- 발견은 대상과 방법을 모두 모를 때의 접근이다.
업무 이해 단계는 업무 목적 파악, 상황 파악, 데이터 마이닝 목표 설정을 거쳐 프로젝트 계획을 수립하므로 계획서가 산출된다.
CRISP-DM은 업무 이해 → 데이터 이해 → 데이터 준비 → 모델링 → 평가 → 전개의 6단계이다.
- 데이터 품질 보고서는 데이터 이해 단계의 산출물이다.
- 분석용 데이터 세트는 데이터 준비 단계의 산출물이다.
- 모델 성능 평가 보고서는 모델링 단계의 산출물이다.
요구가 불명확할 때 시제품을 빠르게 만들어 사용자 반응으로 개선하는 상향식 모델은 프로토타입 모델이다.
방법론의 대표 모델은 폭포수·프로토타입·나선형 모델이며 상황에 맞춰 선택한다.
- 폭포수 모델은 단계를 순차 진행하는 하향식 모델이다.
- 나선형 모델은 반복마다 위험 분석을 거쳐 점진 개발하는 모델이다.
- 계층적 프로세스 모델은 단계·태스크·스텝으로 된 방법론 구조이다.
사용자·고객과 이들에게 제품·서비스를 전달하는 채널 관점의 영역은 고객(Customer)이다.
비즈니스 모델 캔버스로 업무·제품·고객·규제와 감사·지원 인프라의 5개 영역에서 과제를 도출한다.
- 업무 영역은 제품·서비스를 생산하는 내부 운영 프로세스 관점이다.
- 제품 영역은 생산·제공하는 제품과 서비스 자체의 개선 관점이다.
- 규제와 감사 영역은 생산·전달 과정의 규제와 보안 관점이다.
(가) 프로토타이핑은 가설 생성, 디자인 실험, 실제 환경 테스트, 결과에서 통찰 도출 및 가설 확인을 반복한다.
(나) 상향식 접근은 문제의 원인(Why)을 먼저 정의한 뒤 필요한 데이터를 찾는다.
(다) 데이터 사용 목적이 가변적이고 필요한 데이터의 존재가 불확실할 때 유용하다.
(라) 정답 레이블이 있는 지도 학습 방법을 주로 활용한다.
프로토타이핑은 가설 생성부터 가설 확인까지를 빠르게 반복하며, 사용 목적이 가변적이고 데이터 존재가 불확실할 때 유용하므로 (가)와 (다)가 옳다.
상향식 접근은 Why가 아닌 What 관점에서 데이터를 있는 그대로 관찰하며 비지도 학습을 주로 쓴다.
- 원인(Why)을 먼저 정의하고 데이터를 찾는 것은 하향식 접근이다.
- 상향식 접근은 레이블 없는 데이터를 다루는 비지도 학습 위주이다.
- (나)와 (라)가 틀렸으므로 이를 포함한 조합은 모두 오답이다.
형태가 다양하고 원천이 흩어진 데이터의 통합과 모델 선정을 고려하는 속성은 데이터 복잡성(Data Complexity)이다.
분석 과제의 주요 5속성은 데이터 크기·데이터 복잡성·속도·분석 복잡도·정확도와 정밀도이다.
- 데이터 크기는 분석할 데이터의 양과 지속적인 축적을 고려한다.
- 분석 복잡도는 모델의 정확도와 해석 가능성 사이의 균형을 고려한다.
- 정확도와 정밀도는 결과의 실제 값 근접성과 반복 안정성을 고려한다.
| 과제 | Volume | Variety | Velocity | Value |
|---|---|---|---|---|
| A | 낮음 | 낮음 | 낮음 | 높음 |
| B | 높음 | 높음 | 높음 | 높음 |
| C | 높음 | 높음 | 높음 | 낮음 |
| D | 낮음 | 낮음 | 낮음 | 낮음 |
3V 부담이 모두 높아 어렵고 Value가 낮아 시급하지 않은 C는 Ⅱ사분면으로 우선순위가 가장 낮다.
ROI 관점에서 Volume·Variety·Velocity는 투자비용이라 난이도로, Value는 비즈니스 효과라 시급성으로 평가하며, 쉬우면서 시급한 A(Ⅲ사분면)가 최우선이다.
- A는 쉽고 시급하므로 Ⅳ가 아니라 Ⅲ사분면이다.
- 난이도는 3V 투자비용으로, Value는 시급성으로 판단한다.
- D는 쉽지만 시급하지 않아 A보다 뒤에 추진한다.
ISP는 정보기술·시스템의 중장기 마스터 플랜을 수립하는 절차이며, 분석 마스터 플랜도 ISP 방식을 활용해 분석 과제를 도출하고 우선순위를 정한다.
마스터 플랜은 우선순위와 적용 범위·방식을 반영해 단계적 구현 로드맵까지 수립한다.
- ISP는 조직 전체의 중장기 정보화 계획으로 개별 모델 설계서가 아니다.
- 마스터 플랜은 단기 과제 수행이 아니라 중장기 관점의 계획이다.
- 우선순위 결정 후 단계별 로드맵을 수립하는 것이 마스터 플랜의 마지막 절차이다.
(가) 표준 용어와 명명 규칙을 정하고 메타데이터와 데이터 사전을 구축한다.
(나) 분석 과제의 발굴부터 수행, 평가까지의 절차를 정형화한다.
(가)는 데이터 표준화와 메타데이터 관리를 다루는 데이터(Data) 요소, (나)는 과제 기획·운영 절차인 프로세스(Process) 요소이다.
분석 거버넌스 체계는 조직·과제 기획/운영 프로세스·IT 시스템·데이터·분석 교육/마인드 육성의 5요소로 구성된다.
- 시스템 요소는 분석 관련 IT 기술과 프로그램을 다룬다.
- 조직 요소는 분석 기획·관리·추진 조직을 다룬다.
- 교육·마인드 요소는 분석 역량 교육과 문화 정착을 다룬다.
· 비즈니스 부문: 미래 결과 예측과 시뮬레이션을 업무에 활용
· 조직·역량 부문: 전문 담당 부서에서 분석 수행, 관리자가 분석 결과 활용
· IT 부문: 실시간 대시보드와 통계 분석 환경 운영
예측·시뮬레이션, 전문 부서 수행, 실시간 대시보드는 활용 단계의 특징이며, 다음 확산 단계로 가려면 전사 차원의 분석 CoE를 운영해야 한다.
분석 성숙도는 도입 → 활용 → 확산 → 최적화 단계로 진단하며 비즈니스·조직/역량·IT 부문을 함께 본다.
- 데이터 마트·ETL 중심의 정기 보고는 도입 단계의 모습이다.
- DW·ETL 신규 도입은 이미 지난 도입 단계의 과제이다.
- 분석 샌드박스·협업 환경은 최적화 단계의 IT 특징이다.
제약 조건 아래 목적함수(총비용)를 최소로 만드는 결정안을 내놓는 것은 최적화(처방) 분석이다.
기술 분석이 무엇이 일어났는지, 예측 분석이 무엇이 일어날지를 답한다면 최적화 분석은 무엇을 해야 하는지를 답한다.
- 기술 분석: 과거 실적을 집계·요약할 뿐 권고안을 만들지 않는다
- 진단 분석: 결과가 왜 생겼는지 원인을 찾는 단계이다
- 예측 분석: 수요를 추정할 수는 있으나 최적 주문량을 정하지는 않는다
> a <- 1:3
> exists("a")
> rm(a)
> exists("a")
> r <- suppressWarnings(require("noSuchPkg123", quietly = TRUE))
> ra 를 만든 직후 exists 는 TRUE, rm(a) 로 지운 뒤에는 FALSE 이고, 없는 패키지에 대한 require 는 오류 없이 FALSE 를 반환한다.
library() 는 패키지가 없으면 오류로 실행을 멈추지만 require() 는 경고와 함께 논리값을 돌려주므로 if 문 조건에 쓸 수 있다.
- TRUE, TRUE, FALSE: rm 이 객체를 지우지 못했다고 본 것이다
- TRUE, FALSE, 오류: require 를 library 와 같은 동작으로 착각했다
- FALSE, FALSE, TRUE: 생성 직후의 존재 여부와 패키지 로드 결과를 모두 거꾸로 보았다
> s1 <- sapply(USArrests, mean) > s2 <- sapply(1:3, function(i) seq_len(i)) > s3 <- apply(USArrests, 2, range)
s2 는 각 원소의 결과 길이가 1, 2, 3으로 달라 하나의 행렬로 묶을 수 없으므로 sapply 가 단순화를 포기하고 리스트를 반환한다.
s1 은 각 열의 평균 하나씩이 모여 이름 붙은 숫자 벡터가 되고, s3 는 각 열의 최솟값·최댓값 2개를 열로 쌓아 2행 4열 행렬이 된다.
- s1 리스트: 결과가 모두 길이 1이라 숫자 벡터로 단순화된다
- s3 4행 2열: apply 결과 벡터는 행이 아니라 열로 배치된다
- s2 3행 3열: 길이가 서로 달라 행렬로 채울 수 없다
> L <- LifeCycleSavings > dim(L) > class(L[, "sr"]) > class(L[, "sr", drop = FALSE]) > L$income > length(c(1, NA, 3)) > length(c(1, NULL, 3))
[1] 50 5 [1] "numeric" [1] "data.frame" NULL [1] 3 [1] 2
NULL 은 '값이 없음' 자체라 벡터에 들어가도 자리를 차지하지 않으므로 마지막 줄 출력은 2이고, 결측값 NA 는 한 자리를 차지해 바로 윗줄은 3이다.
행렬식 인덱싱으로 열 하나를 고르면 기본값 drop = TRUE 때문에 벡터로 줄어들고, drop = FALSE 를 주어야 데이터프레임이 유지된다.
- dim 출력은 50 5 로 열이 5개(sr·pop15·pop75·dpi·ddpi)이다
- L[, "sr"]: class 출력이 numeric 인 숫자 벡터이다
- L$income: 존재하지 않는 열이라 NULL 이 출력된다
> d <- head(USArrests, 3)
> long <- stack(d[, c("Murder", "Assault", "Rape")])
> long$state <- rep(rownames(d), 3)
> dim(long)
> head(long, 4)
> xtabs(values ~ state + ind, data = long)[1] 9 3
values ind state
1 13.2 Murder Alabama
2 10.0 Murder Alaska
3 8.1 Murder Arizona
4 236.0 Assault Alabama
ind
state Murder Assault Rape
Alabama 13.2 236.0 21.2
Alaska 10.0 263.0 44.5
Arizona 8.1 294.0 31.0세 주(행)×세 변수(열)를 한 열로 쌓았으므로 dim 출력은 9 3(values·ind·state)이고, 이는 reshape 의 melt 와 같은 넓은→긴 변환이다.
xtabs(values ~ state + ind) 는 state 를 행, ind 를 열로 펼쳐 원래의 넓은 형식으로 되돌리므로 cast 에 해당한다.
- ind 열: 주 이름이 아니라 Murder·Assault·Rape 같은 원래 변수명이다
- xtabs: 행이 주, 열이 변수인 넓은 형식 교차표로 출력된다
- values 열: 13.2, 236.0 처럼 원래 수치가 담긴 숫자형이다
변수 x, y 의 관측치 6개(NA 는 결측)이다.
| 행 | 1 | 2 | 3 | 4 | 5 | 6 |
|---|---|---|---|---|---|---|
| x | 4 | NA | 6 | 9 | NA | 11 |
| y | 2 | 3 | NA | 5 | 6 | 7 |
x 와 y 가 모두 관측된 행은 1·4·6행뿐이므로 3개가 남고, 그 x 평균은 8이다.
이며, 목록별 삭제는 한 변수라도 결측이면 행 전체를 버린다.
- 4개, 7.5: x 의 결측만 보고 지운 경우로 y 가 빠진 3행이 남는다
- 3개, 7.5: 행 수는 맞지만 평균은 mean(x, na.rm = TRUE) 값이다
- 6개, 5: 결측을 0으로 대치해 30/6 을 구한 값이다
ㄱ. 자유도가 커질수록 t 분포는 표준정규분포에 가까워진다.
ㄴ. 서로 독립인 표준정규 확률변수 k 개의 제곱합은 자유도 k 인 카이제곱분포를 따른다.
ㄷ. 자유도 n 인 t 분포 확률변수의 제곱은 자유도 (1, n) 인 F 분포를 따른다.
ㄹ. 카이제곱분포는 0을 중심으로 좌우 대칭이다.
ㄱ·ㄴ·ㄷ 은 표본분포 사이의 정의 관계로 모두 옳고, ㄹ 만 틀렸다.
카이제곱분포는 제곱합이라 0 이상의 값만 가지며 오른쪽 꼬리가 긴 비대칭 분포이고, t 분포의 제곱은 분자 자유도 1인 F 분포와 같다.
- ㄱ, ㄴ: t² 와 F(1, n) 의 관계인 ㄷ 도 옳으므로 빠졌다
- ㄴ, ㄷ, ㄹ: 카이제곱분포는 음수를 갖지 않아 대칭이 아니다
- ㄱ, ㄷ, ㄹ: ㄴ 은 카이제곱분포의 정의 그대로이며 ㄹ 은 틀렸다
p-값은 귀무가설이 참이라고 가정했을 때 관측된 검정통계량만큼 또는 그보다 더 극단적인 값이 나올 확률이다.
p-값이 유의수준보다 작으면 귀무가설을 기각하며, p-값 자체가 가설이 참일 확률을 뜻하지는 않는다.
- 귀무가설이 참일 확률: 가설은 고정된 명제라 p-값으로 그 확률을 말하지 않는다
- 대립가설이 참일 확률: 1−p 로 해석하는 흔한 오해이다
- 제2종 오류 확률: 대립가설이 참인데 기각하지 못할 확률 β 이다
세 가지 비료(A, B, C)를 서로 다른 화분 15개에 무작위로 5개씩 배정해 키운 뒤 생장량 평균이 같은지 검정하려 한다.
| 요인 | 제곱합(SS) |
|---|---|
| 처리(집단 간) | 40 |
| 잔차(집단 내) | 60 |
독립인 세 집단의 평균을 한 번에 비교하므로 일원분산분석(One-way ANOVA)이고, F 통계량은 4이다.
- 0.67: 제곱합을 자유도로 나누지 않고 40/60 을 구한 값이다
- 대응표본 t검정: 같은 개체를 두 번 잰 두 집단 비교에 쓴다
- 5: 잔차 자유도를 n−k=12 대신 n=15 로 나눠 MSW 를 4로 잡은 값이다
> w <- c(pearson = cor(women$height, women$weight), > spearman = cor(women$height, women$weight, method = "spearman"), > kendall = cor(women$height, women$weight, method = "kendall")) > round(w, 4) > round(cor(USArrests, method = "spearman"), 2)
pearson spearman kendall
0.9955 1.0000 1.0000
Murder Assault UrbanPop Rape
Murder 1.00 0.82 0.11 0.68
Assault 0.82 1.00 0.28 0.71
UrbanPop 0.11 0.28 1.00 0.44
Rape 0.68 0.71 0.44 1.00첫 출력에서 spearman 과 kendall 이 모두 1.0000 인 것은 키가 클수록 몸무게가 빠짐없이 커지는 완전한 단조 관계이기 때문이다.
피어슨 계수는 직선 관계의 강도를 재므로 관계가 약간 휘어 있으면 0.9955 처럼 1보다 작게 나온다.
- 피어슨: 출력값 0.9955 로 1이 아니다
- Murder·UrbanPop: 상관행렬에서 0.11 로 오히려 가장 작다
- Assault·Rape: 0.71 로 양의 순위상관이다
설명변수가 하나인 단순회귀에서는 결정계수가 x 와 y 의 피어슨 상관계수의 제곱과 같다.
또 단순회귀의 F 통계량은 기울기 t 값의 제곱과 같아 두 검정의 p-값이 일치한다.
- F 검정: 절편이 아니라 모든 기울기가 0인지를 검정한다
- t 와 F: 단순회귀에서는 F = t² 관계가 있다
- 잔차의 합: 절편이 있는 최소제곱 적합에서는 항상 0이다
> fit <- lm(weight ~ height, data = women) > round(summary(fit)$r.squared, 4) > round(resid(fit), 2) > fit2 <- lm(weight ~ height + I(height^2), data = women) > round(summary(fit2)$coefficients, 4)
[1] 0.991
1 2 3 4 5 6 7 8 9 10 11 12 13
2.42 0.97 0.52 0.07 -0.38 -0.83 -1.28 -1.73 -1.18 -1.63 -1.08 -0.53 0.02
14 15
1.57 3.12
Estimate Std. Error t value Pr(>|t|)
(Intercept) 261.8782 25.1968 10.3933 0
height -7.3483 0.7777 -9.4489 0
I(height^2) 0.0831 0.0060 13.8911 0잔차가 앞쪽 양수 → 가운데 음수 → 끝쪽 양수로 이어지는 U자 패턴이라 선형성 가정이 의심된다.
그래서 이차항을 넣은 fit2 에서 I(height^2) 의 Pr(>|t|) 가 0으로 유의하게 나온다.
- R² 0.991: 설명력이 높아도 잔차 구조가 보이면 모형을 고쳐야 한다
- 잔차 부호: 무작위가 아니라 구간별로 몰려 체계적이다
- 이차항: t value 13.89, p-값 0 으로 유의하다
같은 자료(n = 40)에 적합한 세 회귀모형의 로그우도와 추정 모수 개수(k)이다.
| 모형 | 설명변수 | k | 로그우도 |
|---|---|---|---|
| M1 | x1 | 2 | −50 |
| M2 | x1, x2 | 3 | −47 |
| M3 | x1, x2, x3, x4 | 5 | −46 |
AIC 는 M1 104, M2 100, M3 102 이므로 가장 작은 M2(100)가 선택된다.
에서 M2 는 이고, M3 는 우도가 조금 높아도 모수 벌점이 커서 102 가 된다.
- M3, 92: 벌점 2k 를 빼고 −2logL 만 비교한 값이다
- M2, 94: 모형은 맞지만 벌점을 더하지 않은 값이다
- M3, 102: AIC 가 M2 보다 커서 선택되지 않는다
ARIMA(p, d, q) 는 d 번 차분한 계열에 AR(p)·MA(q)를 적합하므로 (1, 2, 0) 은 두 번 차분 후 AR(1) 모형이다.
q = 0 이라 이동평균 항은 없고, 차분 차수 2는 2차 추세처럼 한 번 차분으로 정상화되지 않는 계열에 쓴다.
- MA(2): 가운데 2는 차분 횟수이고 세 번째 q 가 0이다
- 1회 차분 후 AR(2): p 와 d 의 자리를 바꿔 읽은 것이다
- 차분 없음: d = 2 이므로 차분이 필요하고 MA 항은 없다
정상 시계열은 평균과 분산이 일정하고, 두 시점의 자기공분산이 시점이 아닌 시차에만 의존한다.
예를 들어 1월과 3월, 7월과 9월의 공분산이 같아야 하며, 이를 만족하지 않으면 차분·변환으로 정상화한다.
- 평균 증가: 추세가 있는 비정상 계열로 차분이 필요하다
- 분산 증가: 분산이 일정하지 않아 로그 등 변환이 필요하다
- 12개월 주기 평균 변화: 계절성이 있어 계절 차분이 필요하다
MDS 는 개체 간 거리(비유사성)를 저차원 거리로 최대한 보존하므로 가까이 놓인 개체일수록 유사하다고 해석한다.
축 자체에는 정해진 의미가 없어 분석자가 개체 배치를 보고 축의 의미를 부여한다.
- 축과 변수의 대응: MDS 축은 특정 원래 변수 하나에 대응하지 않는다
- 원자료 행렬: 거리 행렬만 있어도 MDS 를 수행할 수 있다
- 스트레스: 값이 작을수록 원래 거리를 잘 보존한 것이다
> round(apply(USArrests, 2, var), 1) > p1 <- prcomp(USArrests) > p2 <- prcomp(USArrests, scale. = TRUE) > round(p1$rotation[, 1], 3) > summary(p2)$importance
Murder Assault UrbanPop Rape
19.0 6945.2 209.5 87.7
Murder Assault UrbanPop Rape
0.042 0.995 0.046 0.075
PC1 PC2 PC3 PC4
Standard deviation 1.574878 0.9948694 0.5971291 0.4164494
Proportion of Variance 0.620060 0.2474400 0.0891400 0.0433600
Cumulative Proportion 0.620060 0.8675000 0.9566400 1.0000000Assault 의 분산(6945.2)이 다른 변수보다 압도적으로 커서 공분산 기준 p1 의 PC1 적재값이 Assault 0.995 로 사실상 한 변수만 반영한다.
그래서 단위·척도가 다른 변수는 scale. = TRUE(상관행렬)로 분석하며, p2 의 Cumulative Proportion 은 PC2 까지 0.8675 이다.
- PC1 설명 비율: Proportion of Variance 0.62 로 90% 에 못 미친다
- PC2 누적: 0.8675 로 95% 에 이르는 것은 PC3(0.9566)부터이다
- 공분산 행렬: 척도가 큰 변수가 결과를 좌우하므로 부적절하다
네 점이 모두 가로축 양(+)의 쪽에 있어 PC1 은 네 변수가 같은 부호로 실린 전반적 크기 축이고, PC2 는 UrbanPop 만 크게 위쪽이라 도시화 정도를 대비하는 축이다.
주성분은 관측변수의 선형결합이며 설명 분산 순서로 PC1, PC2 가 정해진다는 점이 요인분석과 다르다.
- PC2: 세로 방향으로 가장 멀리 떨어진 변수는 Murder 가 아니라 UrbanPop 이다
- 순서 없음: 요인분석 요인의 성질이며 주성분은 순서가 있다
- 잠재요인 가정: 관측변수를 공통요인으로 설명하는 요인분석의 모형이다
ROC 곡선 아래 면적인 AUC 가 0.5 이면 대각선과 같아 무작위로 분류하는 수준이다.
AUC 는 1에 가까울수록 좋고, 곡선은 가로축 1−특이도(FPR), 세로축 민감도(TPR)로 그린다.
- 축: 가로축은 1−특이도, 세로축은 민감도이다
- AUC 크기: 클수록 양성과 음성을 잘 구분하는 모형이다
- 대각선 아래: 무작위보다도 못한 분류 성능을 뜻한다
k-NN 의 k 를 정하려고 자료를 훈련 60%·검증 20%·시험 20%로 나눈 뒤 정확도를 기록했다.
| k | 훈련 정확도 | 검증 정확도 | 시험 정확도 |
|---|---|---|---|
| 1 | 1.00 | 0.78 | 0.76 |
| 7 | 0.90 | 0.86 | 0.83 |
| 25 | 0.82 | 0.81 | 0.84 |
k 는 검증 정확도가 가장 높은 7을 고르고, 최종 성능은 선택에 쓰지 않은 시험 정확도 0.83 으로 보고한다.
시험 자료는 모형 선택이 끝난 뒤 한 번만 써야 일반화 성능을 편향 없이 추정할 수 있다.
- k=1, 1.00: 훈련 정확도로 고른 것으로 과적합을 놓친다
- k=7, 0.86: 선택에 쓴 검증 정확도라 낙관적으로 부풀려진다
- k=25, 0.84: 시험 자료로 모형을 골라 시험 자료의 역할을 훼손했다
검증 오차가 가장 낮은 복잡도 4가 일반화 성능이 가장 좋은 지점이고, 그 뒤로는 훈련 오차만 줄고 검증 오차가 커지는 과적합 구간이다.
복잡도 1~3 은 두 오차가 함께 높은 과소적합 구간으로, 모형이 자료의 구조를 덜 학습한 상태이다.
- 복잡도 8: 훈련 오차는 최소지만 검증 오차가 가장 커 최적이 아니다
- 4 이후 과소적합: 훈련 오차가 계속 줄고 있어 과적합에 해당한다
- 1~3 구간: 두 오차가 모두 큰 과소적합 구간이다
> L <- LifeCycleSavings > L$high <- as.integer(L$sr > 10) > fit <- glm(high ~ pop15, data = L, family = binomial) > round(coef(summary(fit)), 3) > nd <- data.frame(pop15 = c(25, 45)) > round(predict(fit, nd), 3) > round(predict(fit, nd, type = "response"), 3)
Estimate Std. Error z value Pr(>|z|)
(Intercept) 4.512 1.401 3.219 0.001
pop15 -0.123 0.038 -3.228 0.001
1 2
1.447 -1.005
1 2
0.810 0.268 predict 의 기본값은 type = "link" 라 첫 예측 출력(1.447, −1.005)은 확률이 아니라 로그 오즈이다.
이를 시그모이드 로 변환한 것이 type = "response" 출력(0.810, 0.268)이며 항상 0과 1 사이이다.
- pop15 계수: Estimate 가 −0.123 으로 음수라 확률이 작아진다
- pop15=45: 확률 0.268 이 0.5 미만이라 high 가 아닌 쪽으로 분류된다
- response 값: 로지스틱 변환이라 1을 넘을 수 없다
SVM 은 커널 함수로 자료를 고차원 공간에 대응시킨 효과를 내어, 원래 공간에서는 비선형인 결정경계도 만들 수 있다.
경계는 마진 위나 안쪽에 놓인 서포트 벡터만으로 결정되며, 마진을 최대화하는 초평면을 찾는다.
- 모든 자료 기여: 경계에서 먼 자료는 결정경계에 영향을 주지 않는다
- 마진 최소화: SVM 은 마진을 최대로 하는 경계를 찾는다
- 회귀 불가: 서포트 벡터 회귀(SVR)로 연속형 목표도 다룬다
• ID3 를 개선한 알고리즘이다.
• 분리 기준으로 엔트로피에 기반한 정보 이득 비율(Gain Ratio)을 쓴다.
• 범주형 변수에서 다지 분리(Multiway split)가 가능하다.
ID3 를 개선해 엔트로피 기반 정보 이득 비율로 분리하고 다지 분리를 허용하는 알고리즘은 C4.5 이다.
정보 이득 비율은 범주가 많은 변수가 유리해지는 정보 이득의 치우침을 분할 정보로 나누어 보정한 값이다.
- CART: 지니 지수(회귀는 분산 감소)를 쓰고 이진 분리만 한다
- CHAID: 카이제곱 통계량(또는 F 검정)으로 다지 분리를 한다
- QUEST: 통계 검정으로 변수를 먼저 고른 뒤 이진 분리한다
(가) 부트스트랩 표본마다 모든 변수를 후보로 나무를 키운 뒤 다수결로 결합한다.
(나) 앞 모형이 틀린 관측치에 더 집중하도록 모형을 순차적으로 학습해 가중 결합한다.
(다) 부트스트랩 표본마다 나무를 키우되, 노드를 나눌 때마다 일부 변수만 무작위로 후보로 삼는다.
(가)는 전체 변수로 병렬 학습하는 배깅, (나)는 오분류에 가중하는 순차 학습인 부스팅, (다)는 분할마다 변수를 무작위로 고르는 랜덤포레스트이다.
랜덤포레스트는 배깅에 변수 무작위 선택을 더해 나무 사이 상관을 낮춘 방법이다.
- (가)를 랜덤포레스트로 보면 모든 변수를 후보로 쓴다는 조건과 어긋난다
- (나)를 랜덤포레스트로 보면 순차 학습이라는 핵심을 놓친다
- (가)를 부스팅으로 보면 독립 병렬 학습과 다수결 결합에 맞지 않는다
형태로 음수는 0, 양수는 그대로 내보내는 함수는 ReLU 이다.
양수 구간의 기울기가 1로 일정해 층이 깊어져도 기울기 소실이 덜하고 계산도 단순하다.
- 시그모이드: 출력을 0~1로 눌러 깊은 층에서 기울기가 작아지기 쉽다
- 쌍곡탄젠트: 출력 범위가 −1~1인 S자 함수이다
- 계단 함수: 임계값을 기준으로 0 또는 1만 출력해 미분이 어렵다
(가) 변수 간 상관관계와 척도 차이를 공분산행렬로 함께 보정한 거리
(나) 상품별 구매 여부(0/1) 자료에서 둘 중 하나라도 산 상품 가운데 함께 산 상품의 비율에 기초한 거리
(다) 각 좌표 차이의 절댓값 중 가장 큰 값을 거리로 쓰는 방식
(가)는 공분산행렬의 역행렬로 상관과 척도를 함께 보정하는 마할라노비스 거리, (나)는 자카드 거리, (다)는 체비셰프 거리이다.
자카드 거리는 1−|A∩B|/|A∪B| 로 둘 다 사지 않은 상품은 계산에서 빠진다.
- 유클리드·맨해튼: 상관 보정이 없고 맨해튼은 좌표 차의 합이다
- 코사인: 벡터 사이 각도 기반이고 (다)도 맨해튼이 아니다
- 표준화 거리: 척도만 맞출 뿐 변수 간 상관은 보정하지 못한다
두 정규분포 성분으로 된 혼합분포 모형을 EM 알고리즘으로 추정하는 중이다. 현재 단계의 추정값은 다음과 같다.
| 성분 | 혼합 비율 π | 관측치 x 에서의 밀도 f(x) |
|---|---|---|
| 1 | 0.6 | 0.1 |
| 2 | 0.4 | 0.3 |
E 단계는 현재 모수로 각 관측치가 성분에 속할 사후확률을 구하며, 성분 2의 값은 2/3 이다.
- 1/3: 성분 1에 속할 사후확률이다
- 0.3: 혼합 비율을 곱하지 않은 밀도 값 그대로이다
- 0.4: 자료를 반영하지 않은 사전 혼합 비율이다
고객 5명의 구매를 시간 순서로 정리했다(→ 는 이후 방문, 같은 칸의 쉼표는 같은 방문에서 함께 구매).
| 고객 | 구매 순서 |
|---|---|
| 1 | A → B → C |
| 2 | B → A |
| 3 | A → C → B |
| 4 | A, B → C |
| 5 | C → A |
A 를 먼저 사고 이후 방문에서 B 를 산 고객은 고객 1과 고객 3뿐이므로 지지도는 2/5 = 0.4 이다.
순차 패턴은 구매 순서를 반영하므로 같은 방문의 동시 구매(고객 4)나 B 를 먼저 산 경우(고객 2)는 세지 않는다.
- 0.2: B 다음 A 를 산 역순 패턴 <B → A> 의 지지도이다
- 0.6: 같은 방문에서 함께 산 고객 4까지 포함한 값이다
- 0.8: 순서를 무시한 {A, B} 동시 발생 고객 비율이다
연관분석은 최소 지지도 기준으로 규칙을 거르므로 거래가 드문 품목은 의미 있는 관계가 있어도 규칙에서 빠지기 쉽다.
목표변수 없이 품목 간 관계를 찾는 비목적성 분석이며, 결과가 조건-결과(if-then) 형태라 해석은 쉽다.
- 목표변수: 지정할 필요가 없는 비지도 기법이다
- 계산량: 품목 수가 늘면 후보 집합이 기하급수로 늘어난다
- 해석: if-then 규칙이라 이해하기 쉬운 편이다