2024. 2. 23. 20:53ㆍAI빅데이터/Study
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 * 표준편차)의 범위를 벗어나는 값
Q1- (-1.5 * IQR(Q3-Q1) < data < Q3+ 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, 구간에서의 확률값 → 확률밀도함수 ★
균등분포
이산균등분포 - 확률분포함수가 정의된 모든 값에서 일정한 분포를 가진다 ex)주사위던지기
연속균등분포 - 특정한 범위에서 균등한 확률을 가짐
지수분포
사건이 서로 독립적일때 다음 사건이 일어날 때까지 대기시간은 지수분포를 따름
일정 시간동안 발생하는 사건의 횟수는 포아송 분포를 따름
ex) 전자제품의 5년간 고장횟수가 평균 1회일때, 1년안에 고장날 확률
사용법 : pexp(q=1, rate=0.2, lower.tail=TRUE)
t-분포 (평균)
표본을 많이 뽑지 못하는 경우에 대한 대응책으로 예측 범위가 넓은 분포를 사용하는 분포
표본의 수가 30미만일때 사용하며, 신뢰구간과 가설검정에서 사용한다.
그래프의 x축 좌표를 t값이라 부르며 t분포표를 사용해 검정에 사용한다.
카이제곱 분포
분산의 특징을 확률분포로 만든것, 표준 정규분포를 제곱한다는 뜻임
신뢰구간과 가설검정에서 사용하고 그래프의 x축 좌표를 카이제곱값이라 부름
f-분포
카이제곱분포는 한 집단의 분산, 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
- 회귀모형 출력:
- lm(formula = y ~ u + v + w, data = dfrm1)은 y를 종속 변수로 하고 u, v, w를 독립 변수로 하는 회귀 모형을 생성한 것을 의미합니다.
- 잔차(Residuals):
- 잔차의 최소값(Min), 1사분위수(1Q), 중앙값(Median), 3사분위수(3Q), 최대값(Max)이 제공됩니다.
- 이는 모델이 예측한 값과 실제 값 간의 차이를 나타내며, 잔차가 크지 않다면 모델의 예측력이 괜찮다고 해석할 수 있습니다.
- 회귀계수(Coefficients):
- 각 독립 변수(u, v, w)와 상수항(Intercept)에 대한 **비표준화 회귀계수(Estimate)**와 표준 오차(Std. Error), t 통계량(t value), **p-value(Pr(>|t|))**가 제공됩니다.
- p-value가 모두 0.05 미만이며 ***로 표시되어 있으므로, 모든 회귀계수가 통계적으로 유의미하다고 판단됩니다. 즉, u, v, w 변수는 종속 변수 y에 유의미한 영향을 미친다고 볼 수 있습니다.
- 회귀계수를 해석하면 다음과 같습니다:
- (Intercept): 상수항으로, u, v, w 값이 0일 때 y의 예상값은 3.041653입니다.
- u: u가 1 단위 증가할 때 y는 약 0.123173만큼 증가합니다.
- v: v가 1 단위 증가할 때 y는 약 1.989017만큼 증가합니다.
- w: w가 1 단위 증가할 때 y는 약 -2.997816만큼 감소합니다.
- 회귀계수 유의성 검정:
- 각 회귀계수의 t 통계량과 p-value를 통해 유의미성을 검정합니다.
- 모든 p-value가 0.05 미만이므로, 귀무 가설을 기각하고 모든 회귀계수가 유의미하다는 결론을 내릴 수 있습니다.
- Residual standard error (잔차 표준 오차):
- 잔차 표준 오차가 0.1303으로, 모델이 예측한 값과 실제 값의 차이를 나타내는 지표입니다. 이 값이 작을수록 모델의 예측 정확도가 높다고 볼 수 있습니다.
- Multiple R-squared:
- 값이 0.799로, 모델이 종속 변수 y의 변동성 중 약 79.9%를 설명하고 있음을 의미합니다. 높은 설명력을 보여주지만, 추가적인 조정이 필요할 수 있습니다.
- Adjusted R-squared:
- 값이 0.855로, 설명 변수의 개수를 고려한 R²입니다. Adjusted R-squared가 Multiple R-squared보다 높으므로, 모델이 과적합되지 않고 유의미하게 변동성을 설명하고 있음을 나타냅니다.
- F 통계량(F-statistic):
- F 통계량이 1.038e+05이고, p-value가 매우 작아(0.00000000000001564) 통계적으로 유의미합니다.
- 이는 전체 회귀 모형이 통계적으로 유의미하며, 적합성이 좋다는 것을 의미합니다.
결론: 이 회귀 모델은 종속 변수 y에 대해 u, v, w가 유의미한 영향을 미치는 것을 확인할 수 있습니다. 또한, R²와 Adjusted R² 값이 높아 이 모델이 y의 변동성을 상당히 잘 설명하고 있으며, 모델이 통계적으로 유의미하다는 것을 나타냅니다.
(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 거리를 활용
- 연속형 변수 또는 서열척도여야 함
- Stress가 0이면 잘 적합된 것.
- 여러 대상 간의 거리가 주어져 있을 때, 대상들을 동일한 상대적 거리를 가진 실수 공간의 점들로 배치시키는 방법
#주성분분석(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-2-6. 정형 데이터 마이닝
- 목표변수가 이산형이면 분류나무(classification tree), 연속형이면 회귀나무(regression tree)
분류나무인 경우 (카이제곱 통계의 p값은 작을수록, 지니지수의 값은 클수록 이질적(불확실성)) - 가지분할 수행할 경우 분류(기준)변수와 분류기준값의 선택 방법
- 카이제곱 통계량(Chi-Square statistic)의 p-값
값이 작을수록 자식 노드내의 불확실성(이질성)이 큼 - 지니 지수(Gini index), 엔트로피 지수(entropy index) 등
- 값이 클수록 자식노드 내의 이질성이 큼 -> 값들이 작아지는 방향으로 가지분할 수행
- 지니 지수의 값이 클수록 이질적, 순수도(purity) 낮음
- 불확실성 측정지표
- 지니지수와 엔트로피 지수 값의 범위는 다르나 해석은 유사
- 엔트로피 지수가 가장 작은 변수와 이 때의 최적분리에 의해 분할을 수행한다.
- 카이제곱 통계량(Chi-Square statistic)의 p-값
- 회귀나무인 경우(F통계량의 P-값이 클수록 이질적(불확실성), 분산 감소량 값이 최대화되는 방향으로 가지분할))
분류변수와 분류기준값의 선택 방법- F-통계량의 p-값
- 일원배치법에서 검정통계량
- 값이 클수록 오차의 변동에 의해 처리(treatment)의 변동이 큼 -> 자식 노드(처리들) 간 이질적
- 값이 커지는 방향으로 (p-값이 작아지는) 방향으로 가지분할 수행
- 분산의 감소량 (variance reduction) 등
- 값이 최대화 되는 방향으로 가지분할 수행
- F-통계량의 p-값
- 의사결정나무의 분석과정
- 1) 목표변수와 관계가 있는 설명변수들의 선택
- 2) 분석목적과 자료의 구조에 따라 적절한 분리기준과 정지규칙 정하여 의사결정 나무 생성
- 정지규칙 : 더이상 분리가 일어나지 않고 현재 마디가 끝마디가 되도록 하는 여러 규칙, 최대 나무의 깊이, 자식마디의 최소 관측치 수, 카이제곱 통계량, 지니 지수, 엔트로피 지수 등
- 3) 부적절한 나뭇가지는 제거 : 가지치기
- 가지치기 : 끝마디가 너무 많으면 모형이 과대 적합된 상태, 분류된 관측치의 비율 또는 MSE(Mean Squared Error) 등을 고려한 수준의 가지치기 규칙 제공
- 4) 이익(gain), 위험(risk), 비용(cost) 등 고려하여 모형평가
- 5) 분류(classification) 및 예측 (prediction)
| 이산형 목표변수 | 연속형 목표변수 | |
| CHAID (다지분할) | 카이제곱 통계량 | ANOVA F-통계량 |
| CART (이진분할) | 지니지수 | 분산감소량 |
| C4.5 | 엔트로피지수 |
데이터 마이닝의 분석 방법
Supervised Learning(지도학습)Unsupervised Learning(비지도학습)
| -의사결정나무(Decision Tree) -인공신경망(Artificial Neural Network, ANN) -일반화 선형 모형(Generalized Linear Model, GLM) -선형 회귀분석(Linear Regression Analysis) -로지스틱 회귀분석(Logistic Regression Analysis) -사례기반 추론(Case-Based Reasoning) -최근접 이웃(k-Nearest Neighbor,kNN) |
-OLAP(On-Line Analytical Processing) -연관성 규칙(Association Rule Discovery, Market Basket) -군집분석(k-Means Clustering) -SOM(Self Organizing Map) |
비계층적 군집분석
- n개의 개체를 k개의 군집으로 나눌 수 있는 모든 가능한 방법을 점검해 최적화한 군집을 형성하는 것
Fuzzy Clustering
: 퍼지이론에 기반하여 각 관측치가 여러 군집에 동시에 속할 수 있으며, 각 군집별로 속할 가능성을 제시
밀도기반 군집(Density-Based Clustering)
: 동일 군집에 속하는 데이터는 서로 근접하게 분포할 것이라는 가정을 기반으로 한 군집분석
- ex)DBSCAN, OPTICS, DENCLUE, STING
k-평균 군집분석(k-Means Clustering)의 개념
- 주어진 데이터를 k개의 클러스터로 묶는 알고리즘
- 각 클러스터와 거리의 차이의 분산을 최소화하는 방식으로 동작
k-평균 군집분석(K-Means Clustering) 과정
- 원하는 군집의 개수와 초기 값(seed)들을 정해 seed중심으로 군집 형성
- 각 데이터를 거리가 가장 가까운 seed가 있는 군집으로 분류
- 각 군집의 seed값을 다시 계산
- 모든 개체가 군집으로 할당될 때까지 위 과정 반복

