1. 예측분석의 개념
1) 예측분석
* 정의: 데이터 마이닝 기법 혹은 기존 데이터나 미래 상황에 대한 가정을 활용하여 고객의 반응을 보이는 제안이나 특정 제품을 구매할 확률 등의 활동 결과를 예측하는 것
=> 정형/비정형 데이터의 트렌드, 패턴 및 관계를 분석하고, 향후에 발생할 사건들을 예측하며 목표로 하는 결과를 달성하기 위한 의사 결정을 지원하는 종류의 분석
2) 예측분석의 종류와 사용 분석 방법
사용 분석 방법 | 사용 예시 |
시계열 분석을 사용한 패턴 분석 | 수요, 물가, 주식지수 예측 등 |
회귀 분석을 이용한 영향 분석 | 만족도, 품질 진단 등 |
텍스트 마이닝을 활용한 비정형분석 | SNS 분석, 상품평 분석 등 |
의사결정나무 분석 방법을 활용한 예측분석 | 기업 부도, 환율 예측 등 |
+ 인공신경망을 이용하여 미래 수요 예측(과거 데이터를 토대로 미래 수요 예측)
* 시계열 분석
- 시간을 독립변수로, 과거에서부터 지금까지의 어느 특정 현상의 변화를 계량적으로 분석하고, 이를 통해 미래를 예측하는 분석 방법
ex) 지구온난화로 인한 지표면 온도 상승 예측
* 회귀 분석
- 기존데이터로 추정된 회귀 계수를 사용함 -> 데이터 자료값의 변화 -> 향후 예측
ex) 기존 매출 데이터를 사용한 매출 예측
* 텍스트 마이닝
- 정형화되지 않은 문자 데이터에서 유의미한 정보를 찾아내어, 쓸모 있는 정보로 가공, 분석하는 것
- SNS, 게시판, 블로그, 검색 키워드 등이 주로 분석 대상
- 분석 결과는 고객 반응 및 수요 예측 등의 측면에서 중요한 지표가 된다.
ex) 각 상품에 대한 고객 반응을 조사하여 키워드 추출을 통해 슬로건 제작
- 워드클라우드: 텍스트 마이닝을 통해 추출된 단어들의 집합(시각화), 비중(빈도)이 큰 순서대로 크기가 달라짐
* 의사결정나무 분석
- 분류와 예측 모두에서 자주 사용되는 기법
- 구조: 일련의 단순한 의사결정 규칙들을 적용시켜, 큰 집단을 하위 작은 집단으로 나눔
- 특정 규칙을 밝히는 경우(사건사고 발생 예측, 질병 발생 규칙), 해당 규칙이나 패턴을 적용한 예측
* 인공신경망 예측
- 학습을 통해 문제해결능력을 가짐
- 수요 예측 등에 사용되며, 입력변수를 통해 목표 변수를 예측
- 학습 모형을 통해 알고리즘을 형성
- 중간에서 처리하는 노드가 복잡하고 정교할수록 예측값이 높아짐
- 입력층: 시스템 외부로부터 입력자료를 받아들여 시스템으로 전송
- 은닉층: 시스템 안쪽에 자리잡고 있으며 입력 값을 넘겨받아 그것들을 처리한 뒤 결과 산출
- 출력층: 입력값 현재 시스템 상태에 기준하여 시스템 출력 값을 산출
2. 예측분석의 예시와 활용
* 쇼핑 페이지의 추천 상품
- 고객의 연력, 성별, 구매패턴 등을 분석
- 어떤 상품에 관심이 있고, 이 시기에 어느 물건이 필요한지 분석
- 결과에 따라 상품을 추천
* 페이스북의 친구 추천 기능
- 기가입자(출신학교, 고향, 근무 회사 등)
- 기가입자의 정보를 통해 예측 분석
- 친구 추천
* 구글 독감 트렌드
- 사람들이 본인의 주거 지역에 독감이 유행하기 시작하면, '발열, 기침, 독감' 등으 검색어를 검색하는 것에서 착안
3. R을 이용한 예측분석
1) 의사결정나무 분석(붓꽃의 꽃잎 길이와 너비를 규칙으로, 종류를 분석)
install.packages("rpart")
library(rpart)
# R Graphics 실행
x11()
- rpart: 의사결정나무 패키지
formula = Species~.
iris.df = rpart(formula, data = iris)
plot(iris.df)
text(iris.df, use.n = T, cex = 0.7)
# cex = 문자의 크기
post(iris.df, file='')
2) 시계열 분석
* 한국의 2018 ~ 2021 1인당 GDP 예측
# 한국의 2018~2021 1인당 GDP 예측하기
# 한국의 GDP 내용이 포함된 패키지: WDI
install.packages('WDI')
library(WDI)
gdp <- WDI(country = 'KR',
indicator = c('NY.GDP.PCAP.CD', 'NY.GDP.MKTP.CD'),
start = 1960,
end = 2017)
gdp
# 칼럼명 수정
names(gdp) <- c('iso2c', 'Country', 'Year', 'PerCapGDP', 'GDP')
head(gdp)
# 시계열 데이터로 변환
kr = gdp$PerCapGDP[gdp$Country == "Korea, Rep."]
kr = ts(kr, start = min(gdp$year, end = max(gdp$yea)))
kr
# 시계열 예측 모델 import
install.packages('forecast')
library(forecast)
# 데이터를 활용하여 최적의 ARIMA 모형 선택
krts = auto.arima(x = kr)
krts
# 미래예측
Forecasts = forecast(object = krts, h = 5)
Forecasts
# 시계열 그래프 출력
plot(Forecasts)
'프로그래밍' 카테고리의 다른 글
[R] 분석모델 확장(파생변수, 앙상블 기법) (0) | 2021.05.31 |
---|---|
[R] R을 이용한 군집분석 (0) | 2021.05.29 |
[R] R을 이용한 로지스틱회귀분석 (0) | 2021.05.24 |
[R] R을 이용한 주성분분석 (0) | 2021.05.23 |
[R] R을 이용한 분산분석 (0) | 2021.05.23 |