프로그래밍

[R] R을 이용한 예측분석

RainIron 2021. 5. 29. 14:01
반응형

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)

iris.df

 

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

index가 58까지 있음

# 칼럼명 수정
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)

반응형