k-평균 군집분석의 특징
- 거리 계산을 통해 군집화가 이뤄지므로 연속형 변수에 활용 가능
- k개의 초기 중심값(seed)은 임의로 선택 가능하며 가급적이면 멀리 떨어지는 것이 바람직
- 초기 중심값을 임의로 선택시 일렬(상하, 좌우)로 선택하면, 군집 혼합이 되지 않고 층으로 나누어질 수 있어 주의
- 초기 중심값의 선정에 따라 결과 달라짐
- 초기 중심으로부터의 오차 제곱합을 최소화하는 방향으로 군집이 형성되는 탐욕적(Greedy) 알고리즘
=> 안정된 군집은 보장하나, 최적이라는 보장X
장점단점
| - 알고리즘이 단순 - 빠르게 수행되어 분석 방법 적용 용이 - 계층적 군집분석에 비해 많은 양의 데이터를 다룰 수 있음 - 내부 구조에 대한 사전정보가 없어도 의미있는 자료구조 찾기 가능 - 다양한 형태의 데이터에 적용 가능 |
- 군집의 수, 가중치와 거리 정의가 어려움 - 사전에 주어진 목적이 없어 결과 해석이 어려움 - 잡음이나 이상값 영향 많이 받음 - 볼록한 형태가 아닌(Non-Convex) 군집(ex. U형태) 존재시 성능이 떨어짐 - 초기 군집 수 결정에 어려움 |
SOM(Self Organizing Map)
- 자기조직화지도(Self Organizing Map, SOM) 는 코호넨(Kohonen)에 의해 제시, 개발되었으며 코호넨 맵(Kohonen Maps)라고도 함
- 비지도 신경망
- 고차원의 데이터를 이해하기 쉬운 저차원의 뉴런으로 정렬하여 지도의 형태로 형상화
-> 이런 형상화는 입력 변수의 위치 관계를 그대로 보존
=> 실제 공간의 입력 변수가 가까이 있으면, 지도상에도 가까운 위치 - 승자 독점의 학습 규칙에 따라 입력 패턴과 가장 유사한 경쟁층 뉴런이 승자가 된다.
M(Expectation-Maximization) 알고리즘 진행 과정
- 각 자료에 대해 Z의 조건부분포(어느 집단에 속할지에 대한)로부터 조건부 기댓값을 구함
- 관측변수 X와 잠재변수 Z를 포함하는 (X,Z)에 대한 로그-가능도 함수(이를 보정된(Augmented) 로그-가능도함수라 함)에 Z 대신 상수값인 Z의 조건부 기댓값을 대입하면, 로그-가능도함수를 최대로 하는 모수를 쉽게 찾을 수 있음(M-단계)
- 갱신된 모수 추정치에 위 과정을 반복하면, 수렴하는 값을 얻게 되고, 이는 최대 가능도 추정치로 사용
- E-단계 : 잠재변수 Z의 기대치 계산
- M-단계 : 잠재변수 Z의 기대치를 이용하여 파라미터 추정
실루엣 계수는 군집모형 평가 기준 중 군집의 밀집 정도를 계산하는 방법으로 군집 내의
거리와 군집 간의 거리를 기준을 군집 분할의 성과를 평가하는 기준이며 0에서 1사이의 값을
가진다.
코사인유사도
계층적 군집은 두 개체 간의 거리에 기반하여 군집을 형성해 나간다. 두 개체의 거리 측도 중 두 벡터
사이의 각도를 이용하여 벡터간의 유사 정도를 측정하는 측도
min-max 정규화
정규화 방법 중 원(raw) 데이터의 분포를 유지하면서 정규화
베깅
부트스트랩
의사결정나무를 앙상블(ensemble) 하는 방법 중 전체 변수 집합에서 부분 변수 집합을
선택하여 각각의 데이터 집합에 대해 모형을 생성한 후 결합하는 방식
앙상블
-이상값(outlier)에 대한 대응력이 높아진다.
-전체적인 예측값의 분산을 감소시켜 정확도를 높일 수 있다.
-모형의 투명성이 떨어져 원인 분석에는 적합하지 않다.
-각 모형의 상호 연관성이 높을수록 정확도가 하향된다.
- 최근접 이웃모형 (nearest neighbor)
훈련용 데이터 집합으로부터 미리 모형을 학습하는 것이 아니라 새로운
자료에 대한 예측 및 분류를 수행할 때 모형을 구성하는 lazy learning 기법을 사용
#모형 평가 절차 1. 훈련용 자료와 검증용 자료 추출
- 훈련용 자료는 모형 구축용도, 검증용 자료는 모형 검증 용도
- 주어진 데이터에서만 성과를 보이는 과적합화를 해결하기 위한 단계
- 잘못된 가설을 가정하게 되는 2종 오류를 방지
(1) 홀드아웃(hold-out)
- 랜덤 추출 방식
- 훈련용, 검증용 데이터 비율을 7:3으로 함
(2) 교차검증(cross-validation)
- 데이터를 k개로 나누어 k번 반복측정하고, 그 결과를 평균 내어 최종 평가로 사용
- 일반적으로 10-fold 교차 검증이 사용됨
(3) 붓스트랩(bootstrap)
- 교차검증과 유사하게 평가를 반복하지만, 훈련용 자료를 반복 재선정한다는 점에서 차이가 있음
- 관측치를 한번 이상 훈련용 자료로 사용하는 복원 추출법에 기반
- 전체 데이터의 양이 크지 않은 경우의 모형 평가에 가장 적합
#모형 평가 절차 2. 모형 학습 및 성능 평가
- 훈련용 자료로 모형을 학습한 뒤, 검증용 자료를 사용해 모형의 분류 및 예측 정확도를 평가
- 분류 모형 평가에 사용되는 방법
(1) 오분류표 ★
| 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지표 : 재현율과 정확도의 조화평균
(재현율과 정확도가 반비례할 높은 가능성을 보정하기 위한 지표)
1. 기울기 소실 문제 (Vanishing Gradient Problem)
기울기 소실 문제는 역전파 과정에서 기울기(gradient)가 점점 작아져, 초기 층의 가중치가 거의 업데이트되지 않는 현상입니다. 이는 주로 깊은 신경망에서 발생하며, 시그모이드(sigmoid)나 tanh와 같은 포화성 활성화 함수에서 문제가 두드러집니다. 기울기 값이 연속적으로 작은 값으로 축소되면 학습이 제대로 이루어지지 않고, 이로 인해 모델의 성능이 저하될 수 있습니다. 이를 해결하기 위해 ReLU와 같은 비포화성 활성화 함수를 사용하거나, 잔차 연결(residual connections)을 추가하는 기법이 사용됩니다.
2. 지역 최적화 문제 (Local Optimum Problem)
지역 최적화 문제는 손실 함수의 여러 지역 최적값(local minima) 중 하나에 빠져, **전역 최적값(global minimum)**을 찾지 못하는 문제입니다. 특히 비선형 모델이나 복잡한 손실 함수에서는 이러한 문제가 발생할 가능성이 큽니다. 모델이 지역 최적값에 빠지면 성능이 떨어지고, 전체적인 학습이 최적화되지 않습니다. 이를 해결하기 위해 모멘텀(momentum)이나 Adam 옵티마이저 같은 최적화 기법이 사용되며, 드롭아웃이나 배치 정규화(batch normalization) 등으로 학습을 안정화시키는 방법도 도움이 됩니다.
3. XOR 문제
XOR 문제는 논리 XOR 연산의 특성을 가지는 비선형적인 문제로, 선형 분류기(예: 퍼셉트론)로는 해결할 수 없는 문제입니다. XOR 문제에서는 입력값의 단순한 선형 결합으로는 두 클래스를 나눌 수 없기 때문에 선형 모델로는 분류가 불가능합니다. 이 문제는 신경망에서 **은닉층(hidden layer)**을 추가하고, 비선형 활성화 함수를 사용함으로써 해결할 수 있습니다. XOR 문제는 다층 퍼셉트론(MLP)이 필요함을 보여주는 대표적인 예입니다.
4. 과적합 문제 (Overfitting Problem)
과적합 문제는 모델이 훈련 데이터에 너무 맞춰져 일반화 성능이 떨어지는 현상입니다. 즉, 모델이 훈련 데이터에 대해 매우 높은 정확도를 보이지만, 새로운 데이터(테스트 데이터)에서는 성능이 떨어집니다. 과적합은 모델이 훈련 데이터의 노이즈나 세부 사항까지 학습하면서 발생하며, 복잡한 모델(매우 깊은 신경망이나 많은 파라미터를 가진 모델)에서 자주 나타납니다. 과적합을 방지하기 위해 다음과 같은 기법들이 사용됩니다:
- 드롭아웃(Dropout): 학습 시 일부 뉴런을 임의로 비활성화하여 모델이 특정 패턴에 지나치게 의존하지 않도록 합니다.
- 조기 종료(Early Stopping): 검증 데이터의 성능이 더 이상 개선되지 않을 때 학습을 중지합니다.
- 정규화(Regularization): L1 또는 L2 정규화를 통해 모델이 과도하게 복잡해지는 것을 방지합니다.
- 데이터 증강(Data Augmentation): 데이터의 양을 늘려 모델이 더 많은 패턴을 학습할 수 있도록 합니다.
연관규칙 분석
연관규칙
- 데이터 마이닝 기법 중 항목들 간의 ‘조건-결과’ 식으로 유용한 패턴을 발견해 내는 방법
연관분석
- 카탈로그 배열, 교차 판매 등의 마케팅을 계획할 때 적절한 데이터 마이닝 기법
- 순차패턴
구매 순서가 고려되어 상품 간의 연관성이 측정되고, 유용한 연관규칙
-지지도
전체 항목 중 A와 B가 동시에 포함되는 항목수의 비율
A와 B가 동시에 포함된거래수/ 전체거수
- 신뢰도
A와 B가 동시에 포함된거래수/ A
-향상도 = P(B|A)
A와B를포함하는거래수 × 전체거래수(N) /A를포함하는거래수 × B를포함하는거래수
지지도 = (30+60) / 210 = 0.43
신뢰도 = 지지도 / P(초콜릿) = 0.43 / 0.71 = 0.60
향상도 = 신뢰도 / P(우유) = 0.60 / 0.71 = 0.85
'AI빅데이터 > Study' 카테고리의 다른 글
| Attention 구조 비교: MHA vs MQA vs GQA (0) | 2025.05.30 |
|---|---|
| ADSP - 과목 2 - 데이터 분석 기획 (0) | 2024.02.19 |
| ADSP - 과목 1 데이터의 이해 (0) | 2024.02.16 |