3과목 - 데이터 분석
3-0. 데이터 분석 개요
#데이터마이닝
- 대표적인 고급 분석으로 데이터에 있는 패턴을 파악해 예측하는 분석으로 데이터가 크고 정보가 다양할수록 활용하기 유리한 분석
#데이터마이닝의 평가 기준과 시뮬레이션 지표
- 평가 기준: 정확도(정밀도, Accuracy), 디텍트 레이트(Detect Rate), 리프트(Lift)
- 시뮬레이션: Throughout, Average Waiting Time, Average Queue Length, Time in System
#데이터 처리 구조
- 데이터를 분석에 활용하기 위해 데이터웨어하우스와 데이터마트에서 데이터를 가져온다.
- 신규 시스템이나 스테이진 영역의 데이터는 정제되지 않았기 때문에 정제하고 DW나 DM과 결합해야 한다.
- ODS는 운영데이터저장소로 기존 운영시스템의 데이터가 정제된 데이터으이므로 DW나 DM과 결합하여 분석에 활용할 수 있다.
- 스테이지 영역에서 가져온 데이터는 정제되어 있지 않기 때문에 데이터의 전처리를 해서 DW나 DM과 결합하여 사용한다.
#시각화(그래프)
- 탐색적 분석 시 필수적
- SNA(사회연결망 분석)을 할 때 자주 활용된다.
#공간 분석(GIS)
- 공간분석은 공간적 차원과 관련된 속성들을 시각화하는 분석
- 지도 위에 관련된 속성들을 생성하고 크가, 모양, 선 굵기 등으로 구분하여 인사이트를 얻는다.
3-1. R 기초와 데이터 마트
3-1-1. R프로그래밍 기초
#R 소개
(1) R 소개
- R은 오픈소스 프로그램으로 통계, 데이터마이닝을 위한 언어이다.
- 윈도우, 맥, 리눅스 OS에서 사용 가능하다.
- 객체 지향 언어이며 함수형 언어이다. 즉, 통계 기능뿐만 아니라 일반 프로그래밍 언어처럼 자동화하거나 새로운 함수를 생성하여 사용 가능
- 객체 지향 언어는 필요한 부분을 프로그래밍으로 골라 추출하여 활용이 가능하다.
- 함수형 언어는 깔끔하고 단축된 코드, 매우 빠른 수행 속도, 디버깅 노력 감소, 병렬 프로그래밍의 전환이 용이하다는 특징을 가진다.
(1) R Studio
- 메모리에 변수가 어떻게 되어있는 지와 타입이 무엇인지를 볼 수 있고 스크립트 관리와 도큐먼테이션이 편리하다.
- 스크립트용 프로그래밍으로 어렵지 않고 쉽게 자동화가 가능하다.
#R 프로그래밍 기초
(1) 패키지(Package)
- R 함수, 데이터 및 컴파일된 코드의 모임
- 패키지 자동설치: install.packages("패키지")
- 패키지 수동설치: install.packages("패키지명", "패키지 위치")
(2) 스크립트로 프로그래밍 된 파일 실행
- source("파일명.R")
- pdf( ): 그래픽 출력을 pdf 파일로 지정
(3) 배치모드
- 사용자와 인터랙션이 필요하지 않은 방식으로, 매일 실행되어야 하는 프로그램에서 프로세스를 자동화할 때 유용하다.
- 배치파일 실행 명령: batch.R 실행파일이 있는 위치에서 윈도우 창에 "R CMD BATCH batch.R" 명령어 실행
(4) R 명령어
print( ) | 출력 형식을 지정할 필요 없음. 한 번에 하나의 객체만 출력 |
cat( ) | 여러 항목을 묶어서 연결된 결과로 출력. 복합적 데이터 구조(행렬, list 등)를 출력 불가 |
" <-, <<-, =, ->" | 대입 연산자 |
ls( ) | 변수 목록보기 |
rm( ) | 변수 삭제하기 |
c( ) | 벡터 생성하기 |
- 벡터의 원소 중 하나라도 문자가 있으면 모든 원소의 자료형은 문자형태로 변환 ★
지역변수 | 단순히 값을 대입하기만 하면 지역변수로 생성. 함수가 종료되면 지역변수는 삭제됨 |
조건부 실행문 | if문 |
반복 실행문 | for문, while문, repeat문 |
전역변수 | "<<-"를 사용하여 전역변수를 변경할 수 있지만 추천하지 않음 |
수열 | "시작값 |
반복 | rep( ) 함수는 숫자나 변수의 값들을 반복해서 생성 가능. |
문자열 붙이기 | paste( ) 함수 |
문자열 추출 | substr(문자열, 시작점, 끝점) 함수는 문자열의 특정 부분을 추출 가능 |
논리값 | T는 True, F는 False |
- 논리연산자
== | 같다 |
!= | 같지 않다 |
<, <= | 작다, 작거나 같다 |
>, >= | 크다, 크거나 같다 |
· 벡터의 원소 선택하기: V[n], n은 원소의 자릿수, 논리형 벡터, 벡터의 이름.
· 벡터의 원소 제외하기: V[-n], n은 제외하고자 하는 원소의 자릿수
(5) 벡터의 연산
[, [[ | 인덱스 |
$ | 요소, 변수 뽑아내기 ★ (예) Wage$logwage |
^ | 지수 계산. 예) 5^2 = 25 |
-, + | 단항 마이너스, 플러스 부호 |
: | 수열 생성 |
%/% | 나눗셈 결과의 몫 반환 |
%% | 나눗셈 결과의 나머지 반환 |
%*% | 행렬 곱 |
*, / | 곱하기, 나누기 |
+, - | 더하기, 뻬기 |
! | 논리 부정. !T = F |
& | 논리 "and". |
| | 논리 "or". |
~ | 식(formula) |
->, ->> | 오른쪽 대입 |
= | 오른쪽을 왼쪽으로 대입 |
<-, <<- | 오른쪽을 왼쪽으로 대입 |
? | 도움말 |
(6) 기초통계 명령어
mean(변수) | 변수의 평균 산출 |
sum(변수) | 변수의 합계 산출 |
median(변수) | 변수의 중앙값 산출 |
log(변수) | 변수의 로그값 산출 |
sd(변수) | 변수의 표준편차 산출 |
var(변수) | 변수의 분산 산출 |
cov(변수1, 변수2) | 변수 간 공분산 산출 |
cor(변수1, 변수2) | 변수 간 상관계수 산출 |
length(변수) | 변수의 길이를 값으로 산출 |
#입력과 출력
- 테이블로 된 데이터 파일 읽기 (변수 구분자 포함): read.table("파일이름", sep="구분자")
- CSV 데이터 파일 읽기(변수 구분자는 쉼표): read.csv("파일이름", header=T)
- CSV 데이터 파일로 출력(변수 구분자는 쉼표): write.csv(행렬 또는 데이터프레임, "파일이름", row.names=F)
#데이터 프레임과 데이터 구조★
(1)벡터(Vector)
- 벡터들은 동질적이다: 한 벡터의 원소는 모두 같은 자료형을 가진다.
- 벡터는 위치로 인덱스된다: V[2]는 V벡터의 2번째 원소이다.
- 벡터는 인덱스를 통해 여러 개의 원소로 구성된 하위 벡터를 반환할 수 있다.: V[c(2, 3)]은 V 벡터의 2번째, 3번째 원소로 구성된 하위벡터
- 벡터 원소들은 이름을 가질 수 있다.
기능 | R 코드 |
벡터에 데이터 추가 |
v <- c(v, newItems) v[length(v)+1] <- newItems |
벡터에 데이터 삽입 |
append(vec, newvalues, after=n) |
요인 생성 | f <- factor(v) f <- factor(v, levels) |
여러 벡터를 합쳐 하나의 벡터와 요인으로 만들기 |
comb <- stack(list(v1=v1, v2=v2)) |
벡터 내 값 조회 |
V[c(1, 3, 5, 7)] V[-c(2, 4)] |
(2)리스트(List)
- 리스트는 이질적이다: 여러 자료형의 원소들이 포함될 수 있다.
- 리스트는 위치로 인덱스된다: L[[2]]는 L 리스트의 2번째 원소이다.
- 리스트에서 하위 리스트를 추출할 수 있다.: L[c(2, 3)]은 L 리스트의 2번째, 3번째 원소로 이루어진 하위 리스트
- 리스트의 원소들은 이름을 가질 수 있다.: L[["Moe"]]와 L$Moe는 둘 다 "Moe"라는 이름의 원소를 지칭한다.
기능 | R 코드 |
리스트 생성 | L <- list(x, y, z) L <- list(valuename1=vec, valuename2= data) |
리스트 원소선택 |
L[[n]]: n번째 원소 L[c(n1, n2, … nk)]: 목록 |
이름으로 리스트 원소선택 |
L[["name"]] L$name |
리스트에서 원소 제거 |
L[["name"]] <- NULL |
NULL 원소를 리스트에서 제거 | L[sapply(L, is.null)] <- NULL L[is.na(L)] <- NULL |
dim 활용 예시
(3)행렬(Matrix)
- R에서는 차원을 가진 벡터로 인식
기능 | R 코드 |
행렬 생성 | matrix(데이터, 행개수, 열개수) e <- matrix(1:20, 4, 5) |
차원 | dim(행렬) |
대각행렬 | diag(행렬) |
전치행렬 | t(행렬) |
역행렬 | solve(matrix) |
행렬곱 | 행렬 %*% 행렬 |
행 이름 부여 | rownames(행렬) <- c("행이름") |
열 이름 부여 | colnames(행렬) <- c("열이름") |
행렬 연산 | 행렬 + 행렬, 행렬 - 행렬 행렬 + 상수, 행렬 - 상수, 행렬*상수 |
행렬에서 행, 열 선택하기 | vec <- matrix[1, ] vec <- matrix[, 3] |
(4) 단일값(scalars)
- R에서는 원소가 하나인 벡터로 인식/처리
(5) 배열(Arrays)
- 행렬이 3차원 또는 n차원까지 확장된 형태
- 주어진 벡터에 더 많은 차원을 부여하여 생성
(6) 요인(Factors)
- 벡터처럼 생겼지만, R에서는 벡터에 있는 고유값(unique value)의 정보를 얻어 내는데, 이 고유값들을 요인의 수준(level)이라고 한다.
(7) 데이터프레임(Data frame) ★
- 데이터 프레임 리스트의 원소는 벡터 또는 요인이다. 벡터와 요인은 데이터 프레임의 열이다.
- 데이터프레임은 표 형태의 데이터 구조이며, 각 열은 서로 다른 데이터 형식을 가질 수 있다. ★
- 벡터와 요인들은 동일한 길이이다.
- 동일한 벡터와 요인들은 데이터프레임을 사각형으로 만든다.
- 열에는 이름이 있어야 한다.
- 각각의 열에 대해 문자형인지 수치형인지 자동적으로 구분되어 편리
- 데이터프레임은 메모리 상에서 구동된다.
기능 | R 코드 |
데이터프레임 생성 | data.frame(벡터, 벡터, 벡터) |
행결합 | rbind(dfrm1, dfrm2) newdata <- rbind(data, row) ★ |
열결합 | cbind(dfrm1, dfrm2) newdata <- cbind(data, col) |
데이터프레임 조회 | dfrm[dfrm$gender="m"] dfrm[dfrm$변수1>4 & dfrm$변수 2>5, c(변수3, 변수4)] dfrm[grep("문자", dfrm$변수1, ignore.case=T), c("변수2, 변수3")] subset(dfrm, select=변수, subset=조건) |
데이터 선택 | lst1[[2]], lst1[2], lst1[2,], lst1[, 2] lst1[["name"]], lst1$name lst1[c("n1", "n2", .., "nk")] |
데이터 병합 | merge(df1, df2, by="공통열") |
열이름 조회 | colnames(데이터프레임) |
행, 열 선택 | subset(dfm, select=열이름) subset(dfm, select=c(열이름1, 열이름2, 열이름n)) subset(dfm, select=열이름, subset(조건)) |
이름으로 열 제거 |
subset(dfm, select=-"열이름") |
열이름 변경 | colnames(dfm) <- newcolname |
NA 행 삭제 | df <- na.omit(dfm) |
데이터프레임 합치기 |
cbind_dfm <- cbind(dfm1, dfm2) rbind_dfm <- rbind(dfm1, dfm2) |
(8) 데이터 구조 및 자료형 변환
기능 | R 코드 |
자료형 변환 | as.character( ) as.integer( )★ level의 위치를 숫자로 변환 (예) as.interger(3, 14)의 값은 3이다. as.numeric()★ 데이터를 수치형으로 변환 (예) as.numeric(FALSE)의 값는 0이다. as.logical()★ 데이터를 논리형으로 변환 (예) as.logical(0, 45)의 값은 TRUE이다. |
구조 변환 | as.data.frame( ) as.list( ) as.matrix( ) |
(9) 데이터 구조 변경
기능 | R 코드 |
벡터 → 리스트 | as.list(vector) |
벡터 → 행렬 | 1열짜리 행렬: cbind(vector) 또는 as.matrix(vector) 1행짜리 행렬: rbind(vector) ★ n * m 행렬: matrix(vector, n, m) |
벡터 → 데이터프레임 |
1열짜리 데이터프레임: as.data.frame(vector) 1행짜리 데이터프레임: as.data.frame(rbind(vector)) |
리스트 → 벡터 | unlist(list) |
리스트 → 행렬 | 1열짜리 행렬: as.matrix(list) 1행짜리 행렬: as.matrix(rbind(list)) n * m 행렬: matrix(list, n, m) |
리스트 → 데이터프레임 |
리스트 원소들이 데이터의 열이면: as.data.frame(list) 리스트 원소들이 데이터의 행이면: rbind(list[[1]], list[[2]]) |
행렬 → 벡터 | as.vector(matrix) 행렬을 as.vector 함수에 입력하면 열방향으로 1열로부터 차례로 원소를 나열하는 벡터가 생성된다.★ |
행렬 → 리스트 | as.list(matrix) |
행렬 → 데이터프레임 |
as.data.frame(matrix) |
데이터프레임 → 벡터 | 1열짜리 데이터프레임: dfm[[1]] 또는 dfm[, 1] 1행짜리 데이터프레임: dfm[1, ] |
데이터프레임 → 리스트 | as.list(dfm) |
데이터프레임 → 행렬 |
as.matrix(dfm) |
(10) 벡터의 기본 연산
기능 | R 코드 |
벡터 연산 | 벡터1 + 벡터2 벡터1 - 벡터2 벡터1 * 벡터2 벡터1 ^ 벡터2 |
함수 적용 | sapply(벡터, 연산함수) |
파일저장 | write.csv(변수이름, "파일이름") save(변수이름, file=".RData") |
파일읽기 | read.csv("파일이름") load("파일.R") source("파일.R") |
데이터 삭제 | rm(변수) rm(list=ls()) |
#데이터 변형
(1) 데이터 변형
기능 | R 코드 |
요인으로 집단정의 |
v <- c(24, 23, 52) w <- c(87, 86, 92) f <- factor(c("A", "B", "C") |
벡터를 여러 집단으로 분할 |
groups <- split(v, f) groups <- split(w, f) groups <- unstack(data.frame(v, f)) |
데이터프레임을 여러 집단으로 분할 |
sp <- split(Car93$MPG.city, Cars93$Origin) |
리스트의 각 원소에 함수 적용 |
lapply(결과를 리스트로 반환) list <- lapply(list, func) sapply(결과를 벡터 또는 행렬로 반환) vec <- sapply(list, func) |
행렬에 함수 적용 | m <- apply(mat, 1, func) m <- apply(mat, 2, func) |
데이터프레임에 함수 적용 |
dfm <- lapply(dfm, func) dfm <- sapply(dfm, func) dfm <- apply(dfm, func): 데이터프레임이 동질적인 경우만(모두 문자 or 숫자) 활용 가능. 데이터프레임을 행렬로 변환 후 함수 적용 |
대용량 데이터에 함수 적용 | cors <- sapply(dfm, cor, y=targetVariable) mask <- (rank(-abs(cors)) <= 10) best.pred <- dfm[, mask] lm(targetVariable ~ bes.pred) |
집단별 함수 적용 | tapply(vec, factor, func) |
병렬 벡터, 리스트 함수 적용 |
mapply(factor, v1, …, vk) mapply(factor, list1, …, list k) |
(2) 문자열, 날짜 다루기 ★
기능 | R 코드 |
문자열 길이 | nchar("단어") |
문자열 연결 | paste("word1", "word2", sep="-") |
부분 문자열 추출 | substr("statistics", 1, 4) |
구분자로 문자열 추출 | strsplit(문자열, 구분자) |
하위 문자열 대체 | sub(old, new, string) gsub(old, new, string) |
쌍별 조합 | mat <- outer(문자열1, 문자열2, paste, sep="") |
현재 날짜 반환 | Sys.Date( ) |
날짜 객체로 변환 | as.Date( ) format(Sys.Date(), format=%m%d%y) *문자열을 Date 객체로 변환하려면 as.Date(string, format=) 명령을 사용한다. ★ (예시) > as.Date("2016:09:27", format="%Y:%m:%d") [1] "2016-09-27" >as.Data('12/01/2018', '%m/%d/%Y') [1] "2018-12-01" |
날짜 조회 | format(Sys.Date(), "%a") 요일 format(Sys.Date(), "%b") 월 format(Sys.Date(), "%B") 월 format(Sys.Date(), "%d") 일 format(Sys.Date(), "%m") 월 format(Sys.Date(),"%y") 연도 format(Sys.Date(), "%Y") 연도 |
날짜 일부 추출 | d <- as.Date("2014-12-25") p <- as.POSIXlt(d) p$yday start <- as.Date("2014-12-01") end <- as.Date("2014-12-25") seq(from=start, to=end, by=1) |
#R코드의 결과 예시
(예시1) rbind ★
X<-1:5 #1,2,3,4,5
y<-seq(10,50,10) #10,20,30,40,50
rbind(x,y)
- 2*5 행렬으며, 데이터 프레임 타입의 자료 구조이다 .
-xy[1,] 결과 = 1, 2, 3, 4, 5
-xy[,1] 결과 = 1, 10
3-1-2. 데이터 마트
#데이터 변경 및 요약
(1) 데이터 마트(Data Mart)
- 데이터웨어하우스(DW)와 사용자 사이의 중간층에 위치한 것으로, 하나의 주제 또는 하나의 부서 중심의 데이터 웨어하우스라고 할 수 있다.
- 데이터 마트 내 대부분의 데이터는 DW로부터 복제되지만, 자체적으로 수집될 수도 있으며, 관계형 DB나 다차원 DB를 이용하여 구축한다.
- 동일한 데이터 셋을 활용할 경우 최신 분석기법들을 이용하면 분석가의 역량에서는 분석 효과가 크게 차이가 나지 않는다.
- 데이터 마트를 어떻게 구축하느냐에 따라 분석 효과는 크게 차이난다.
(2) 요약변수
- 수집된 정보를 분석에 맞게 종합한 변수
- 많은 모델에서 공통적으로 사용될 수 있어 재활용성이 높다.
- 합계, 횟수와 같이 간단한 구조이므로 자동화하여 상황에 맞게 또는 일반적인 자동화 프로그램으로 구축이 가능
- 연속형 변수를 범주화하여 사용해도 좋다.
(3) 파생변수
- 사용자가 특정 조건을 만족하거나 특정 함수에 의해 값을 만들어 의미를 부여한 변수이다.
- 매우 주관적일 수 있으므로 논리적 타당성을 갖추어 개발해야 한다.
- 파생변수는 특정 상황에만 유의미하지 않도록 대표성을 띄게 생성해야 한다.
(4) plyr을 이용한 데이터 분석 ★
- plyr은 apply 함수에 기반해 데이터와 출력변수를 동시에 배열로 치환하여 처리하는 패키지
-R에서 반복문을 다중으로 사용할 경우 계산 시간이 현저하게 떨어진다는 단점이 있는데 plyr는 multi-core를 사용하여 반복문을 사용하지 않고도 매우 간단하고 빠르게 처리할 수 있는 데이터 처리 함수를 포함하고 있는 패키지다. ★
- split-apply-combine: 데이터를 분리하고 처리한 다음 다시 결합하는 등 필수적인 데이터 처리기능을 제공한다.
(5) data.table을 이용한 데이터 분석
- data.table은 큰 데이터를 탐색, 연산, 병합하는 데 아주 유용하다.
· 기존 data frame 방식보다 월등히 빠른 속도
- 특정 column을 key 값으로 색인을 지정한 후 데이터를 처리한다.
- 빠른 grouping과 ordering, 짧은 문장 지원 측면에서 데이터프레임보다 유용하다.
#데이터 가공
(1) Data Exploration
- 데이터 분석을 위해 구성된 데이터의 상태를 파악한다.
- head( )
- summary( ) : 연속형 변수의 경우 4분위수, 최소값, 최대값, 중앙값, 평균 등을 출력하고 범주형 변수의 경우 각 범주에 대한 빈도수를 출력하여 데이터의 분포를 파악할 수 있게 하는 함수 ★
(2) 변수 중요도
- 모형을 생성하여 사용된 변수의 중요도를 살피는 과정이다.
(3) 변수의 구간화
- 신용평가모형, 고객 세분화 등 시스템으로 모형을 적용하기 위해서는 각 변수들을 구간화해서 구간별로 점수를 적용할 수 있어야 한다.
- bining: 연속형 변수를 범주형 변수로 변형하는 방식. 각각 동일한 개수의 레코드를 50개 이하의 구간에 데이터를 할당하여 구간들을 병합하면서 구간을 줄여나가는 방식의 구간화 방법이다.
#기초 분석 및 데이터 관리
(1) EDA(Exploratory Data Analysis) ★
- 데이터가 가지고 있는 특성을 파악하기 위해 해당 변수의 분포 등을 시각화하여 분석하는 분석 방식
- 데이터 분석에 앞서 전체적으로 데이터의 특징을 파악하고 데이터를 다양한 각도로 접근한다.
- EDA의 4가지 주제: 저항성의 강조, 잔차 계산, 자료변수의 재표현, 그래프를 통한 현시성
(2) 결측값(Missing value)
- 결측값 자체가 의미있는 경우도 있다.
- 결측값이나 이상값을 꼭 제거해야 하는 것은 아니기 때문에 분석의 목적이나 종류에 따라 적절한 판단이 필요
(출처: https://rpubs.com/jmhome/R_data_processing)
(3) 결측값 처리 방법(Imputation)
단순 대치법(Single Inputation) | completes analysis: 결측값이 존재하는 레코드를 삭제한다. |
|
평균대치법(mean imputation): 관측 또는 실험을 통해 얻어진 데이터의 평균으로 대치한다 | - 비조건부 평균 대치법: 관측 데이터의 평균 | |
- 조건부 평균 대치법: 회귀분석을 활용 | ||
단순확률 대치법(Single Stochastic Imputation): 평균대치법에서 추정량 표준 오차의 과소 추정문제를 보완하고자 고완된 방법으로 Hot-deck 방법, nearest neighbor 방법 등이 있다. | ||
다중 대치법(Multiple Imputation) | 단순 대치법을 한 번 적용하지 않고 m번의 대치를 통해 m개의 가상적 완전 자료를 생성 |
(4) R에서 결측값 처리
- 랜덤포레스트는 결측값이 존재할 경우, 에러 발생: randomForest 패키지의 rfImpute() 함수를 활용하여 결측값을 대치한 후 알고리즘에 적용
complete.cases() | 데이터 내 레코드에 결측값이 있으면 FALSE, 없으면 TRUE 반환 |
is.na() | 결측값이 NA인지 여부를 반환 |
DMwR::centralImputation() | NA 값에 가운데 값(central value)으로 대치. 연속형 변수 - 중위값, 범주형 변수 - 최빈값 |
DMwR::knnImputation() | NA 값을 knn 알고리즘을 사용하여 대치. k개 주변 이웃까지의 거리를 고려하여 가중 평균한 값을 사용 |
(5) 이상값(Outlier)
- 의도하지 않게 잘못 입력한 경우
- 의도하지 않게 입력되었으나 분석 목적에 부합되지 않아 제거해야 하는 경우
- 의도하지 않은 현상이지만 분석에 포함해야 하는 경우
- 의도된 불량(fraud)인 경우
(6) 이상값 탐지(detection)
- ESD(Extreme Studentized Deviation): 평균으로부터 K*표준편차만큼 떨어져 있는 값들을 이상값으로 판단하는 방법 ★☆
- (기하평균 - 2.5 * 표준편차 < data < 기하평균 + 2.5 * 표준편차)의 범위를 벗어나는 값
- (-1.5 * IQR(Q3-Q1) < data < 1.5 * IQR)의 범위를 벗어나는 값
(7) 극단값 절단(trimming)
- 기하평균을 이용한 제거
- 상, 하위 5%에 해당되는 데이터 제거
(8) 극단값 조정(winsorizing)
- 상한값과 하한값을 벗어나는 값들을 상한, 하한값으로 바꾸어 활용하는 방법
3-2. 통계분석
3-2-1. 통계학 개론
3-2-1-1. 통계 분석 개요
#통계학의 정의
- 자료로부터 유용한 정보를 이끌어 내는 학문, 유용한 정보를 이끌어내는 작업에는 자료의 수집과 정리, 그리고 이를 해석하는 방법 모두 포함
#통계분석
- 통계분석 방법을 이용해 의사결정하는 과정
- 기술통계: 여러 특성을 수향화하는 통계 분석 방법론(편균, 표준편차, 그래프)
- 통계적 추론(추측통계): 모집단으로부터 추출된 표본의 표본통계량으로부터 모집단의 특성인 모수에 관해 통계적으로 추론하는 통계(모수추정, 가설점정, 예측) ★☆
#표본조사★
(1) 표본 오차(sampling error)
- 모집단을 대표할 수 있는 표본 단위들이 조사 대상으로 추출되지 못함으로서 발생하는 오차
(2) 비표본 오차(non-sampling error)
- 표본오차를 제외한 모든 오차로서 조사과정에서 발생하는 모든 부주의나 실수, 알 수 없는 원인 등 모든 오차
- 조사대상이 증가하면 오차가 커진다.
- 표본값으로 모집단의 모수를 추정할 때 표본오차의 비표본오차가 발생할 수 있다.
(3) 표본 편의(sampling bias)
- 모수를 작게 또는 크게 할 때 추정하는 것과 같이 표본추출방법에서 기인하는 오차
- 표본 편의는 확률화(randomization)에 의해 최소화하거나 없앨 수 있다. ★
- 확률화(randomization): 모집단으로부터 편의되지 않은 표본을 추출하는 절차
- 확률 표본(random sample): 확률화 절차에 의해 추출된 표본
(4) 표본조사의 유의점
- 응답오차, 유도질문 등 표본조사에서 유의해야할 점이다.
#모집단과 표본
- 모딥단은 유한 모집단과 무한 모집단으로 나뉜다. 보통 개념적으로 상정된 모집단은 무한 모집단을 의미한다.
#표본추출의 방법 ★ ☆
- 표본조사를 할 때는 모집단의 정의, 표본의 크기, 조사방법, 조사기간, 표본추출 방법을 명확하게 밝히거나 확인해야 한다.
- 가장 대표적인 방법으로는 단순랜덤추출법, 계통추출법, 집락추출법, 층화추출법 등이 있다. 보통 업무에서는 이 방법들을 혼합사용.
(1) 단순 랜덤 추출법
- 각 원소에 임의 번호 부여 후 -> n개의 번호를 임의 선택 ★
(2) 계통 추출법
- 모집단의 모든 원소에 일련번호 부여 -> 순서대로 나열한 후 k개 씩 n개의 구간으로 나눈 후 , 각 구간에서 하나를 임의로 선택 ★
- 번호를 부여한 샘플을 나열하여 k개씩 n개의 구간을 나누고 첫 구간에서 하나를 임의로 선택한 후에 k개씩 띄어서 표본을 선택하고 매번 k번째 항목을 추출하는 표본 추출 방법★☆
(3) 집락 추출법
- 일부 집락을 랜덤으로 선택 -> 각 집락에서 표본을 임의 선택 ★
(4) 층화 추출법 ★
- 모집단을 성격에 따라 몇 개의 집단 또는 층으로 나누고, 각 집단내에서 원하는 크기의 표본을 무작위로 추출하는 확률적 표본 추출 방법
- 서로 유사한 것끼리 몇 개의 층으로 나눈 후 표본을 랜덤하게 추출 ★
**표본조사 외에 실험으로 자료를 수집할 수도 있다. 특정 목적하에 실험 대상에서 처리를 가한 후 결과를 관측해 자료를 수집
**표본조사는 대상 집단의 일부 추출-> 현상 관측 또는 조사
#자료의 종류
척도 | 순서 | 균등한 간격 | 절대적 존재 |
명목척도 | x | x | x |
서열척도 | o | x | x |
등간척도 | o | o | x |
비율척도* | o | o | o |
*비율척도는 사칙연산이 가능하다.
(1) 질적 자료 (qualitative data)
- 명목 척도 : 어느 집단에 속할 지 - 성별, 출생지 등
- 순서 척도 : 서열관계 , 선택사항이 일정한 순서로 되어 있음 - 선호도
(2) 양적 자료(quantitative data)
- 구간 척도 : 속성의 양을 측정, 절대적인 원점 x , 비율은 별 의미 x - 온도, 지수 등
- 비율 척도 : 절대적 기준인 0값 존재, 사칙연산 가능 , 숫자로 관측되는 일반적인 자료의 특성 - 무게, 나이, 연간소득, 제품 가격 등
**측정 : 표본조사나 실험을 실시하는 과정에서 추출된 원소들이나 실험 단위로부터 주어진 목적에 적합하도록 관측해 자료 얻는 것
**측정방법 : 명목척도, 순서척도, 구간척도, 비율척도
#통계 분석
- 특정한 집단이나 불확실한 현상을 대상으로 자료를 수집해 대상 집단에 대한 정보를 구하고, 적절한 통계 분석 방법을 이용해 의사결정을 하는 과정 = 통계적 추론 : 수집된 자료를 이용해 대상 집단에 대해 의사결정 하는 것
- '대상 집단의 특성값이 무엇일까?' 추측 : 추정
- 가설의 채택여부를 결정 : 가설 검정
- 미래의 불확실성을 해결해 효율적인 의사결정을 하기 위해 수행 : 예측
- 평균, 표준편차, 중위수, 최빈값, %와 같이 숫자로 표현하는 방식 / 막대 그래프 등 그래프로 나타내는 방식
** 기술 통계 : 수집된 자료를 정리, 요약하기 위해 사용되는 기초적인 통계 - 자세한 통계적 분석을 위한 사전단계 역할
#통계 분석 기법 종류
(1) 교차 분석 (Crosstabs Analysis) ★☆
- 범수의 관찰도수에 비교될 수 있는 기대도수를 계산한다.
- 교차분석은 두 문항 모두 범주형 변수일 때 사용하며, 두 변수간 관계를 보기 위해 실시한다.
- 교차분석은 교차표를 작성하여 교차빈도를 집계할 뿐 아니라 두 변수들 간의 독립성 검정을 할 수 있다.
- 기대빈도가 5 미만인 셀의 비율이 20%를 넘으면 카이제곱분포에 근사하지 않으며 이런 경우 표본의 크기를 늘리거나 변수의 수준을 합쳐 셀의 수를 줄이는 방법 등을 사용한다.
(2) 빈도 분석 (Frequency Analysis)
(3) 판별 분석 (Discriminant Analysis)
(4) 요인 분석 (Factor Analysis)
(5) 평균비교 (T-Test)
(6) 군집 분석 (Cluster Analysis)
(7) 회귀 분석 (Regression Analysis)
(8) 분산 분석 (Analysis Variance)
(9) 상관 분석 (Correlation Analysis)
3-2-1-2. 확률 및 확률분포
#확률의 정의
- 특정 사건이 일어날 가능성의 척도
(1) 모든 사건 E의 확률값은 0과 1사이에 있다. 0 <= P(E) <= 1
(2) 전체 집합 Ω의 확률은 1이다. 즉, P(Ω) = 1
(3) 서로 배반인 사건들 E1, E2...의 합집합의 확률은 각 사건들의 확률의 합이다. (배반사건 = 교집합이 공집합인 사건)
**표본공간 : 통계적 실험을 실시할 때 나타날 수 있는 모든 결과들의 집합
** 사건 : 표본공간의 부분집합
**근원 사건 : 오직 한 개의 원소로만 이루어진 사건을 근원사건
**표본공간이 유한 개의 원소로 구성이 되어 있고 근원사건들이 일어날 가능성이 모두 같다면, 사건 E의 확률은 " P(E) = n(E)/ n(Ω) " 즉, 사건 수 / 표본공간의 수 이다.
#조건부 확률과 독립사건
- 조건부 확률 P(B|A) = P(A n B) / P(A) - P(A)>0 일 때만 정의된다.
- P(A n B)=P(A)P(B)이면 , 두 사건이 독립이라는 의미.
- P(B|A)=P(B): 사건 B의 확률은 사건 A가 일어났는 지 여부와 무관하다.
#확률변수와 확률분포
- 특정사건이 일어날 확률은 그 변수가 특정값을 가질 확률로 표현할 수 있다.
- 확률 변수 : 특정값이 나타날 가능성이 확률적으로 주어지는 변수 , 정의역(x값)이 표본 공간, 치역이 실수값
(Image by Julie Bang © Investopedia 2020)
#이산형 확률 변수 ★
- 사건의 확률이 "점" , 확률이 0보다 큰 값을 갖는 점들로 표현 가능
- 각 이산점에 있어서 확률의 크기를 표현하는 함수 → 확률 질량 함수 ★
(1) 베르누이 확률분포 ★
- 결과가 2개만 나오는 경우 (ex. 동전 던지기, 합격/불합격)
- 각 사건이 성공할 확률이 일정하고 전/후 사건에 독립적인 특수한 상황의 확률 분포
(2) 이항분포
(3) 기하분포: 베르누이 시행 n번 반복 시, k번 성공할 확률
(초기하분포: 크기가 N인 모집단이 크기 M짜리 부모집단(A)과 N-M짜리 부모집단(B)으로 나눠져있을 때
n개의 표본을 비복원추출할 때 부모집단 A에서 추출될 표본의 분포)
(4) 포아송분포: 주어진 시간, 공간 내에서 발생하는 사건의 횟수에 대한 확률 분포 ★☆
(5) 다항분포: 이항분포 확장. 3가지 이상의 결과를 가지는 반복 시행에서 발생하는 확률분포
#연속형 확률 변수
- 어떤 0보다 큰 값을 갖는 함수의 면적으로 표현
- 한 점에서의 확률은 0, 구간에서의 확률값 → 확률률밀도함수 ★
(1) 균일분포(일양분포)
(2) 정규분포
(3) 지수분포
(4) t-분포: 두 집단의 평균이 동일한 지 확인하기 위해 검정통계량으로 활용
(5) 카이제곱분포: 모평균, 모분산이 알려지지 않는 모집단의 모분산 가설 검정과 동질성 검정 사용
(6) F-분포: 두 집단 간 분산의 동일성 검정에 사용
이산형 확률 분포 | 연속형 확률 분포 |
베르누이 확률분포 이항분포 ★ 기하분포 포아송분포 다항분포 초기하분포 |
균일분포 정규분포 ★ 지수분포 t-분포 ★ 카이제곱분포 ★ F-분포 분산분포 |
#확률변수의 기댓값과 분산
- 이상형 확률변수의 기댓값은 각 점에서의 확률값의 합
- 연속형 확률변수의 기댓값은 해당 구간에서의 면적(적분)
#백분위수
- 제 q백분위수 Xq 는 P(X<=Xq)=q/100이며, q는 0과 100사이의 값이다.
3-2-1-3. 추정과 가설검정
#추정과 가설검정 ★
통계적 추론 | |||
(1) 추정 | (2) 가설검정 | ||
점추정 | 구간추정 |
- 모수: 통계적 방법론을 통해 알고자하는 대상은 모집단의 확률분포 . 모집단의 특징을 표현하는 값 (예: 평균, 분산, 표준편차, 백분위수 등)
- 통계적 추론: 모집단에서 추출된 표본을 기반으로 모수들에 대한 통계적 추론을 함. → 추정과 가설검정으로 나뉨
- 모집단의 평균(모평균)을 추정하기 위한 추정량으로 표본평균이 대표적 (확률표본의 평균값)
- 모집단의 분산(모분산)을 추정하기 위한 추정량으로 표본분산이 대표적
(1) 점추정 ★
- 가장 참값이라고 여겨지는 하나의 모수의 값을 택하는 것. 모수가 특정한 값일 것 이라고 추정하는 것.
(2) 구간추정
- 모수가 특정한 구간에 있을 것이라는 개념으로 신뢰구간을 추정하는 방법
- 모수의 참값이 포함되어 있다고 추정되는 구간을 결정하는 것이지만, 실제 모딥단의 모수가 신뢰구간에 꼭 포함되어 있는 것은 아니다.★
- 신뢰수준: 90%, 95%, 99%의 확률을 이용하는 경우가 많다.
- 신뢰수준 95%: '주어진 한 개의 신뢰구간에 미지의 모수가 포함될 확률 95%;라는 의미 ★
- 신뢰 구간: 일정한 크기의 신뢰 수준으로 모수가 특정한 구간에 있을 것이라고 선언하는 것★
- 신뢰수준이 높아지면 신뢰수준의 길이는 길어진다. ★
- 표본의 수가 많아지면 신뢰구간의 길이는 짧아진다. ★
- 모집단의 획률분포를 정규분포라 가정할 때, 95% 신뢰수준 하에서 모평균 μ 의 신뢰구간
(A visual representation of the Empirical (68-95-99.7) Rule based on the normal distribution, wikipedia)
(예시)
> t.test(chickwts$weight)
One Sample t-test
data: chickwts$weight
t = 28.202, df = 70, # 자유도(degree of freedom)
p-value < 2.2e-16
alternative hypothesis: true mean is not equal to 0
95 percent confidence interval: # 95%의 신뢰구간(구간추정)
242.8301 279.7896
sample estimates:
mean of x # 점추정량
261.3099
#자유도(degree of freedom)
- 통계적 추정을 할 때 표본자료 중 모집단에 대한 정보를 주는 독립적인 자료 수
- 크기가 n인 표본의 관측값의 자유도는 n-1이다 ★
#가설검정 ★
- 모집단에 대한 귀무가설(H0)과 대립가설(H1)을 설정한 뒤, 표본관찰 또는 실험을 통해 하나를 선택하는 과정
- 귀무가설이 옳다는 전제하에서 관측된 검정통계량의 값보다 더 대립가설을 지지하는 값이 나타날 확률을 구하여 가설의 채택여부 결정한다.
- 독립변수의 기울기(회귀계수)가 0이라는 가정을 귀무가설, 기울기가 0이 아니라는 가정을 대립가설로 놓는다. ★★
- 즉 유의수준을 평가하여 귀무가설을 채택할지 거부할지를 판단한다.★
- 귀무가설(H0) : 대립가설과 반대의 증거를 찾기 위해 정한 가설 (관습적이고 보수적인 주장)
- 대립가설(H1) : 증명하고 싶은 가설 (적극적으로 우리가 입증하려는 주장) ★
- 유의수준(알파a): 오류를 허용할 범위
- 유의확률(p-value): 대립가설이 틀릴 확률 ★
(출처: https://dbrang.tistory.com/1210)
#p-value ★
- 귀무가설이 옳다는 가정하에 얻은 통계량이 귀무가설을 얼마나 지지하는 지를 나타낸 확률이다. ★
- p-value는 귀무가설이 사실인데도 불구하고 사실이 아니라고 판정할 때 실제 확률을 나타낸다. ★
- p-value가 미리 정해놓은 유의수준 값보다 작을 경우 귀무가설은 기각되고 대립가설은 채택된다. ★
- p-값은 0~1 사이의 값을 가지고 있고 P값은 전체 표본에서 하나의 표본이 나올 수 있는 확률이다. ★
- p-값이 작을수록 귀무가설을 기각할 가능성이 높아진다.
- p-값이 유의수준(α)보다 작으면 귀무가설을 기각한다.
#가설검정의 오류 ★
- 제1종 오류와 제2종 오류는 상충관계가 있음
- 제1종 오류의 확률을 0.1, 0.05, 0.01 등으로 고정시킨 뒤, 제2종 오류가 최소가 되도록 기각역을 설정한다.
- 기각역: 귀무가설을 기각하는 통계량의 영역 (대립가설이 맞을 때ㅐ 그것을 받아들이는 확률) ★
- 1종 오류: 귀무가설이 사실임데도 사실이 아니라고 판정 ★
- 2종 오류: 귀무가설이 사실이 아님에도 사실이라고 판정
정확한 사실\가설검정 결과 | 귀무가설(H0)이 사실이라고 판정 | 귀무가설(H0)이 사실이 아니라고 판정 |
귀무가설(H0)이 사실임 | 옳은 결정 | 제 1종 오류(α) ★ |
귀무가설(H0)이 사실이 아님 | 제2종 오류(β) | 옳은 결정 |
#가설검정의 예시
- A나라의 평균수명은 70세라고 통상 알려져 있다. (귀무가설) 실제로 평균 수명이 70세인지 아닌지 검정하고자 한다. 샘플링한 데이터를 t-test를 진행한 결과 p-value가 0.04로 나왔으며, 유의수준 5%에서 검정하라.
- 귀무가설은( A나라의 평균수명의 통념 70세 이다. ) 기각하고 대립가설을 ( A나라의 실제로 평균 수명이 70세가 아니다. ) 채택한다.
- 채택근거는 t-test (두 집단의 평균 차이 확인시 사용)결과 p-value = 0.04로 유의확율인 0.05보다 "작아" 귀무가설은 기각하고, 대립가설을 채택할 수 있다.
#t 검정(t-test)
- 모집단의 분산이나 표준편차를 알지 못할 때 모집단을 대표하는 표본으로부터 추정된 분산이나 표준편차를 가지고 검정하는 방법
- “두 모집단의 평균간의 차이는 없다”라는 귀무가설과 “두 모집단의 평균 간에 차이가 있다”라는 대립가설 중에 하나를 선택할 수 있도록 하는 통계적 검정방법
#검정 통계량
- 우리의 자료로부터 계산하게 되는 값
- 검정 통계량은 모수를 추정하고자 하는 것
- 귀무가설을 기각을 할지 말지는 모수로부터 검정통계랑이 얼마나 떨어져 있는데 따라서 판단한다.
#. 기각역 설정
- θ : 모수
- x : 영가설(의 수치)
- t : 검정통계량(x의 상대적 위치)
- C : 임계값 (t를 검정하기 위한 기준)
(1) 양측 검정 (유의수준 : α/2) ★
- H0 : θ = x
- H1 : θ != x
- 기각역 : P(t < Cl) ~ P(t > Cu) *색칠구간
- 채택역 : Cl < t < Cu
- 유의확률 : P(ㅣtㅣ< α/2 ) * P(t < 0.025) 일 때, H0 기각
* 검정의 편의를 위해 t에 절대값을 적용
(2) 단측 검정(왼쪽) (유의수준 : α)
- H0 : θ >= x
- H1 : θ < x
- 기각역 : P(t < Cl) *색칠구간
- 채택역 : P(t > Cl)
- 유의확률 : P( t < α ) * P(t < 0.05) 일 때, H0 기각, H1 채택
(3) 단측 검정(오른쪽) (유의수준 : α)
- H0 : θ <= x
- H1 : θ > x
- 기각역 : P(Cu < t) *색칠구간
- 채택역 : P(Cu > t)
- 유의확률 : P( t < α ) * P(t < 0.05) 일 때, H0 기각, H1 채택
3-2-1-4. 모수 검정
(출처: https://bioinformaticsandme.tistory.com/111)
모수 검정 | 비모수 검정 |
가정된 분포의 모수에 대해 가설 | 가정된 분포X -> "분포의 형태가 동일 or 동일하지 x "같은 분포의 형태에 대해 설정 |
관측된 자료를 이용해 표본평균, 표본분산 등 이용 | 관측값의 절대적인 크기에 의존하지 않는 관측값들의 순위, 차이의 부호 등을 이용 - 부호 검정 - 크루스칼-왈리스 검정 - 맨-휘트니 검정 |
#모수적 검정
- 모집단의 분포에 대한 가정을 하고, 그 가정 하에서 검정통계량과 검정통계량의 분포를 유도해 검정을 실시하는 방법
- 가설의 설정 : 가정된 분포의 모수(모평균, 모분산 등)에 대한 가설 설정
- 검정 실시 : 관측된 자료를 이용해 표본평균, 표본분산 등을 구하여 검정 실시
#비모수적 검정
- 모집단의 분포에 대해 아무 제약을 가하지 않고 검정을 실시하는 검정 방법이다.★
- 비모수적 방법은 모집단에 대한 아무런 정보가 없을 때 사용하는 방법 ★
- 관측 자료가 특정분포를 따른다고 가정할 수 없는 경우에 이용 ★
- 비모수적 방법은 평균과 분산이 없고 평균 값의 차이, 신뢰구간을 구할 수 없다. ★
- 모딥단의 특성을 몇 개의 모수로 결정하기 어려우며 수많은 모수가 필요할 수 있다. ★
- 관측값의 절대적인 크기에 의존하지 않는 관측값들의 순위나 두 관측값 차이의 부호 등을 이용해 검정한다.★
- 가설의 설정 : 가정된 분포가 없으므로, 단지 '분포의 형태'가 동일한지 여부에 대해 가설 설정
- 검정 실시 : 관측값의 순위나 관측값 차이의 부호 등을 이용해 검정 실시 ★
(예) 부호검정, 순위합검정, 부호순위합검정, U검정, 런검정, 순위상관계수 등
#부호 검정(Sign test) ★
- 비모수 검정 방법 ★
- 표본들이 서로 관련되어 있는 경우 짝지어진 두 개의 관찰치들의 크고 작음을 표시하여 그 개수를 가지고 두 분포의 차이가 있는지에 대한 가설을 검증하는 방법
#모분산의 추론 ★
- 표본의 분산은 카이제곱 분포를 따른다.
- 모집단의 변동성 또는 퍼짐의 정도에 관심이 있는 경우 모분산이 추론의 대상이 된다.
- 모집단이 정규 분포를 따르지 않더라도 중심극한정리를 통해 정규모집단으로부터 모분산에 대한 검정을 유사하게 시행할 수 있다.
- 이 표본에 의한 분산비 검정은 두 표본의 분산이 동일한지를 비교하는 검정으로 검정통계량은 *F분포를 따른다.
*F분포 : 두 집단 간 분산의 동일성 검정에 사용 (t분포 : 두 집단의 평균이 동일한 지 확인하기 위해 검정통계량으로 활용)
3-2-2. 기초 통계분석
#기술 통계
- 자료를 요약하는 기초적 통계
- 자료의 특성을 표, 그림, 통계량 등을 사용하여 쉽게 파악할 수 있도록 정리/요약
- 분석에 앞서 데이터의 통계적 수치를 계산해봄으로써, 데이터에 대한 대략적인 이해와 분석의 통찰력을 얻기에 유리하다.
- R에서는 head(data), summary(data), mean(data$column), median(data$column), var(data$column), max(data$column), min(data$column) 등의 함수로 기초통계량을 구해 확인한다.
#분포의 형태에 관한 측도
(1) 왜도
- 분포의 비대칭 정도를 나타내는 측도
- Right-skewed, Prositive-skewed distribution ★
: 오른쪽으로 긴 꼬리를 갖는 분포
: Mode < Median < Mean
- Symmetrical distribution
: Mode = Median = Mean
- Left-skewed, Negative-skewed distribution
: 왼쪽으로 긴 꼬리를 갖는 분포
: Mean < Median < Mode
(2) 첨도
- 분포의 중심에서 뾰족한 정도를 나타내는 측도
Right-skewed 분포
#표본을 도표화함으로써 모집단 분포의 개형을 파악하는 방법
(1) 히스토그램 ★
- 도수분포표를 이용하여 표본자료의 분포를 나타낸 그래프
- 수평축 위에 계급구간을 표시하고 각 계급의 상대도수에 비례하는 넓이의 직사각형을 그린 것
- 연속형
(2) 막대그래프
- 범주형
(3) 줄기-잎 그림 ★
- 각 데이터의 점들을 구간단위로 요약하는 방법으로 계산량이 많지 않음
(4) 상자그림
(5) 산점도 ★
- 두 특성의 값이 연속적인 수인 경우, 표본자료를 그래프로 나타내는 방법
- 각 이차원 자료에 대하여 좌표가 (특성 1의 값, 특성 2의 값)인 점을 좌표평면 위에 찍은 것
(6) 파레토그림 ★
- 명목형 자료에서 ‘중요한 소수’를 찾는데 유용한 방법
줄기와 잎 그림, 나무위키
3-2-2-1. 회귀분석
#회귀 분석의 정의와 변수의 종류
- 회귀분석이란 하나나 그 이상의 변수들이 또 다른 변수에 미치는 영향에 대해 추론할 수 있는 통계기법이다.
- 반응변수(종속변수) : 영향을 받는 변수, 보통 y로 표기
- 설명변수(독립변수) : 영향을 주는 변수, 보통 x, x1, x2 등으로 표기
- 회귀계수 추정 : 최소제곱법, 최소자승법 ★
#회귀분석의 종류
(1) 독립변수의 수에 의한 구분
- 단순 회귀 분석: - 회귀모형 중에서 가장 단순한 모형, 한 개의 독립변수와 하나의 종속변수로 이루어짐, 회귀계수의 추정치는 보통 제곱오차를 최소로 하는 값으로 구함
- 다중 회귀 분석: 두 개 이상의 독립변수를 사용하여 종속변수의 변화를 설명, 단순회귀모형이 종속변수의 변동을 설명하는데 충분하지 않다는 점을 보완
(2) 독립변수 척도에 의한 구분
- 등간, 비율: 일반 회귀
- 명목, 서열: 더미 회귀
(3) 독립, 종속 변수의 관계에 의한 구분
- 선형회귀
- 비선형회귀
#회귀모형에 대한 가정 ★☆
- 선형성 : 독립변수의 변화에 따라 종속변수도 변화하는 선형인 모형 ★
- 독립성 : 잔차와 독립변수의 값이 관련되어 있지 않음 ★
- 등분산성 : 오차항들의 분포는 동일한 분산을 가짐
- 비상관성 : 잔차들끼리 상관이 없어야 함
- 정상성(정규성) : 잔차항이 정규분포를 이뤄야 함 ★★
#정규성 검정 ★
(1) Q-Q plot★
그래프를 그려서 정규성 가정이 만족되는지 시각적으로 확인하는 방법이다.
대각선 참조선을 따라서 값들이 분포하게 되면 정규성을 만족한다고 할 수 있다.
한쪽으로 치우치면 정규성 가정에 위배되었다고 볼 수 있다.
(2) Shapiro-Wilk test( 샤피로 - 윌크 검정 )★
-오차항이 정규분포를 따르는지 알아보는 검정, 회귀분석에서 모든독립변수에 대해서
-종속변수가 정규분포를 따르는지 알아보는 방법이다.
-귀무가설은 , '정규분포를 따른다'
-p-value 가 0.05보다 크면 정규성을 가정하게 된다.
(3) Kolmogorov-Smirnov test(콜모고로프-스미노프 검정)
- 자료의 평균/표준편차와 히스토그램을 표준정규분포와 비교하여 적합도를 검정한다.
-샤피로와 마찬가지로 p-value가 0.05보다 크면 정규성을 가정하게 된다.
(4) 히스토그램
#최소제곱 ★☆
- 주어진 자료를 가장 잘 설명하는 회귀계수의 추정치는 보통 제곱오차를 최소로하는 값을 구하며, 이 회귀계수 추정량을 최소제곱이라고 한다.
#회귀분석 모형에서 확인할 사항
- 모형이 통계적으로 유의미한가? F분포값과 유의확률(p-value)를 확인
- 회귀계수들이 유의미한가? 회귀계수의 T값과 유의확률(p-value)를 확인
- 모형이 얼마나 설명력을 갖는가? 결정 계수(R^2)를 확인, 0~1닶
- 모형이 데이터를 잘 적합하고 있는가? 잔차통계량을 확인하고 회귀진단
#다중선형회귀분석 결과 해석
- 모형의 통계적 유의성은 F-통계량으로 확인
- 유의수준 5% 하에서 F-통계량의 p-value 값이 0.05보다 작으면 추정된 회귀식은 통계적으로 유의하다고 볼 수 있음
- F-통계량이 크면 p-value가 0.05보다 작아지고 귀무가설을 기각. 모형이 유의하다고 결론
#다중공선성(Multicolinearity)
- 모형의 일부 예측변수가 다른 예측변수와 상관되어 있을 때 발생하는 조건이다.
- 중대한 다중공선성은 회귀계수의 분산을 증가시켜 불안정하고 해석하기 어렵게 만들기 때문에 문제가 된다.
- R에서는 vif 함수를 이용해 VIF값을 구할 수 있으며, 보통 VIF값이 4가 넘으면 다중공선성이 존재한다고 본다.
- 해결방안 : 높은 상관 관계가 있는 예측변수를 모형에서 제거한다.
#최적 회귀방정식의 선택 ★☆
(1) 모든 가능한 조합의 회귀분석
-모든 가능한 독립변수들의 조합에 대한 회귀모형을 고려해 가장 적합한 회귀모형을 선택
- AIC나 BIC의 값이 가장 작은 모형을 선택하는 방법으로 모든 가능한 조합의 회귀분석을 실시한다. ★
(2) 전진선택법 (Forward Selection)
- 상수모형으로부터 시작해 중요하다고 생각되는 설명변수부터 차례로 모형에 추가
- 후보가 되는 설명변수 중 가장 설명을 잘하는 변수가 유의하지 않을 때의 모형을 선택
- 설명변수를 추가했을 때 제곱합의 기준으로 가장 설명을 잘하는 변수를 고려하여 그 변수가 유의하면 추가한다. ★☆
(3) 후진제거법 (Backward Elimination) ★☆
-독립변수 후보 모두를 포함한 모형에서 출발해 가장 적은 영향을 주는 변수부터 하나씩 제거
- 더 이상 유의하지 않은 변수가 없을 때의 모형을 선택
(4) 단계별방법 (Stepwise Selection)
- 전진선택법에 의해 변수를 추가하면서, 기존 변수의 중요도가 약화되면 제거하는 등 단계별로 추가 또는 제거
- 단계적 방법은 기존의 모형에서 예측 변수를 추가, 제거를 반복하여 최적의 모형을 찾는 방법★☆
- 더 이상 추가 또는 제거되는 변수가 없을 때의 모형을 선택
(5) 적은 수의 설명변수
- 가능한 범위 내 적은 수의 설명변수를 포함시킨다. ★☆
#R에서의 단계적 변수선택 예제
(1) 전진선택법
> step(lm(y~1, dfrm), scope=list(lower=~1,upper=~u+v+w), direction="forward")
(2) 후진제거법
step(lm(y~u+v+w, dfrm), direction="backward")
(3) 단계별방법
step(lm(y~1, dfrm), scope=list(lower=~1, upper=~u+v+w), direction="both")
#경사하강법(Gradient descent)★
- 손실을 줄이는 알고리즘으로 미분값(기울기)이 최소가 되는 점을 찾아 가중치를 찾는 방법
#R에서의 회귀분석 수행 예제
(1) 단순선형회귀분석
> lm ( y~x, data=데이터명 )
Call :
lm(formula = y ~ x, data = 데이터명)
Coefficients :
(Intercept) x
2.131 3.018
#회귀방정식 y = 2.131 + 3.018x 로 추정
(2) 다중선형회귀분석
> lm ( y~u+v+w, data=데이터명 )
Call :
lm(formula = y ~ u + v + w, data = 데이터명)
Coefficients :
(Intercept) u v w
3.203 0.1482 1.9752 -3.0081
#회귀방정식 y = 3.203 + 0.1482u + 1.9752v - 3.0081w 로 추정
(3) 모형의 적절성 여부 확인
> m <- lm ( y~u+v+w, data = 데이터명 )
> summary(m)
- summary 함수를 통해 F-통계량의 p-값, 결정계수, 회귀계수의 p-값을 확인하여 모형의 적절성 여부를 판단한다.
- 추가로 plot(m) 함수를 통해 회귀식의 잔차도를 확인하여 선형성을 파악한다.
#모형의 적절성 여부 확인 예시
(1) 실행 결과 결과 1
- 통계적으로 유의미한가 ? F통계량의 p값 = 1.564e-14 <0.05 ; 유의
- 회귀계수들이 유의미한가? t통계량과 p값이 모두 0.01보다 작음 ; 유의 -> ***으로 표시된 결과
- 모형의 설명력은 얼마나? 결정계수 = 1 ; 설명력 높다
(2) 실행 결과 결과 2
- 통계적으로 유의미한가 ? F통계량의 p값 = 5.852e-12 <0.05 ; 유의
- 회귀계수들이 유의미한가? t통계량과 p값이 모두 0.05보다 크다 ; 유의하지 않다.
- 모형의 설명력은 얼마나? 결정계수 = 0.6673 ; 설명력 보통
(2) 실행 결과 결과 3
m<-lm(y~u+v+w,dfrm1)
summary(m)
Call: lm(formula = y ~ u + v + w, data = dfrm1) # 회귀모형 출력
Residuals: # 잔차의 분포 정보
Min 1Q Median 3Q Max
-0.188562 -0.058632 -0.002013 0.080024 0.143757
Coefficients: # 회귀계수라고(coefficients)-> 비표준화 회귀계수
Estimate Std.Error t value Pr(>|t|)
(Intercept) 3.041653 0.264808 11.486 0.00002615200404717 ***
u 0.123173 0.012841 9.592 0.00007339511595238 ***
v 1.989017 0.016586 119.923 0.00000000002266819 ***
w -2.997816 0.005421 -552.981 0.00000000000000236 ***
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# 회귀계수 유의성 검정->t통계량 때 p값이 모두 <0.05 귀무가설 기각 회귀계수 모두 유의미함
Residual standard error: 0.1303 on 6 degrees of freedom
Multiple R-squared: 0.799 Adjusted R-squared: 0.855
F-statistic: 1.038e+05 on 3 and 6 DF, p-value: 0.00000000000001564
- 다중 회귀분석을 한 것으로 종속변수 y 대해 u,v 비표준화(estimate)계수 양의 관계, w 는 음의관계이다. ★
- *** 표시는 모든 회귀계수가 유의미 하다는 뜻.
- 모형의 통계적 유의성 검정 -> F 통계량 값, p값(0.00000000000001564)<0.05
- 귀무가설 : 회귀모형은 의미가 없다-> 기각
- 결정계수(R^2)=종속변수의 분산 중에서 독립변수의 의해 설명된 분산 비율=85.5%
- R^2값은 독립변수의 수가 많아질수록 커지는 특성 -> 수정된 R^2을 사용함.
- 결정계수(R^2)는 모형의 설명력을 판단. ( 결정 계수는 총변동과 설명되는 편차에 대한 변동 비율이다)
- 결정계수(R^2)는 제곱이기 때문에 0~1 범위를 갖는다.
(2) 실행 결과 결과 4 ★
> out=lm(Fertility~Education,data=swiss)
> anova(out)
Analysis of Variance Table
Response: Fertility
Df Sum Sq Mean Sq F value Pr(>F)
Education 1 3162.7 3162.7 35.446 3.659e-07 *** #회귀제곱합(SSR):3162.7
Residuals 45 4015.2 89.2 #오차제곱합(SSE):4015.2
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 '' 1
- 결정계수(R^2) = SSR/SST = 3162.7/(3162.7+4015.2) = 0.441★☆
- R^2(결정계수) = 회귀제곱합(SSR) / 총 제곱합(SST) ★
- 총 제곱합(총 변동, SST) = 회귀제곱합(설명된 변동, SSR) + 오차제곱합(설명안된 변동, SSE)
3-2-2-2. 정규화 선형회귀(Regularized Linear Regression)
#정규화 선형회귀란?
선형회귀계수에 대한 제약 조건을 추가하여 모형이 과도하게 최적화되는, 즉 과적합(overfitting)을 막는 방법
#딥러닝에서 과적합 문제를 해결하는 방법
- 더 많은 데이터를 사용한다.
- Cross Validation
- 정규화(Regularization) : Ridge 회귀모형, Lasso 회귀모형, Elastic Net 회귀 모형
#세 가지 정규화 방법의 비교
구분 | 릿지(Ridge) | 라쏘(Lasso) ★ | 엘라스틱넷(Elastic Net) |
제약식 | L2norm | L1norm | L1 + L2norm |
변수선택 | 불가능 | 가능 | 가능 |
장점 | 변수 간 상관관계가 높아도 좋은 성능 |
변수 간 상관관계가 높으면 성능이 떨어짐 |
변수 간 상관관계를 반영한 정규화 |
#Lasso 회귀분석 ★
- 회귀분석에서 사용하는 최소제곱법에 제약조건을 부여하는 방법이다.
- 회귀계수의 절대값이클수록 패널티를 부여한다. ★
- 자동적으로 변수선택을 하는 효과가 있다. ★
- lambda값으로 penalty의 정도를 조정한다. ★
- 람다는 기존의 잔차 제곱합과 추가적으로 제약 조건의 비중을 조절하기 위한 hyper parameter 이다. ( 람다가 크면 정규화 정도가 커지고 가중치의 값들이 작아진다 = 과소적합의 문제가 발생 )
- 정규화 선형회귀 ( Regularized Linear Regression ) 의 하나로 선형회귀계수에 대한 제약 조건을 추가하여 과적합을 막는 방법 중 하나이다.
- 제약조검 t는 회귀계수 값에 대해 축소 정도를 조절할 수가 있다.
- MSE(평균제곱오차, mean squared error)와 Penalty항의 합이 최소가 되게하는 파라메터를 찾는 것이 목적이다.
- Lasso regression은 L1 norm을 사용해서 패널티를 주는 방식이다.
- L1 Regularizaiton 은 기존 Cost function 뒤에 L1 항을 추가해준 것이다.
3-2-3. 다변량 분석
#다변량 분석
- 간단한 형식으로 데이터를 요약하는 것
- 이를 통해 반응변수와 설명변수 간의 관계를 쉽게 이해하기 위해 실행
- 정보의 손실 없이 설명 변수의 숫자를 줄이거나 다수의 개체를 몇 개의 작은 그룹으로 나눈다.
#다변량 분석의 방법
- 주성분분석(Principal COmponent Analysis)
- 요인분석(Factor Analysis)
- 판별분석(Discriminant Analysis)
- 군집분석(Cluster Analysis)
- 정준상관분석(Canonical Correlation Analysis)
- 다차원척도법(Multi-dimensional Scaling)
#인과관계와 공분산의 이해
- 종속변수(반응변수): 다른 변수의 영향을 받는 변수
- 독립변수(설명변수): 영향을 주는 변수
- 산점도: 두 변수 사이의 선형, 함수 관계 파악, 이상값, 집단 구분 확인 가능
- 공분산: 두 변수의 방향성 확인, 독립이면 Cov(X,Y) = 0 ★
#상관분석 ★
- 데이터 안의 두 변수 간의 관련성을 파악하는 방법이다.
- 상관계수는 두 변수간 관련성의 정도를 의미한다.
- Cor.test() 함수를 사용해 상관계수 검정을 수행하고, 유의성 거점을 판단할 수 있다.
#상관분석 유형 ★
구분 | (1) 피어슨의 상관계수★ | (2) 스피어만 상관계수 ★★ |
설명 | - 두 변수 간의 선형관계의 크기를 측정하는 값으로 비선형적인 관계는 나타내지 못한다.★ - 연속형 변수만 가능, 정규성을 가정 - 대상이 되는 자료의 종류 : 등간 척도, 비율척도 ★★ - -1과 1사이의 값을 가진다.★ - 예. 국어 점수와 영어점수의 상관계수 |
- 두 변수 간의 비선형적인 관계도 나타낼 수 있음 ★★ - 연속형 외에 이산형 순서형도 가능★ - 관계가 랜덤이거나 존재하지 않을 경우 상관 계수 모두 0에 가깝다. ★ - 원시 데이터가 아니라 각 변수에 대해 순위를 매긴 값을 기반으로 한다. ★ - 비모수적이다. - 대상이 되는 자료의 종류 : 순서척도, 서열척도 ★★ - -1과 1사이의 값을 가진다. -0은 상관 관계가 없음을 의미한다. - 예. 국어성적 석차와 영어성적 석차의 상관계수 |
공식 |
(1) 피어슨의 상관계수
- 두 변수간 선형 관계의 크기를 측정하는 공분산의 크기가 단위에 따라 영향을 받지 않도록 한 피어슨 상관계수에서 두 변수의 상관관계가 존재하지 않을 경우 도출되는 값은 0이다. ★
- 예시 ★
응답자 ID | 키 | 몸무게 |
1 | 165 | 65 |
2 | 170 | 70 |
3 | 175 | 75 |
4 | 180 | 80 |
5 | 185 | 85 |
답: 1
(2) 스피어만 상관계수
- 예시
축구팀 | A | B | C | D | E | F | G | H | I | J | K | L |
세계통신 | 7 | 1 | 3 | 8 | 6 | 5 | 4 | 2 | 10 | 9 | 11 | 12 |
국제통신 | 8 | 3 | 2 | 7 | 5 | 4 | 6 | 1 | 9 | 12 | 11 | 10 |
답: 0.9
#상관계수와 상관관계 ★
- 상관계수 r의 범위는 -1 ≤ r ≤ 1
-상관계수가 0에 가까울 수록 상관이 낮다고 말한다. (단, r=0이라 함은 두 변수간 직선적 관계가 없다는 의미이다.
- R에서 cor(변수1, 변수2)는 변수 간 상관계수 산출을 의미한다.
#결정계수★
- 결정계수는 총 변동 중 회귀모형에 의하여 설명되는 변동이 차지하는 비율이다. ★★
- 결정계수가 커질수록 회귀방정식의 설명력이 높아진다.
- 수정된 결정계수는 유의하지 않은 독립변수들이 회귀식에 포함되었을 때 그 값이 감소한다. ★☆
- 다중회귀분석에서는 최적 모형의 선정기준으로 결정계수 값보다 수정된 결정계수 값을 사용하는 것이 적절하다. ★☆
- 회귀모형에서 입력변수가 증가하면 결정 계수도 증가한다.
- 결정계수는 0~1 사이의 범위를 갖는다.
- 회귀계수의 유의성 검증은 t값과 p값을 통해 확인하다.
(1) 회귀 분산분석에서, 총 제곱합(총 변동, SST) = 회귀제곱합(설명된 변동, SSR) + 오차제곱합(설명안된 변동, SSE)
(2) R^2(결정계수) = 회귀제곱합(SSR) / 총 제곱합(SST) ★
→ 결정계수가 클 수록 회귀방정식과 상관계수의 설명력이 높아진다.★
#다차원 척도법(MDS, Multidimensional Scaling) ★
- 개체들 사이의 유사성/ 비유사성을 측정하여 2차원 또는 3차원 공간상에 표현하는 방법
- 개체간의 근접성을 시각화하여 데이터 속에 잠재한 패턴이나 구조를 찾아내는 통계기법
- 차원의 수가 많을 수록 추정의 적합도가 높아지지만 해석이 어려워서 일반적으로 두 개 차원의 지각도를 작성
- 유사성의 계산은 Euclidean 거리를 활용
- 여러 대상 간의 거리가 주어져 있을 때, 대상들을 동일한 상대적 거리를 가진 실수 공간의 점들로 배치시키는 방법
#주성분분석(PCA, Principal Component Analysis)
- p개의 변수들을 중요한 m(p)개의 주성분으로 표현하여 전체 변동을 설명하는 방법★
- 데이터에 많은 변수가 있을 때 변수의 수를 줄이는 차원 감소 기법중 하나.
- 상관관계가 있는 변수들을 선형 결합하여 변수를 축약
- 즉, 변수들 간에 내재하는 상관관계 및 연관성을 이용하여 소수의 주성분으로 차원을 축소하는 분석기법
#주성분분석 개수(m)를 선택하는 방법★☆
- 전체 변이 공헌도(percentage of total variance) 방법은 전체 변이의 70~90% 전도가 되도록 주성분의 수를 결정한다.
- 평균 고유값 방법: 교유값들의 평균을 구한 후 고유값이 평균값 이상이 되는 주성분을 설정하는 것
- Scree graph를 이용하는 방법은 고유값의 크기순으로 산점도를 그린 그래프에서 감소하는 추세가 원만해지는 지점에서 1을 뺀 개수를 주성분의 개수로 선택한다.
- 주성분은 주성분을 구성하는 변수들의 계수 구조를 파악하여 적절하게 해석되어야 하며, 명확하게 정의된 해석 방법이 있는 것은 아니다.
#스크리 그림(Scree plot)
- 주성분의 분산의 크기를 보여준다.
- 주성분의 개수를 선택하기 위해 총 분산의 비율이 70~90% 사이가 되는 지점을 찾는데 사용된다.
- 몇 개의 주성분을 사용하여 차원 축소를 진행할지 경정하기 위해 사용된다.
- 총 분산 비율과 고유값이 수평을 유지하기 전단계로 주성분의 수를 선택한다.
#주성분분석 vs 요인분석
- 자료의 축소라는 차원에서 같은 의미로 해석하기 쉬우나 다른 개념
- 주성분분석 : 많은 데이터에 포함된 정보의 손실을 최소화해서 단순히 데이터를 축소하는 방법
- 공통요인분석 : 자료의 축소라는 의미도 포함해 데이터에 내재적 속성까지 찾아내는 방법
3-2-4. 시계열 예측
3-2-4-1. 시계열 자료
#시계열 자료
- 시간의 흐름에 따라 관찰된 닶들을 시계열 자료라 한다.
- 시계열 데이터의 분석을 통해 미래의 값을 예측하고 경향, 주기, 계절성 등을 파악하여 활용한다.
- 시계열 데이터의 구성요소: 추세, 순환, 계절변동, 불규칙 변동 등
#시계열 자료의 종류
(1) 비정상성 시계열 자료
- 시계열 분석을 실시할 때 다루기 어려운 자료로 대부분의 시계열 자료가 이에 해당한다.
(2) 정상성 시계열 자료
- 비정상 시계열을 핸들링해 다루기 쉬운 시계열 자료로 변환한 자료이다.
#시계열 데이터의 분석 절차
(1) 시간 그래프 그리기
(2) 추세와 계절성을 제거
(3) 잔차를 예측
(4) 잔차에 대한 모델 적합하기
(5) 예측된 잔차에 추세와 계절성을 더해 미래 예측
3-2-4-2. 정상성
#정상성
- 시간의 흐름에 따라 관측된 시계열 자료를 분석하기 위해서는 정상성을 만족해야 함
- 정상성이란, 시점에 관계없이 시계열의 특성이 일정함을 의미
- 확률과정의 평균과 분산이 일정한 것을 안정적이라고 함
#정상성의 조건 ★
- 평균이 일정, 분산이 시점에 의존하지 않음, 공분산은 시차에만 의존하고, 시점 자체에는 의존하지 않음 ★
- 위의 3가지 정상성 조건을 만족하지 못하는 경우 비정상 시계열로 부르며, 대부분의 자료가 비정상 시계열임
- 때문에 시계열 자료의 분석을 위해서는 이를 판단하고, 분석 가능한 형태로 바꾸는 작업이 필요함
#비정상 시계열 자료의 분석을 위한 작업
(1) 정상성 만족 여부 판단
- 이상점과 개입을 살핌
- 개략적인 추세 유무를 관찰(상승 또는 하락 추세가 있다면 평균이 일정하지 않음)
(2) 비정상 시계열을 정상성을 만족하도록 수정
- 이상점 존재 -> 이상값 제거
- 개입 -> 회귀분석 수행
- 추세 -> 차분(현 시점의 자료값에서 전 시점의 자료값을 빼는 것)
- 분산이 일정하지 않음 -> 변환
3-2-4-3. 시계열자료 분석 방법
#분석방법
(1) 수학적 이론 모형: 회귀분석(계량경제) 방법, Box-JenKins 방법
(2) 직관적 방법: 지수평활법, 시계열 분해법으로 시간에 따른 변동이 느린 데이터 분석에 활용
(3) 장기 예측: 회귀분석 방법 활용
(4) 단기 예측: Box-Jenkins 방법, 지수평활법, 시계열 분해법 활용
#자료 형태에 따른 분석 방법
(1) 일변량 시계열분석
- 시간(t)을 설명변수로 한 회귀모형주가, 소매가지수 등 하나의 변수에 관심을 갖는 경우의 시계열 분석
- Box-Jenkins(ARMA), 지수 평활법, 시계열 분해법 등
(2) 다중 시계열분석
- 어러개의 시간(t)에 따른 변수들을 활용하는 시계열 분석
- 계량경제 모형, 전이함수 모형, 개입분석, 상태공간 분석, 다변량 ARIMA 등
- 계량경제 예시: 이자율, 인플레이션이 환율이 미치는 요인 등
#이동평균법
(1) 이동평균법의 개념
- 과거로부터 현재까지 시계열 자료를 대상으로 일정기간별 이동평균을 계산하고, 이들의 추세를 파악하여 다음 기간을 예측하는 방법
- 시계열 자료에서 계절변동과 불규칙 변동을 제거하여 추세변동과 순환변동만 가진 시계열로 변환하는 방법으로도 사용된다.
- n개의 시계열데이어를 m기간으로 이동평균하면 n-m+1개의 이동평균 데이터가 생성된다.
(2) 이동평균법의 특징
- 간단하고 쉽게 미래를 예측할 수 있으며, 자료의 수가 많고 안정된 패턴을 보이는 경우 예측의 품질이 높음
- 일반적으로 시계열 자료에 뚜렷한 추세가 있거나 불규칙 변동이 심하지 않은 경우에는 짧은 기간 (m의 개수가 적음)의 평균을 사용하며, 반대로 불규칙 변동이 심한 경우 긴 기간(m의 개수가 많음)의 평균을 사용한다.
(3) 이동평균모형 (MR 모형) ★
- 시계열 모델 중 자기 자신의 과거 값을 사용하여 설명하는 모형이다.
- 백색 잡음의 현재값과 자기 자신의 과거값의 선형 가중합으로 이루어진 확률 모형이다.
- 현시점의 자료를 유한 개의 백색잡음의 선형결합으로 표현되었기 때문에 항상 정상성을 만족한다.
- 모형에 사용하는 시계열 자료의 시점에 따라 1차, 2차...,p차 등을 사용하나 정상시계열 모형에서는 주로 1,2차를 사용한다.
- 자기 상관 함수 p+1시차 이후 절단된 이후 형태를 취한다.
#지수평활법(Exponential Smoothing)
(1) 지수평활법의 개념
-일정기간의 평균을 이용하는 이동평균법과 달리 모든 시계열 자료를 사용하여 평균을 구하며, 시간의 흐름에 따라 최근 시계열에 더 많은 가중치를 부여하여 미래를 예측하는 방법
- 지수평활계수가 과거로 갈수록 지수형태로 감소하는 형태인 것을 확인할 수 있다.
*평활법이란 변화가 심한 시계열 테이러를 평탄하고 변화가 완만하게 값을 변환시키는 것이다. ★
**Fn+1 = n 시점 다음의 예측값, a = 지수평활계수, Zn = n시점의 관측값
(2) 지수평활법의 특징
- 단기간에 발생하는 불규칙변동을 평활하는 방법이다.
- 자료의 수가 많고, 안정된 패턴을 보이는 경우일수록 예측 품질이 높다.
- 지수평활법에서 가중치의 역할을 하는 것은 지수평활계수(a)이며, 불규칙변동이 큰 시계열의 경우 지수평활계수는 작은 값을, 불규칙 변동이 작은 시계열의 경우 큰 값이 지수평활계수를 적용한다.
- 지수평활계수는 예측오차(실제 관측치와 예측치 사이의 잔차제곱합)를 비교하여 예측오차가 가장 작은 값을 선택하는 것이 바람직하다.
- 지수평활법은 불규칙변동의 영향을 제거하는 효과가 있으며 중기 예측 이상에 주로 사용된다.
(단, 단순지수 평활법의 경우 장기추세나 계절 변동이 포함된 시계열 예측에는 적합하지 않다.)
3-2-4-4. 시계열 모형
#AR (자기회귀모형)
- 현 시점의 자료가 p시점 전까지 유한개의 과거 자료로 설명될 수 있다. (p차 자기회귀모형)
- AR 모형인지 판단하기 위해 자기상관함수(ACF)와 부분자기상관함수(PACF)를 이용
- AR(p) 모형은 부분자기상관함수(PACF)가 p+1 시점 이후 절단
#MA (이동평균모형) ★☆
- 현 시점의 자료를 p시점 전까지 유한개 백색잡음들의 선형결합으로 표현
- 항상 정상성을 만족하는 모형으로 정상성 가정이 필요없음
- MA 모형인지 판단하기 위해 자기상관함수(ACF)와 부분자기상관함수(PACF)를 이용
- MA(q) 모형은 자기상관함수(ACF)가 p+1 시점 이후 절단
- 시계열 모델 중 자기 자신의 과거 값을 사용하여 설명하는 모형임
- 백색 잡음의 현재값과 자기 자신의 과거값의 선형 가중합으로 이루어진 정상 확률 모형
- 모형에 사용하는 시계열 자료의 시점에 따라 1차, 2차, …, p차 등을 사용하나 정상시계열 주로 1, 2,차를 사용함
#ARIMA (자기회귀 누적이동평균모형) ★
- ARIMA는 AR모형과 MA모형을 합친 것이다. AR(p) + MA(q)
- 기본적으로 비정상 시계열 모형
- 차분, 변환을 통해 AR모형이나 MA모형, ARMA 모형으로 정상화
- ARIMA(p,d,q), p : AR모형, d : 차분 횟수, q : MA모형 차수, ★
- d=0 : ARMA(p,q), 정상성 만족
- p=0 : IMA(d,q) -(d번차분)→ MA(q)
(출처: www.hcltech.com/blogs/time-series-based-forecasting-using-arima-models)
#분해 시계열 ★☆
- 상시계열에 영향을 주는 일반적인 요인을 시계열에서 분리해 분석하는 방법
- 시계열에 영향을 주는 일반적인 요인을 분리해 분석하는 방법
- 회귀분석적인 방법을 주로 사용
- 이론적 약점이 있음에도 널리 사용됨
#시계열 구성 요소 ★
- 추세 요인 :장기적으로 변해가는 큰 흐름 → 상승, 하락, 이차식, 지수식 형태
- 계절 요인 : 요일, 월, 분기 등 고정된 주기에 따른 변화
- 순환 요인 : 명백한 이유없이 알려지지 않은 주기를 가지고 변화
- 불규칙 요인 :불규칙하게 변동하여 급격한 환경변화, 천재지변 같은 것으로 발생하는 변동
위 세 가지 요인으로 설명할 수 없는 회귀분석의 오차에 해당하는 요인
3-2-5. 다차원 척도법
#다차원척도법 정의
- 객체간 근접성을 시각화하는 통계기법이다.
- 군집분석과 같이 개체들을 대상으로 변수들을 측정한 후에 개체들 사이의 유사성/비유사성을 측정하여 개체들을 2차원 공간상에 점으로 표현하는 분석방법이다. ★
- 개체들 2차원 또는 3차원 공간 상에 점으로 표현하여 개체들 사이의 집단화를 시각적으로 표현하는 분석 방법이다.
#다차원척도법 목적
- 데이터 속에 잠재해 있는 패턴과 구조를 찾아낸다.★
- 그 구조를 소수 차원의 공간에 기하학적으로 표현한다. ★
- 데티어 축소의 목적으로 다차원척도법을 이용한다. 즉, 데이터에 포함되는 정보를 끄집어내기 위해서 다차원척도법을 탐색수단으로써 사용한다.
- 다차원적도법에 의해서 얻은 결과를, 데이터가 만들어진 현상이나 과정에 고유의 구조로서 의미를 부여한다.
#다차원척도법 방법
- 개체들의 거리 계산에는 유클리드 거리행렬을 활용한다.
- 관측대상들의 상대적 거리의 정확도를 높이기 위해 적합 정도를 스트레스 값으로 나타낸다.
- 각 개체들을 공간상에 표현하기 위한 방법은 부적합도 기준으로 STRESS나 S-STRESS를 사용한다.
- 최적모형의 적합은 부적합도를 최소를 하는 반복알고리즘을 이용하며, 이 값이 일정 수준 이하가 될 때 최종적으로 적합된 모형으로 제시한다.
-최적모형의 적합은 부적합도를 최소로 하는 방법으로 일정 수준 이하로 될때까지 반복해서 수행한다.
stress | 적합도 수준 |
0 | 완벽(perfect) |
0.05 이내 ★ | 매우 좋음(excellent) |
0.05 ~ 0.10 | 만족(satisfactory) |
0.10 ~ 0.15 | 보통(acceptable) |
0.15 이상 | 나쁨(poor) |
#다차원척도법 종류
(1) 계량적 MDS (Metric MDS)
- 데이터가 구간척도나 비율척도인 경우 활용한다. ★
(2) 비계량적 MDS (Monmetric MDS)
- 데이터가 순서척도인 경우 활용한다. 개체들간의 거리가 순서로 주어진 경우에는 순서척도를 거리의 속성과 같도록 변환하여 거리를 생성한 후 적용한다. ★
3-2-6. 주성분 분석
#주성분분석의 정의
- 여러 변수들의 변향을 주성분이라는 서로 상관성이 높은 변수들의 선형결합으로 만들어 기존의 상관성이 높은 변수들을 요약, 축소하는 기법이다.
- 첫 번째 주성분으로 전체 변도을 가장 많이 설명할 수 있도록하고, 두 번째 주성분으로는 첫 번째 주성분과는 상관성이 없어서(낮아서) 첫 번째 주성분이 설명하지 못하는 나머지 변동을 정보의 손실 없이 가장 많이 설명할 수 있도록 변수들의 선형 조합을 만든다.
#주성분분석의 목적
- 여러 변수들 간에 내재하는 상관관계, 연관성을 이용해 소수의 주성분으로 차원을 축소함으로써 데이터를 이해하기 쉽고 관리하기 쉽게 해준다.
- 다중공선성이 존재하는 경우, 상관성이 없는 (적은) 주성분으로 변수들을 축소하여 모형 개발에 활용된다.
- 회귀분석이나 의사결정나무 등의 모형 개발 시 입력변수들 간의 상관관계가 높은 다중공선성이 존재할 경우 모형이 잘못 만들어져 문제가 생긴다.
- 연관성이 높은 변수를 주성분분석을 통해 차원을 축소한 후에 군집분석을 수행하면 군집화 결과와 연산 속도를 개선할 수 있다.
- 기계에서 나오는 다수의 센서데이터를 주성분분석으로 차원을 축소하는 후 시계열 분포나 추세의 변화를 분석하면 기계의 고장 징후를 사전에 파악하는데 활용하기도 한다.
#주성분분석 vs. 요인 분석
- 요인분석: 등간척도(혹은 비율척도)로 측정한 두 개 이상의 변수들에 잠재되어 있는 공통인자를 찾아내는 기법이다.
구분 | 주성분분석 | 요인분석 |
공통점 | 모두 데이터를 축소하는데 활용된다. 원래 데이터를 활용해서 몇 개의 새로운 변수들을 만들 수 있다. | |
생성된 변수의 수 | 제 1주성분, 제 2주성분, 제 3주성분 정도로 활용된다. (대개 4개 이상은 넘지 않음) | 몇 개라고 지정 없이 만들 수 있다. |
생성된 변수의 이름 | 제 1주성분, 제 2주성분 등으로 표현된다. | 분석자가 요인의 이름을 명명한다. |
생성된 변수들 간의 관계 | 제1주성분이 가장 중요하고 그 다음 제2주성분이 중요하게 취급된다. | 새 변수들은 기본적으로 대등한 관계를 갖고 '어떤 것이 더 중요하다' 는 없다. 단, 분류/예측에 그 다음 단계로 사용된다면 그때 중요성의 의미가 부여된다. |
분석 방법의 의미 | 목표 변수를 고려하여 목표 변수를 잘 예측/분류하기 위하여 원래 변수들의 선형 결합으로 이루어진 몇 개의 주성분(변수)들을 찾아내게 된다. | 목표변수를 고려하지 않고 그냥 데이터가 주어지면 변수들을 비슷한 성격들로 묶어서 새로운 (잠재) 변수들 만든다. |
#주성분의 선택법
- 주성분분석의 결과에서 누적기여율이 85% 이상이면 주성분의 수로 결정할 수 있다.
- scree plot을 활용하여 고유값이 수평이 유지하기 전 단계로 주성분의 수를 선택한다.
#주성분분석의 실행 예시
(1) Rotation : 실제로 원래의 독립변수에 곱해서 주성분을 만들 계수들을 나타낸다. 예를들어 PC1을 만들기 위해선 population에 −0.098, white에 0.056, ... , poverty에 −0.187 곱한 뒤 모두 더해서 만들어진다. 또한 데이터에 따라선 어떤 주성분이 어떤 변수에 대한 정보를 많이 가지고 있는지 한 눈에 확인할 수 있는 지표가 되기도 한다.
(2) Importance of components : 말그대로 각 주성분의 중요도를 나타낸다. Proportion of Variance가 높을수록 데이터의 많은 부분을 설명하고 그만큼 중요한 주성분이라는 의미가 된다.
3-3. 정형 데이터 마이닝
3-3-1. 데이터 마이닝 개요
#데이터 마이닝의 정의 ★
- 거대한 양의 데이터 속에서 쉽게 드러나지 않는 유용한 정보를 찾아내는 과정
- 대용량 데이터 속에서 굼겨진 지식 또는 새로운 규칙을 추출해 내는 과정 ★
- 기업이 보유한 고객, 거래, 상품데이터 등과 이외의 기타 외부 데이터를 기반으로 감춰진 지식, 새로운 규칙 등을 발견하고 이를 비즈니스 의사결정 등에 활용하는 일련의 작업
#데이터 마이닝의 기능
1) 분류(Classification)
- 새롭게 나타난 현상을 검토하여 기존의 분류, 정의된 집합에 배정하는 것
- 잘 정의된 분류기준과 선분류되어진 검증 집합이 필요
- 반응변수가 범주형인 경우 예측모형의 주목적 ★☆
- 기법 : 의사결정나무, memory-based reasoning, link analysis 등
2) 추정(Estimation)
- '수입, 수준, 신용카드 잔고' 등 연속된 변수의 값을 추정하는 것
- 주어진 데이터를 활용해 알려지지 않은 결과값을 추정한다
- 기법 : 신경망 모형
3) 예측(Prediction)
- 분류와 추정과 유사하지만, 미래의 값이라는 차이가 있다
- 예측 작업의 정확성을 알아보는 방법은 기다리고 지켜보는 것 뿐이다.
- 기법 : 장바구니 분석, memory-based reasoning, 의사결정나무, 신경망 등이 모두 사용될 수 있음
(입력 데이터의 성격에 따라 기술의 사용이 결정된다.)
4) 연관 분석(Association Analysis)
- '같이 팔리는 물건'과 같이 아이템의 연관성을 파악하는 분석
- 기법 : 장바구니 분석
5) 군집(Clustering)
- 모집단을 동질성을 지닌 그룹으로 세분화하는 것
- 이질적인 모집단을 세분화하는 기능이 대표적인 기능 ★☆
- 선분류 되어있는 기준에 의존하지 않는다는 점이 분류와의 차이
- 레코드 자체가 지니고 있는 다른 레코드와의 유사성에 의해 그룹화되고, 이질성에 의해 세분화된다.
- 주로 데이터 마이닝이나 모델링의 준비단계로서 사용됨
6) 기술(Description) ★
- 데이터가 가지고 있는 의미를 단순하게 기술하여, 의미를 파악할 수 있도록 함
- 데이터가 암시하는 바에 대해 설명이 가능해야 하며, 설명에 대한 답을 찾아낼 수 있어야 한다.
- 사람, 상품에 관한 이해를 증가시키기 위해 데이터가 가지고 있는 특징을 나타내고 설명에 대한 답을 제공할 수 있는 데이터 마이닝의 기능
#데이터 마이닝 5단계 ★
1) 목적 정의
- 데이터 마이닝을 통해 무엇을 왜 하는지 명확한 목적을 설정해야 함
- 이해 관계자 모두가 목적에 동의하고 이해할 수 있어야 함
- 1단계부터 전문가가 참여하여 목적에 맞는 데이터 마이닝 모델, 기법, 필요 데이터를 정의하는 것이 바람직
2) 데이터 준비
- 데이터 마이닝 수행에 필요한 데이터 수집
- IT부서와의 사전 협의, 일정 조율 필요
- 데이터 준비 -> 정제, 품질보증 -> 데이터 보강 등의 작업을 거친다.
3) 데이터 가공 ★
- 모델링 목적에 따라 변수를 정의하고, 소프트웨어 적용에 적합하도록 데이터를 가공한다.
4) 데이터 마이닝 기법의 적용
- 데이터 마이닝 기법을 적용하는 단계
- 어떤 기법을 활용하고 어떤 값을 입력하느냐 등에 따라 성과가 달라지므로 데이터분석에 대한 전문성이 필요
5) 검증
- 추출된 정보를 검증하는 단계
- 테스트 마케팅이나 과거 데이터 활용
- 검증 후에는 자동화 방안을 협의하여 업무에 적용하도록 함
- 보고서 작성 및 경영진에게 기대효과(연간 추가수익, 투자대비성과(ROI) 등)를 알림
#과대적합(Overfitting)
- 생성된 모델이 훈련 데이터에 너무 최적화되어 학습하여 테스트데이터의 작은 변화에 민감하게 반응한다.
- 학습 데이터가 모집단의 특성을 충분히 설명하지 못할 때 자주 발생한다.
- 변수가 너무 많아 모형이 복잡할 때 생긴다.
- 과대적합이 발생할 것으로 예상되면 학습을 종료하고 업데이트하는 과정을 반복해 과대적합의 방지할 수 있다.
3-3-2. 분류 분석
3-3-2-1. 로지스틱 회귀모형
#로지스틱 회귀모형 정의
- 독립변수(x)와 종속변수(y) 사이의 관계를 설명하는 모형으로 종속변수가 범주형(y=0 또는 y=1)값을 갖는 경우에 사용하는 방법
#로지스틱 회귀모형 특징
- 반응변수가 범주형인 경우 적용
- 일반화선형모형의 특별한 경우로 로짓(logit) 모형으로도 불림
- 오즈(odds)의 관점에서 해석될 수 있다는 장점을 가짐
- 새로운 설명변수가 주어질 때, 반응변수의 각 범주에 속할 확률이 얼마인지 추정
- 클래스가 알려진 데이터에서 설명변수들을의 관점에서 각 클래스내의 관측치들에 대한 유사성을 찾는데 사용할 수 있다. ★
- 설명변수가 한 개인 경우 회귀계수(β)의 부호에 따라 S자(β>0) 또는 역S자(β<0) 모양을 가짐
(설명 변수가 한 개인 경우 해당 회귀 계수의 부호가 0보다 작을 때 표현되는 그래프의 형태 → 역 S자 그래프★)
- 표준로지스틱 분포의 누적분포함수로 성공의 확률을 추정
#로지스틱 회귀모형이 선호되는 이유
- 독립변수에 대해 어떤 가정도 필요하지 않음
- 독릭변수가 연속형 및 이산형 모두 가능하기때문에 판별분석보다 선호됨
#오즈비 (Odds ratio), 승산비
- 변수가 성공 또는 실패로 구성된다면 Odds는 한 집단이 다른 집단에 비해 성공할 승산 비에 대한 측정량
- Odds(오즈) : 클래스 0에 속할 확률(1-p)이 클래스 1에 속할 확률 p의 비
- 오즈비 = 성공률/실패욜 = Pi/(1-Pi) 단, Pi는 성공률 ★
- exp(beta)의 의미는 나머지 변수가 주어질 때, x1이 한 단위 증가할 때마다 성공(Y=1)의 오즈(odds)가 몇 배 증가하는지 나타내는 값★
- 성공 가능성이 높은 경우는 1보다 크고실패 가능성이 높은 경우는 1보다 작다
#선형회귀분석 vs 로지스틱 회귀분석
구분 | 일반선형 회귀분석 | 로지스틱 회귀분석 |
종속변수 | 연속형 변수 | 이산형 변수 |
모형 탐색 방법 | 1) 최소자승법 ★ | 2) 최대우도법, 가중최소자승법 |
모형 검정 | F검정, t검정 | 3) 카이제곱 검정 ★ |
1) 최소자승법(최소제곱법) ★☆
- 데이터와 추정된 함수가 얼마나 잘 맞는지는 잔차들을 제곱(square)해서 구한다. 이를 잔차제곱합 RSS 혹은 SSE이라고 한다.
(잔차제곱합)
- 최소자승법(최소제곱법)은 해당 식이 제곱형태이니 미분해서 0이 되는 지점을 찾기 위해 잔차제곱합을 최소화하는 계수를 구하는 방법이다.
2) 최대우도법
- 관측값이 가정된 모집단에서 하나의 표본으로 추출된 가능성이 가장 크게 되도록 하는 회귀계수 추정방법
- 표본의 수가 클 경우에 최대우도추정법은 안정적
3) 카이제곱 검정 ★
- 분류 조합에 따라 특정값에 유효한 차이가 발생하는 지를 검정하는 것으로 명목 척도로 측정된 두 속성이 서로 관련되어 있는지 분석하고 싶을 때 사용하는 통계분석법
- 독깁변수와 종속변수가 모두 명목척도일 경우 적합한 통계 기법
#로지스틱 회귀분석 함수 glm()
- glm(모형, data, family="binominal")
3-3-2-2. 신경망 모형
#신경망 모형의 정의 및 특징
(단층신경망(퍼센트론) 다이어그램, pathmind)
- 동물의 뇌신경계를 모방하여 분류 또는 예측을 위해 만들어진 모형
- 가중치 W=(W1, ···, Wd)'는 의사결정 경계의 방향을 나타내는 모수
- 편의 W0는 의사결정 경계의 위치를 결정하는 모수
- 가중치와 편의는 학습을 통해 오차제곱합이 최소가 되는 방향으로 갱신된다.
장점 | 단점 |
- 변수의 수가 많거나, 입ㆍ출력 변수 간에 복잡한 비선형 관계가 존재할 때 유용 - 잡음에 민감하게 반응하지 않음 |
- 결과에 대한 해석이 쉽지 않음 - 은닉층의 수와 은닉노드 수의 결정이 어려움 - 초기값에 따라 전역해가 아닌 지역해로 수렴할 수 있음 - 모형이 복잡하면 훈련과정에 많은 시간 소요 |
#인공신경망
- 인간 뇌를 기반으로 한 추론 모델
- 뉴런은 기본적인 정보처리 단위
- 뉴런은 가중치가 있는 링크들로 연결
- 뉴런은 여러 입력 신호를 받지만 출력 신호는 오직 하나만 생성
- 신경망 모형은 변수의 수가 많거나 입출력 변수간에 복잡한 비선형관계가 존재할 때 유용하다.★
- 잡음에 대해서도 민감하게 반응하지 않는다는 장점을 가지고 있다.★
#뉴런의 특징
- 입력 링크에서 여러 신호를 받아서 새로운 활성화 수준을 계산하고, 출력 링크로 출력 신호를 보낸다.
- 입력 신호는 미가공 데이터 또는 다른 뉴런의 출력이 될 수 있다.
- 출력 신호는 문제의 최종적인 해(solution)가 되거나 다른 뉴런에 입력될 수 있다.
#뉴런의 계산
- 뉴런은 활성화 함수를 사용한다.
(1) 뉴런은 입력 신호의 가중합을 계산하여 임계값과 비교한다.
(2) 가중치 합이 임계값보다 작으면 뉴런의 출력은 -1, 같거나 크면 +1을 출력한다.
#인공신경망의 학습
- 가중치를 반복적으로 조정하여 학습
- 뉴런은 링크로 연결되어 있고, 각 링크에는 수치적인 가중치
- 가중치 조정 방식: 초기화 후, 훈련 데이터를 통해 갱신, 신경망의 구조를 선택 후 활용할 학습 알고리즘 결정한 후 신경망 훈련
#신경망 모형 구축 시 고려사항
1) 입력 변수
- 복잡성에 의하여 입력 자료 선택에 민감
- 범주형 변수: 모든 범주에서 일정 빈도 이상, 빈도 일정
- 범주형 변수의 경우, 모든 범주형 변수가 같은 범위를 갖도록 가변수화 해야 함.
- 연속형 변수: 입력 변수들의 범위가 변수간 큰 차이가 없을 때
- 연속형 변수의 경우, 분포가 평균 중김으로 대칭이야 함
2) 가중치의 초기값과 다중 최소값 문제
- 초기값 선택 중요
- 가중치가 0이면, 신경망 모형은 근사적 선형 모형
- 초기값은 0근처로 랜덤하게 선택, 가중치가 증가할 수록 비선형
3) 학습모드
- 온라인 학습모드: 관측값을 순차적으로 투입하여 가중치 추정값이 매번 바뀜(속도 빠름, 훈련 자료가 비정상성일 때 좋음, 국소 최소값에 벗어나기 쉬움)
- 확률적 학습모드: 관측값을 랜덤하게 투입하여 가중치 추정값이 매번 바뀜
- 배치 학습모드: 전체 훈련자료를 동시에 투임
4) 은닉층과 은닉 노드의 수 ★
- 신경망 적용 시 제일 중요한 부분: 모형 선택(은닉층, 은닉노드의 수 결정)
- 은닉층의 뉴런 수와 개수를 정하는 것은 신경망을 설계하는 사람의 직관과 경험에 의존한다.★
- 많으면 가중치가 많아져 과대 적합 문제 발생
- 은닉층 구 결정: 하나로 선정
- 은닉노드 수 결정: 적절히 큰 값을 놓고 가중치 감소시키면서 적용
- 은닉층/노드가 많으면 가중치가 많아져 과적합 문제 발생 ★
- 은닉층/노드가 적으면 복잡한 의사결정 경계를 만들 수 없음 (입력 데이터를 충분히 표현하지 못하는 경우 발생★)
- 은닉노드의 수는 적절히 큰값으로 두고 가중치를 감소 시키며 적용하는 것이 좋음
- 포화문제: 역전파를 진행함에 따라 각 노드를 연결하는 가중치의 절대값이 커져 조정이 더 이상 이루어지지 않아 과소 적합이 발생하는 문제 ★
5) 과대 적합 문제 ★
- 학습 데이터는 실제 데이터의 일부분이므로 너무 과하게 학습하게 되면 학습데이터는 정확하게 맞지만 실제 데이터에 대해서 오차가 증가하는 문제 ★
- 알고리즘 조기 종료와 가중치 감소 기법으로 해결
- 조기 종료: 검증 오차가 증가하기 시작하면 반복 중지
- 가중치 감소라는 벌점화 기법 활용
6) 기울기 소실 문제(Gradient Vanishing) ★ ☆
- 다층 신경망모형에서 은닉층의 개수를 너무 많이 설정하게 되면 역전파 과정에서 앞쪽 은닉층의 가중치 조정이 이뤄지지 않아 신경망의 학습이 제대로 이뤄지지 않는 현상
#역전파 알고리즘
- 신경망 모형의 목적함 수를 최적화하기 위해 사용된다. ★
- 연결강도를 갱신하기 위해 예측된 결과와 실제값의 차이인 에러(error)를 통해 가중치를 조정하는 방법★
#뉴런의 활성화 함수
Soft Functon | Sigmoid Function |
logistic regression 에서 multi-classification 문제에서 사용 | logistic regression 에서 binary-classification 문제 에서 사용 |
확률의 총 합 = 1 | 확률의 총 합은 1이 아님 |
출력층에서 사용됨(확률 표현) | Activation 함수로 사용될 수 있음(실제 사용하지 않음) |
큰 출력 값은 그 class에 해당할 가능성이 높다는 것을 뜻하며 실제 확률을 나타냄 | 큰 출력 값은 그 class에 해당할 가능성이 높지만 실제 확률 값을 나타내는 것은 아님 |
(1) 시그모이드(sigmoid) 함수
- 로지스틱 회귀분석과 유사, 0~1의 확률값 ★
- 입력층이 직접 출력층에 연결되는 단층신경망에서 활성함수를 시그모이드로 사용하면 로지스틱 회귀 모형과 작동 원리가 유사해진다.
- binary-classification에서 사용
(2) softmax 함수
- 표준화지수 함수, 출력값이 여러개 주어지고 목표치가 다범주인 경우 각 범주에 속할 사후확률을 제공★☆
- 계산 된 확률은 0에서 1 사이, 모든 확률의 합은 1과 같음
- multi-classificarion에서 사용
(3) Relu 함수 : 입력값이 0이하는 0, 0이상은 x값을 가지는 함수, 딥러닝에 많이 활용
#neuralnet함수의 일반화 가중치(generalized weight)
- 일반화 가중치(generalized weight)는 각 공변량의 영향을 표현하기 때문에 회귀모델에서 1번째 회귀 변수의 유사한 해석을 가진다.
- 로지스틱 회귀 모형에서의 회귀 계수와 유사하게 해석된다. ★☆
3-3-2-3. 의사결정나무 모형
#의사결정나무 정의와 특징
- 분류함수를 의사결정 규칙으로 이뤄진 나무 모양으로 그리는 방법
- 의사결정나무는 분류(classification)와 회귀(regression) 모두 가능하다.
- 복잡하지 않고 빠르게 만들 수 있다.
- 분류 정확도가 좋은 편이다.
- 다중공선성 영향을 안 받는다.
- 대표적 적용 사례: 대출신용평가, 환자 증상 유추, 채무 불이행 가능성 예측★
- 과적합의 문제를 해결하기 위해 정치규칙과 가지치기 방법을 이용해 트리를 조정하는 방법을 사용한다.★
- 불순도 측도인 엔트로피 개념은 정보이론의 개념을 기반으로 하여, 그 의미는 임의의 사건이 모여있는 집합의 순수성(purity) 또는 단일성(homogeneity) 관점의 특성을 정량화해서 표현한 것이다.★
장점 | 단점 |
구조가 단순하여 해석이 용이하다. | 분류기준값의 경계선 부근의 자료값에 대해서는 오차가 크다. |
선형성, 정규성, 등분산성 등의 수학적 가정이 불필요한 *비모수적 모형 | 로지스틱회귀와 같이 각 예측변수의 효과를 파악하기 어렵다. |
수치형/범주형 변수를 모두 사용할 수 있다는 점 | 새로운 자료에 대한 예측이 불안정할 수 있다. |
*비모수적 : 모수에 대한 가정을 전제로 하지 않고 모집단의 형태에 관계없이 주어진 데이터에서 직접 확률을 계산
#의사결정나무 모형의 학습 방법
- 이익도표 또는 검정용 자료에 의한 교차타당성 등을 이용해 의사결정나무를 평가한다.
- 분리변수의 P차원 공간에 대한 현재 분할은 이전 분할에 영향을 받는다.
- 각 마디에서 최적 분리 규칙은 분리변수의 선택과 분리 기준에 의해 결정된다.
- 가지치기는 분류 오류를 크게 할 위험이 높으나 부적절한 규칙을 가지고 있는 가지를 제거하는 작업니다.
#가지치기(Pruning)
- 의사결정나무 모형에서 과대적합되어 현실 문제에 적응할 수 있는 적절한 규칙이 나오지 않는 현상을 방지하기 위해 사용되는 방법
#정지규칙 ★
- 의사결정나무에서 더 이상 분기가 되지 않고 현재의 마디가 끝마디가 되도록 하는 규칙
#의사결정나무의 순도(homogeneity)와 불순도(불확실성, impurity)
- 각 영역의 순도가 증가, 불순도가 최대한 감소하는 방향을 학습을 진행한다.
- 순도가 증가/불확실성이 감소하는 걸 두고 정보이론에서는 정보획득(information gain)이라고 합니다.
- 불순도 측도 : 지니지수, 엔트로피 지수, 카이제곱통계량 (오분류오차은 잘 안 쓰임)
#의사결정나무 알고리즘 분류 및 기준변수의 선택법 ★
(1) 이산형 목표변수 (분류나무) | (2) 연속형 목표변수 (회귀나무) | |
(3) CHAID | 카이제곱 통계량 | ANOVA F 통계량 |
(4) CART | 지니계수 | 분산 감소량 |
(5) C5.0 | 엔트로피지수 |
(1) 목표변수가 이산형 목표변수인 경우 분류 기준
- 각 범주에 속하는 빈도에 기초하여 분리
- 오차율 분할 (잘못 분류된 관찰값의 수 / 전체 관찰값의 수)
- 카이제곱 통계량: 각 셀에 대한 (기대도수-실제도수)^2/기대도수 의 합
- 지니계수: 불평등 지수를 나타낼 때 사용하는 계수로 0이 가장 평등하고 1로 갈수록 불평등
- 엔트로피지수: 엔트로피 지수가 가장 작은 예측 변수와 이떄의 최적분리에 의해 자식마디를 형성함
(2) 목표변수가 연속형 목표변수인 경우 분류 기준 ★
- 평균과 표준편차에 기초하여 분리
- 잔차제곱합(SSR) 개선되는 방향으로 분할 (불필요한 지도학습,bias 낮고, variance 높음)
- F통계량: 모델 또는 모델 성분의 유의성을 검정하는 분산분석(ANOVA) 방식에 대한 검정 통계량
- 분산감소량: 예측오차를 최소화하는 것과 동일한 기준으로 분산의 감소량을 최대화하는 기준의 최적분리에 의해서 자식마디가형성.
(3) CHAID (Chi-square automatic interaction detection)
- 가지치기를 하지 않고 적당한 크기에서 나무모형의 성장을 중지하며 입력 변수가 반드시 범주형 변수이어야 한다.
(4) CART (Classification And Regression Tree)
- 가장 많이 활용되는 의사결정나무 알고리즘으로 불순도의 측력 변수가 범주형일 경우 지니지수를, 연속형일 경우 분산을 이용한 이진 분리를 사용한다.
(5) C5.0
- CART와는 다르게 각 마디에서 다지분리가 가능하며 범주형 입력변수에 대해서는 범주의 수만큼 분리가 일어난다.
#이산형목표변수와 연속형 목표변수★
- 목표변수가 범주형인 경우 분류나무, 수치형인 경우 회귀나무를 사용한다.★
- 목표변수가 이산형인 경우 분류나무, 연속형인 경우 회귀나무로 구분된다.
- 이산형 목표변수 : p 값은 작을 수록, 지니지수와 엔트로피 지수는 클수록 노드 내의 이질성이 크고 순수도가 낮다고 할 수 있다.
- 연속형 목표변수 : p값은 작아지고 분산의 감소량은 커질 수록 이질성이 높다.
#지니 지수 ★
- 범주가 두 개일 때 한쪽 범주에 속한 비율(p)이 0.5(두 범주가 각각 반반씩 섞여 있는 경우)일 때 불순도가 최대
예시: 행렬(A, B, C, A, C, C, A, D) 있을 경우 지니계수 구하는법
지니계수=1-(3/8)^2-(1/8)^2-(3/8)^2-(1/8)^2 = 0.69
(순서대로 8개 중 A는 3개, B는 1개, C는 3개, D는 1개)
#엔트로피 지수(Entropy measure)
- 엔트로피 지수가 가장 작은 예측 변수와 이떄의 최적분리에 의해 자식마디를 형성함
3-3-2-4. 앙상블 모형
#앙상블 모형의 정의
- 여러 개의 분류모형에 의한 결과를 종합하여 분류의 정확도를 높이는 방법
#앙상블 모형의 특징
- 분리 분석의 과적합을 줄이기 위해 개발
- 적절한 표본추출법으로 여러 개의 훈련용 데이터를 만들고, 훈련용 데이터마다 하나의 분류기를 만들어 앙상블하는 방법
- 여러 모형의 결과를 결합함으로써 단일 모형으로 분석했을 때보다 신뢰성 높은 예측값을 얻을 수 있다.
- 각 모형의 상호 연관성이 높을수록 정확도가 감소한다.
- 모형의 투명성이 떨어져 원인 분석에는 적합하지 않다.
- 이상값에 대한 대응력이 높아진다.
- 전체적인 예측값의 분산을 감소시켜 정확도를 높을 수 있다.
- 앙상블모형은 훈련을 한 뒤 예측을 하는데 사용하므로 교사학습법(Supervised learning)이다. ★
- 앙상블은 배깅, 부스팅, 랜덤포레스트를 포함된다.★
- 부스팅은 예측력이 약한 모형들을 결합하여 강한 예측 모형을 만드는 방법이다.★
- 랜덤포레스트는 의사결정나무모형의 특징인 분산이 크다는 점을 고려하여 배깅보다 더 많은 무작위성을 추가한 방법으로 약한 학습기들을 생성하고 이를 선형 결험해 최종 학습기를 만드는 방법이다. ★
#학습의 불안정성
- 작은 병화에 의해 예측 모형이 크게 변하는 경우, 그 학습 방법은 불안정
- 가장 안정적인 방법: K-최근접이웃, 선형회귀 모형
- 가장 불안정한 방법: 의사결정 나무
출처 : https://github.com/hw79chopin/Project_Kaggle_Card_fraud_detection
#배깅(bagging) ★
- 데이터에서 여러 개의 부트스트랩 데이터를 생성해서 각 부트스트랩 데이터 분석 모델에 결합한 후에 최종 예측 모델을 산출하는 것 ★
- 배깅은 데이터 간의 거리를 측정하여 군집화한다. ★
- 원 데이터 집합으로부터 크기가 같은 표본을 여러 단순 임의 복원 추출하여 각 표본에 대해 분류기를 생성한 후 그 결과를 앙상블하는 방법 ★
- 배깅은 트랜잭션 사이에 빈번하게 발행하는 규칙을 찾아낸다.★
- 배깅은 고차원의 데이터를 이해하기 쉬운 저차원의 뉴런으로 정렬하여 지도의 형태로 형상화한다. ★
- 붓스트랩(bootstrap): 주어진 자료에서 동일한 크기의 표보을 랜덤복원추출로 뽑은 자료
- 보팅(Voting): 여러 개의 모형으로부터 산충된 결과를 다수결에 의하여 최종 결과를 선정하는 과정
- 가지치기를 하지 않고 최대한 성장한 의사결정 나무들 사용
- 평균예측 모형을 못 구함 (훈련 자료의 모집단의 분포 모름)
- 훈련자료를 모집단으로 생각하고 평균예측모형을 구한 것과 같음 (분산을 줄이고 예측력 향상)
- 반복추출 방법으로 동일한 데이터가 여러 번 추출될 수도 있고, 어떤 데이터는 한 번도 추출되지 않을 수 있다.
#부스팅(boosting)
(1) 부스팅(boosting)의 개념 및 특징
- 예측력이 약한 모형들을 결함하여 강한 예측 모형을 만드는 방법
- 훈련오차를 빠르고 쉽게 줄임
- 성능이 배깅보다 뛰어난 경우가 많음
- 배깅과 유사하나 붓스트랩 표본을 구성하는 재표본 과정에서 각 자료에 동일한 확률을 부여하지 않고, 분류가 잘못된 데이터에 더 큰 가중을 두어 표본을 추출
- 붓스트랩 표본을 추출해 분류기 생성 → 각 데이터의 확률 조정 → 다음 붓스트랩 표본 추출 → 분류기 생성 → ···
#부스팅 계열 알고리즘
(1) GBM(Gradient Boosting Algorithm)
- 예측모형의 앙상블 방법론 중 부스팅 계열에 속하는 알고리즘.
- 회귀분석 또는 분류 분석을 수행할 수 있는 예측모형
- Gradient Boosting Algorithm을 구현한 패키지: LightGBM, CatBoost, XGBoost 등
(2) LGBM(Light GBM, Light Gradient Boosting) ★
- LGBM은 GBM의 한 종류
- 예측모형의 앙상블 방법론 중 부스팅 계열에 속하는 알고리즘
- 일반적인 GBM 패키지와 다르게 LGBM은 leaf wise(리프 중심 트리 분할)방식을 사용한다.
- LGBM은 균형적으로 트리를 분할하지 않는 대신 최대 손실값(max delta loss)을 갖는 트리 노드를 계속 분할
(3) XGBoost vs. LGBM
XGBoost | LGBM |
- XGboost는 학습 시간이 오래 걸린다. - Grid search를 통해 최적의 파라미터를 탐색한다면 학습 시간의 효율을 고려해야 한다. |
- LGBM은 XGBoost보다 학습 시간이 덜 걸리며 메모리 사용도 작다는 장점이 있다. - LGBM은 데이터셋의 과적합을 조심해야 하는데, 1만개 이하의 데이터셋은 과적합 위험이 있다. |
xgboost와 lgbm의 차이
#랜덤포레스트(random forest) ★
- 의사결정나무을 앙상블하는 방법 중 전체 변수 집합에서 부분 변수 집합을 선택하여 각각의 데이터 집합에 대해 모형을 생성한 후 결합하는 방식 ★
- 분산이 큰 의사결정나무를 고려하여 배깅과 부스팅보다 더 많은 무작위성을 주어 약한 학습기들을 생성 후 이를 선형 결합하여 최종 학습기를 만드는 방법
- 배깅에 랜덤 과정을 추가한 방법
- 붓스트랩 샘플을 추출하고 트리를 만들어가는 과정은 배깅과 유사
- 예측변수들을 임의로 추출하고, 추출된 변수 내에서 최적의 분할을 만들어나감
(배깅 : 각 노드마다 모든 예측변수 안에서 최적의 분할을 선택)
- 변수 제거 없이 실행되어 정확도가 좋음
- 해석이 어렵지만 예측력이 높음 (입력 변수가 많을구록 배깅, 부스팅보다 좋음)
- 별도의 검증용 데이터를 사용하지 않더라도, 붓스트랩 샘플과정에서 제외된 자료를 통해 검증을 실시할 수 있다.
- Category 변수의 value 종류가 32개까지됨
- randomForest 패키지, 랜덤한 forest에 많은 트리 생성
- 활용 예시: 고객의 인구통계학적 특성, 보험가입 채널, 상품 종류 등의 정보를 사용하여 자사 고객의 보험 갱신 여부를 예측★☆
3-3-2-5. 분류 모형 평가
#분류 모형 평가
- 구축된 모형이 임의의 모형보다 더 우수한 분류 성과를 보이는지, 고려된 모형들 중 어느 것이 가장 우수한지 등을 비교 분석하는 과정
#모형 평가 기준
(1) 일반화의 가능성
- 데이터를 확장하여 적용할 수 있는지에 대한 평가 기준
- 모집단 내의 다른 데이터에 적용해도 안정적인 결과를 제공하는 것을 의미
(2) 효울성
- 얼마나 효과적으로 구축되었는지 평가
- 적은 입력변수를 필요로 할수록 효율적
(3)예측과 분류의 정확성
- 모형의 정확성 측면에서 평가
#모형 평가 절차 1. 훈련용 자료와 검증용 자료 추출
- 훈련용 자료는 모형 구축용도, 검증용 자료는 모형 검증 용도
- 주어진 데이터에서만 성과를 보이는 과적합화를 해결하기 위한 단계
- 잘못된 가설을 가정하게 되는 2종 오류를 방지 ★
(1) 홀드아웃(hold-out) ★
- hold-out : 밖으로 끄집어 내어 별도로 가지고 있는 것
- 랜덤 추출 방식
- 주어진 원천 데이터를 랜덤하게 두 분류로 분리하여 교차 검정을 실시하는 방법으로 하나의 모형 학습 및 구축을 위한 훈련용 자료로 하나는 성과평가를 위한 검증용 자료로 사용하는 방법 ★★ ☆
- 훈련용, 검증용 데이터 비율을 7:3으로 함
(2) 교차검증(cross-validation)
- 데이터를 k개로 나누어 k번 반복측정하고, 그 결과를 평균 내어 최종 평가로 사용
- 일반적으로 10-fold 교차 검증이 사용됨
(3) 붓스트랩(bootstrap) ★ ☆
- 교차검증과 유사하게 평가를 반복하지만, 훈련용 자료를 반복 재선정한다는 점에서 차이가 있음
- 관측치를 한번 이상 훈련용 자료로 사용하는 복원 추출법에 기반 ★
- 전체 데이터의 양이 크지 않은 경우의 모형 평가에 가장 적합
- 일반적으로 훈련용 자료의 선정을 d번 반복할 때 하나의 관측치가 선정되지 않을 확률이 (1-1/d)e이다.
- d가 충분히 크다고 가정할 때 훈련용 집합으로 선정되지 않아 검증용 자료로 사용되는 관측치의 비율은 1/e = 0.3678..이므로 36.8%이다.
#모형 평가 절차 2. 모형 학습 및 성능 평가
- 훈련용 자료로 모형을 학습한 뒤, 검증용 자료를 사용해 모형의 분류 및 예측 정확도를 평가
- 분류 모형 평가에 사용되는 방법
- 오분류표, ROC 그래프 등
#오분류표(confusion matrix) ★☆
Predicted | |||
Positive | Negative | ||
Actual | Positive | True Positive | False Negative |
Nagative | False Positive | True Negative |
- 정분류율(Accuracy) : 전체 관측치 중 실제값과 예측치가 일치한 정도
(TP+TN)/TP+FN+FP+TN = (TP+TN)/전체
- 오분류율(Error rate) : 모형이 제대로 예측하지 못한 관측치
(FP+FN)/(P+N) = 1-정분류율(Accuracy)
- 재현율(Recall), 민감도(Sensitivity)★ : 실제 True인 관측치 중 예측치가 적중한 정도★
TP/(TP+FN)
- 특이도(Specificity) : 실제값이 False인 관측치 중 예측치가 적중한 정도★
TN/(FP+TN)
- 정확도(정밀도, Precison) : True로 예측한 관측치 중 실제 값이 True인 정도
TP/(TP+FP)
- F1지표 : 재현율과 정확도의 조화평균 ★
(재현율과 정확도가 반비례할 높은 가능성을 보정하기 위한 지표)
# F점수 ★
- 정확도와 재현율의 가중조화평균(weight harmonic average)을 F점수(F-score)라고 한다.
- 정확도에 주어지는 가중치를 베타(beta)라고 한다.
- 베타가 1인 경우를 특별히 F1점수라고 한다. ★
- 베타가 2인 경우, 재현율에 2배만큼의 가중치를 부여하여 조화평균을 하는것이다.
#범주불균형의 문제 ★
- 분류 모형을 구성하는 경우 예측 실패의 비용이 큰 분류 분석의 대상에 대한 관측치가 현저히 부족하여 모형이 제대로 학습되지 않는 문제
#ROC 그래프 ★
- 민감도와 특이도를 사용해서 모델의 성능을 평가
- X축에는 FP Ratio(1-특이도), Y축에는 민감도를 나타냄
- ROC 그래프의 밑부분 면적(AUC)이 넓을 수록 좋은 모형으로 평가
- ROC 그래프에서 이상적으로 완벽히 분류한 모형의 x축과 y축 값 = (0,1) ★☆
(ML Wiki ROC Analysis, ML Wiki)
#이익도표★
- 이익(gain) : 목표 번주에 속하는 개체들이 각 등급을 얼마나 분포하고 있는지를 나타내는 값
- 이익도표 : 분류분석 모형을 사용해 분류된 관측치가 각 등급별로 얼마나 포함되는지를 나타내는 도표
- 이익도표(Lift)를 작성함에 있어 평가도구 중 %Captured Reponse를 표현한 계산식 : 해당 집단에서 목표변수의 특정범주 빈도 / 전체 목표변수의 특정범주 빈도 x 100
- %Captured Response란 전체에서 해당집단을 분리해내는 비율을 의미하며 Score에 따라 고객을 10개의 집단으로 구분하고 집단이 누적됨에 따라 전체 재구매 고객 대비 Percentile별 누적 구매 고객의 비율을 나타낸다. 특정 범주의 고객에게 Action을 수행할 경우, 실제 반응이 나타난 고객 중 몇 %의 고객을 확보할 수 있는지에 대한 수치로 해석할 수 있다.
#향상도 곡선(lift curve) ★
- 랜덤모델과 비교하여 해당 모델의 성과가 얼마나 향상되었을지를 각등급별로 파악하는 그래프
- 상위등급에서 매우 크고 하위 등급으로 갈수록 감소하게 되면 일반적으로 모형의 예측력이 적절하다고 판단하게 된다.
(Lift Curve of SM701 airfoil showing the relationship between angle of attack and lift coefficient, Wikipedia)
3-3-3. 군집 분석
#군집분석
- 비지도학습 기법 중 하나로 사전 정보 없이 자료를 유사한 대상끼리 묶는 방법
- 군집 결과에 대한 안정성을 검토하는 방법은 교차타당성을 이용하는 방법이 있다. 데이터를 두 집단으로 나누어 각 집단에서 군집분석을 한 후 합쳐서 군집분석한 결과와 비교하여 비슷하면 결과에 대한 안정성이 있다고 할 수 있다.
- 군집의 분리가 논리적인가를 살펴보기 위해서는 군집 간 변동의 크기 차이를 검토한다.
3-3-2-1. 계층적 군집
#계층적 군집 정의 및 특징
- 가장 유사한 개체를 묶어 나가는 과정을 반복하여 원하는 개수의 군집을 형성하는 방법
(n개의 군집으로 시작해 점차 군집의 개수를 줄어나가는 방법 ★)
- 군집을 형성하는 매 단계에서 지역적 최적화를 수행해 나가는 방법 (전역적인 최적해라고 볼 수 없음)
- 군집 개수를 미리 지정하지 않아도 되는 장점으로 탐색적 분석에 사용하는 모형
- 단일, 완전, 평균, 중심결합기준, 와드
- 계층적 군집의 결과는 덴드로그램*의 형태로 표현
(* 덴드로그램을 통해 항목간의 거리, 군집간의 거리를 알 수 있고, 항목간 유사정도를 파악하여 견고성을 해석할 수 있다.)
#계층적 군집 방법
1) 병합적(응집형) 방법: Bottom-up
- 작은 군집에서 출발하여 거리가 가까운 순으로 병합해 나가는 방법
(하나의 군집이 남을 때 까지 순차적으로 군집들을 병합)
- R에서 agnes(), mclust() 함수를 이용한다.
2) 분할적(분리형) 방법: Top-down
- 큰 군집에서 출발하여 군집을 분리해 나가는 방법
(하나의 군집에서 n개 군집으로 분리)
- R에서 diana(), mona() 함수를 이용한다.
#dist함수
- 거리 계산을 수행할 때 사용하는 함수
- 지원 하는 함수 : "euclidean" , "maximum" , "manhattan" , "canberra" , "binary", "minkowski" .
#군집 간 거리 측정 방법 (연결법)
1) 최단연결법(단일연결법)
- 각 군집에서 관측값을 뽑았을 때 나타날 수 있는 거리의 최소값을 군집간 거리로 한다.
- 사슬 모양으로 생길 수 있음
- 고립된 군집을 찾는데 중점을 둔 방법
2) 최장연결법(완전연결법)
- 각 군집에서 관측값을 뽑았을 때 나타날 수 있는 거리의 최대값을 군집간 거리로 한다.
- 군집들의 내부 응집성에 중점을 둔 방법
3) 중심연결법
- 두 군집의 중심간 거리를 군집간 거리로 한다.
- 군집이 결합될 때, 새로운 군집의 평균은 가중평균을 통해 구해진다.
4) 평균연결법
- 모든 항목에 대한 거리 평균을 구하면서 군집화를 수행한다.
- 계산량이 불필요하게 많아질 수 있다.
4) 와드연결법(ward linkage)
- 군집내의 오차제곱합에 기초하여 군집을 수행한다.
- 군집이 병합되면 오차제곱합은 증가하는데, 증가량이 가장 작아지도록 군집을 형성한다.
- 계층적 군집분석 수행 시 두 군집을 병합하는 방법 가운데 병합된 군집의 오차제곱합이 병합 이전 군집의 오차제곱합에 비해 증가한 정도가 작아지는 방향으로 군집을 형성하는 방법 ★
- 크기가 비슷한 군집끼리 병합하게 되는 경향이 있다.
#유클리드(유클리디안, Euclidean) 거리 ★
- 데이터간 유사성 측정을 위해 사용, 통계적 개념이 내포X, 변수들의 산포정도 감안X
- 두 점을 잇는 가장 짧은 직선 거리★
- 공통으로 점수를 메긴 항목의 거리를 통해 판단하는 측도이다.★
예시)
#맨하탄(Manhattan) 거리
- 유클리드와 함께 가장 많이 쓰는 거리, 건물간 최단거리 계산 ★
예시)
#마할라노비스 거리
- 통계적 개념이 포함된 거리, 변수들의 산포를 고려하여 표준화한 거리 ★
- 변수의 표준화와 상관성을 동시에 고려한 통계적 거리 ★
- 두 벡터 사이의 거리를 산포를 의미하는 표본 공분산으로 나눠주어야 하며 그룹에 대한 사전 지식 없이는 표본 공분산을 계산할 수 없으므로 사용하기 어렵다 ★
#표준화 (Statistical) 거리
- 해당 변수의 표준편차로 척도 변환 후 유클리디안 거리를 계산★
- 표준화를 하게 되면 척도의 차이, 분산의 차이로 인해 왜곡을 피할 수 있다. ★
#자카드
#그 밖의 거리
- 민코우스키(Minkowski) 거리
- 체비셰프 거리 (체스보드 거리, 최고 거리)
- 캔버라 거리
#군집 간 거리 (연속형, 범주형 변수)
1) 연속형 변수: 유클리디안 거리, 표준화 거리, 마할노비스거리, 체비셰프 거리, 맨하탄 거리, 캔버라 거리, 민코우스키 거리
2) 범주형 변수: 카드 거리, 자카드 계수, 코사인 거리, 코사인 유사도
#군집 간 거리 (수학적, 통계적 거리)
1) 수학적 거리: 유클리드 거리, 맨하튼 거리, 민코우스키 거리
2) 통계적 거리: 표준화 거리, 마할라노비스 거리
3-3-3-2. 비계층적 군집 (K-means)
#비계층적 군집방법의 정의 및 특징
- n개의 개체를 g개의 군집으로 나눌 수 있는 모든 방법을 점검해 최적화한 군집을 형성
- 자료의 크기에 제약이 없음
#비계층적 군집방법의 장점과 단점
비계층적 군집화의 장점 | 비계층적 군집화의 단점 |
- 주어진 데이터의 내부구조에 대한 사전정보 없이 의미있는 자료구조를 찾을 수 있다. - 다양한 형태의 데이터에 적용이 가능하다. - 분석방법 적용이 용이하다. |
- 가중치와 거리정의가 어렵다. - 초기 군집수를 결정하기 어렵다. - 사전에 주어진 목적이 없으므로 결과 해석이 어렵다. |
#K-평균 군집(K-means Clustering) 정의
- 원하는 수 만큼 초기값을 지정하고, 각 개체를 가까운 초기값에 할당하여 군집을 형성 한 후, 각 군집의 평균을 재계산하여 초기값을 갱신한 뒤 갱신된 값에 대해 위의 할당 과정을 반복하여 k개의 최종군집을 형성하는 방법
#K-평균 군집(K-means Clustering) 특징