본문 바로가기

학업

R studio를 이용한 데이터 예측

수학 과제연구 보고서에 쓰인 소중한 저작물입니다. 함부로 긁어가지는 말아주세요




왼쪽 사진과 같은 자료를 가지고 있을 때, 프로그램 언어 R을 이용해서 오른쪽 사진과 같이 이후의 데이터를 예측할 수 있는 방법이 있다.(파란 선이 개형, 회색 영역이 오차범위)컴퓨터 프로그램을 사용하여 어떻게 이런 데이터 예측을 할 수 있을지 알아보자.



일단 이 방법은 R의 시계열 분석을 응용한 것. 시계열은 시간의 흐름에 따라 기록된 자료인 시계열을 다루는 거라서 시간과 날짜 형식으로 데이터가 이루어지는데, 나는 과제연구 중에 단순하게 오른쪽과 같은 수열형 데이터를 분석/예측해야 하였기 때문에 이런 응용방안을 고안하였다.














<필요한 프로그램 설치>


R : 통계 및 그래프 작업을 위한 인터프리터 프로그래밍 언어. 통계 전문 언어 중 가장 보편적이기 때문에 거의 모든 통계 기법이 어딘가에 패키지 형태로 구현되어 있어 사용이 용이하다. 데이터 마이닝, 빅 데이터 프로세싱, 기계학습 등에 유용하다.

Rstudio : R을 사용할 수 있는 통합 개발 환경 중 가장 무난한 프로그램. 데이터를 시트 형태로 저장하고, 콘솔에서 라이브러리 사용이나 패키지 설치를 위한 명령어를 작성하거나 출력된 결과를 읽을 수 있으며, plot 함수를 이용해 그래프를 그려낼 수 있다.

R과 R studio를 설치해야 한다. 그 방법은 다음의 사이트를 참고하자.


http://philogram.co.kr/2018/05/07/r-%EA%B8%B0%EC%B4%88%EB%B6%80%ED%84%B0-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-1-r%EA%B3%BC-rstudio-%EC%84%A4%EC%B9%98/



<샘플 데이터 가져오기>


엑셀에 데이터를 준비한다. 아래와 같이 한줄로 입력한다


R studio의 콘솔 창에 엑셀의 데이터를 불러오기 위한 라이브러리를 설치한다. 명령어만으로 가능하다. 아래와 같이 입력.

library(readxl)


그리고는 원하는 데이터를 소환하는 명령어를 작성한다.


>[데이터 이름]<-read_excel("[파일 위치/파일이름.xlsx]")


대괄호 안의 부분은 자신의 상황에 맞게 입력하자. 각각 Rstudio에 이 데이터를 어떤 이름으로 입력할 건지, 이 파일이 어디 있는 무엇인지를 입력한다. 이때 파일의 위치와 이름에는 한글이 포함되면 안 된다. 파일 경로는 오른쪽과 같이 파일 속성에 있는 위치를 보면 알 수 있다.(현재는 파일을 옮겨 놓은 상태라서 파일경로에 한글이 있는데 이러면 안 된다)







그러면 프로그램에 수열이 데이터로써 입력된 것을 확인할 수 있다.
데이터의 범위를 정하여 추출하려면 앞의 콘솔 명령을 파생하면 된다. A1, D2 등과 같은 엑셀의 블록 좌표를 이용해서


>[데이터 이름]<-read_excel("[파일 위치/파일이름.xlsx]", range = "[데이터가 시작하는 블록] : [데이터가 끝나는 블록]")


<데이터 예측 그래프 작성>


R studio에서는 ARIMA 데이터 분석 방법을 이용하여, 주어진 데이터의 뒷부분을 예측할 수 있는 라이브러리를 제공한다. 명령어로 설치 가능하다. 콘솔창에 다음과 같이 입력하자


>library(forecast)

그럼 가장 중요한, 데이터 예측 코드를 작성하자


fit=auto.arima([데이터 이름]) fcast<-forecast(fit,h=[예측하고자 하는 데이터 길이]) plot(fcast, xlim=c(0,[x축 한계치]), ylim=c(0,[y축 한계치])


대괄호 안은 자신의 상황에 맞게 고쳐 쓰자.
예측하고자 하는 데이터의 이름을 입력하면 auto.arima()함수에서 이를 자동으로 ARIMA모형 분석을 해 주어 fit에 저장한다.
forecast()함수에서 fit에 저장된 ARIMA모형 분석본을 이용해 입력한 데이터의 예측값을 도출하여 fcast에 저장한다. 이때 예측하고자 하는 데이터의 길이를 입력하면 예측값을 어디까지 얻을지 결정할 수 있다.
plot()함수에서 fcast에 저장된 예측값과 원래의 데이터를 그래프로 시각화하여 보여준다. x축와 y축의 한계치를 작성하면 그래프의 스케일이 조정된다.




다음은 제가 과제연구에서 이 방법을 이용해 데이터 예측 후 그려본 그래프들입니다. 각각은 일반식이 알려지지 않았거나 구하기 어렵고 곤란한 페리수열, 랭포드수열, 소모스-4 등의 수열의 다음 일반항 예측입니다.