3과목은 가장 범위도 넓고 
수학적, R용어적 지식도 필요하기에 
가장 오랜 기간 공부한 부분입니다. 
수식 부분 안나온다고해서 공부 안했는데 
맨하튼 거리가 나올줄 ㅋㅋㅋ 
당했네요 ㅋㅋㅋㅋ

객관식은 정확히 틀린건 5개, 정답이니 아닌지 모르는 것은 3개입니다.
주관식은 2개 틀렸습니다.
그래도 보수적으로 30문제중 20개 맞춰서 
과락기준 12개 이상 맞춘거니 과락은 면했습니다. ㅠㅠ 다행이네요 ㅠㅠ

 ((▲) 표시는 정확히 답인지 헷갈리는 문제에요! 그리고 모두 정답으로 확정 된것은 아닙니다!)



객관식1. 회귀모형의 변수선택법이 아닌것은? (▲)
정답 : 주성분 분석 
라쏘, 모든회귀분석 등이 보기로 나왔는데
라쏘와 주성분분석 중 어떤게 답이냐고 다들 엄청 말이 많으셨는데
전 모든회귀분석을 찍었죠 ㅋㅋㅋㅋㅋ 전 그냥 틀렸던
저는 전진선택, 후진제거, 단계선택만 외우고 갔고 모든회귀를 너무 쉽게 생각했었나봅니다.

객관식2. 회귀 그래프와 R명령어  (▲)
정답 : lm(Balance~Income+Student, data=Credit)
학생이 여/남이었는지 인지 아닌지였는지... 기억이 안나나 명목척도였었어요
그래서 고민이 되었죠 Income은 비율척도이고 학생은 명목척도라서
그래도 두 설명변수가 필요할것같아서 선택했었요.

객관식 3. 거리 활용한 측도에 대한 설명으로 틀린것은?
정답 : 마할라노비스
군집 방법에 대한 수식 설명이 나올줄은 몰랐어요
유클리드, 맨하튼 등의 수식들의 대해서 물어봤고
여기의 맨하튼 구하는 공식에 대한 설명 덕분에 주관식을 맞출수 있었던 감사했던 보기입니다.
마할라노비스는 변수의 표준화와 함께 변수간의 상관성을 동시에 고려한 통계적 거리입니다.
상관성을 고려할 수없다고 표시되어 틀렸다 라고 답하였습니다.

객관식 4. 데이터 정규성 확인 방법이 아닌것은?
정답 : Durbin-Watson
사피오 테스트, 히스토그램, 큐큐플랏이 보기었는데
큐큐플랏은 정확히 맞다는 것을 알았는데... 
히스토그램도 정규성 검사 가능하다는 것을 알았는데...
그런데 틀렸네요 ㅋㅋㅋㅋㅋ 

객관석5. 상관분석에 대한 설명이 잘못된 것은 ?
정답 : 종속변수 값을 예측하는 선형모형 추출 방법이다
피어슨 상관계수, 스피어만 상관계수에 관련하여 보기가 나왔고
상관관계에 대해서만 나오는거지 값을 예측하는 방법은 아니어서 틀렸고
저도 틀렸던거 같아요 ㅋㅋㅋ 전 3번을 찍었는데 저건 4번 보기거든요...
틀린 답이 기억이 안나네요 ㅜㅜ

객관식6. 데이터마이닝 단계 중 목적변수를 정의하고 필요한 데이터를 데이터 마이닝 소프트웨어에 적용 할 수 있게 데이터를 준비하는 단계는?
정답 : 데이터 가공
4-3 제1절의 단계별 추진단계입니다. 자주 나오는 부분이에요 특히 가공이요
만약 시간이 없다면 데이터 가공만이랑 
목정정의, 데이터준비, 데이터가공, 기법적용, 검증의 순서라도 외우고 가세요

객관식7. 연관규칙의 향상도 설명이 옳은것은?
정답 : 향상도가 1보다 크면 결과가 우수하다
4-3의 연관규칙의 향상도는 1이면 서로 독립 1보다 크면 양의 상관관계
그리고 향상도, 지지도, 신뢰도의 수식은 꼭 나오니 외우고 가세요

객관식8. R 데이터의 저장형식 내용으로 부적절한 것은?
정답 : as.vector 함수 적용시 데이터는 1행부터 차례로 생성된다
4-1의 R 부분에서 나온것입니다.
벡터, 행렬에 대한 질문에 대한 보기와 함께 나왔어요
저는 이문제를 다른 보기들은 다 정답이고 이 보기만 제가 모르는 부분이라 선택했습니다.

객관식9. 의사결정나무 그림보고 해석으로 부적절한 것은?
정답 : 끝 노드로 갈수록 불순도가 안좋아진다
4-3의 의사결정나무의 모형이 나오고
그 나무가 가지가 갈라질때의 숫자와 확률을 보고 기준점보다 크면 확률이 어느정도인지의 보기와
의사결정나무의 이론적 질문이 보기로 나왔습니다. 
의사결정나무가 진행될수록 불확실성은 점점 줄어들기에 불순도가 없어지죠. 순수도가 높아집니다.

객관식 10. 각 열이 서로 다른 타입의 데이터 구조가 가능한 것은?
정답 : 데이터프레임(dataframe)
4-1 R교재에는 벡터, 행렬, 데이터프레임만 나옵니다.
그렇기에 그 외의 질문이 답이라면 문제가 되겠죠? 
각 열에 서로 다른 타입을 가질 수 있는 것은 데이터 프레임만 입니다.
이쪽은 자주 나오니 꼭 기억해주세요

객관식 11. 비모수 검정의 특징이 아닌것은?
정답 : 평균, 분산을 이용한 검정을 이용한다 

4-2절의 제 1절 마지막 부분에 나오는 비모수 검정은 항상 저 보기가 답으로 나오더군요

비모수적 검정 방법 : 모집단의 분포에 대해 아무 제약 가하지 않고 실시, 특정분포를 따른다고 가정 없음

ex) 부호검정, 순위합검정, 부호순위합검정, U검정, 런검정, 스피어만의 순위상관계수


객관식 12. SOM에 대한 설명이 잘못된 것은?
정답 : SOM 은 역전파 알고리즘을 사용한다(이건 신경망입니다)

4-3의 제3절 군집분석, 비지도 학습 중 자기조직화지도, 코호넨 맵이라 불리는 SOM 입니다.

비지도 신경망으로 고차원의 데이터를 이해하기 쉬운 저차원의 뉴런으로 정렬하여 지도 형태 형상화

승자 독식 구조로 인해 경쟁층에는 승자 뉴런만 나타남

SOM 이용한 군집분석은 역전파 알고리즘과 달리, 하나의 전방패스 사용함으로 속도가 매우 바르고 실시간 학습처리가 가능이 보기였습니다.


객관식 13. 추정/가설검정에 대한 설명이 부적절한 것은? (▲)
정답 : 모르겠어요... 이건 채점결과 나오면 알 수 있을 듯 합니다. 
   저는 기각역을 택했어요 제 기억에는 기각역이 대립가설을 기각하는 통계량의 영역이 보기었던거같아서 
점주청, 구간추정, 유의수준에 대한 p-value, 기각역이 나왔습니다.
점 추정 : 특정값을 구하는 것
구간 추정 : 일정한 크기의 신뢰수준으로 모수가 특정 구역에 있다고 하는 것
p-value : 귀무가설이 사실일 , 관측된 값보다 대립가설을 지지하는 검정통계량이 나올 확률
기각역 : 귀무가설을 기각하는 통계량의 영역

객관식 14. Bias-variance trade off 관계에 대해 모델의 유연성이 크다면 분산과 편향은?(▲)
정답 :  높/낮
이것도 정확히 답이 책에 나와있는 것은 아닙니다.
다만 카페와 데이터에듀의 답을 비교해보니 정답이라고 했습니다.
전 유연성이 크니 분산의 넓이는 크다고 예상했고 트레이트 오프니 분산과 편향은 반비례관계라고 생각하여 선택했죠
이부분도 점수가 나와봐야 알 수 있을 듯 합니다.

객관식 15. Chickwts 데이터 주고 설명이 부적절한것은? 
정답 : 첨가물의 개수는 5개이다
다중 회귀분석 모델을 보여줍니다.
여기서 자유도 부분을 알아야하는데, 표본에 관련하여 기술통계값을 낼때는 변수 숫자에 따라 -n를 합니다.
그래서 표에 나왔는 것이 5라면 실제 분석에 쓰이는 데이터는 7개 입니다. (설명변수가 2개인 경우)
표에 나와있는 답에 자유도 부분을 더해야 합니다.

객관식 16. 보험사 해지할 예상 고객을 예측시 사용할때 쓸 적절한 기법은?(▲)
정답 : 랜덤 포레스트 라고 선택했으나 주성분 분석이라고도 하셔서..
이 부분도 정답이 정확히 책에 나와있지는 않았습니다.
다만 여러가지 요인이 나오고 그에 따른 고객 데이터 예측이라 저 또한 주성분분석과 랜덤포레스트를 고민했으나
주성분분석은 분류에 랜덤포레스트는 다양한 모델 분석을 통한 예측이 가능하여 우선 랜덤포레스트를 했으나
다른분들이 주성분 분석으로도 예측이 가능하다고(그리고 생각해보니 그러하여) 확답을 낼 수 없는 부분입니다.

객관식 17. 광고 채널 상관관계표 주고 설명한 내용중 잘못된 것은?
정답 : TV광고와 Sales는 증가하는 인과관계를 가진다
이건 명확히 자주 나오는 답입니다. 상관관계는 인과관계를 가지지 않습니다
반드시 이해해야하고 어떻게든 다른 문제로도 이부분은 꼭 질문하는 것 같습니다.

객관식 18. 회귀분석과 결정계수 설명이 부적절한 것은?
정답 : 총변동과 오차에 대한 변동 비율이다

4-2의 제2절 회귀분석 부분에서 나옵니다.

결정계수 : R-squared 0~1사이에서 1 가까워야 설명을 하고 있다고 판단

회귀계수는 해당 계수의 t통계량과 p- 또는 이들의 신뢰구간 확인

결정계수 확인, 0~1사이 값을 가지며 높은 값일 수록 설명력이 높다


객관식 19. 귀무가설이 사실인데 기각하는 1종 오류시 우리가 내린 판정이 잘못되었을 실제 확률은?
정답 : P-value
알파, 1-알파, 검정통계량이 보기였습니다.
알파냐 p-value냐에 대해서 사람들이 고민 많이 하셨는데 책에 우선은 p-value로만 나와있습니다.
이 또한 점수가 나와야 알 수 있을 듯 합니다.
그리고 객관식 13번의 보기와 비슷해서 답이 유추가 가능했던 문제였습니다.

객관식 20. 회귀분석에 대한 설명으로 부적절한 것은?
정답 : 귀무가설은 기울기가 0이 아니다
회귀분석의 귀무가설과 대립가설에 대한 부분이었습니다. 
기울기는 1이다 아니다를 이야기합니다. 0이 아닙니다.

객관식 21. 교차 판매/물건 배치등에 이용되는 기법은?
정답 : 연관분석
물건 교차 판매 및 배치에 대한 원리에 대해 이용되는 기법은 연관분석
이 문제는 기출로도 많이 나왔고 책의 문제로도 나왔습니다
꼭 알아두고 시험 보시면 좋아요!

객관식 22. R패키지 설명으로 틀린것은?
정답 : data.table에서 리스트로 변경되면 ddply를 사용 할 수 있다 (가 아니라 dlply입니다)
4-1 R파트의 제 2절 plyr, sqldf, reshape관련 보기가 나왔습니다.
이부분은 주관식으로도 자주 기출된다고 합니다. 기본적 이론만 외워도 좋을 것 같습니다.

객관식 23. y=c(1,2,3,NA)일때 3*y의 결과
정답 : 3,6,9,NA
저는 ㅋㅋㅋ 이 문제에 낚여서.... 헝 ㅜㅜㅜ 
우왕 쉽다. 이건 바로 에러지 에러가 난다로 선택했는데
문제를 더 꼼꼼히 읽어볼껄 그랬습니다.
mean(y) 로 했으면 에러였는데, 단순 곱셈이었습니다.

객관식 24. 기법 활용 분야가 다른것은?
정답 : SOM( 에만 비지도학습이고 나머지 보기는 전부 지도학습이었습니다)
4-3의 제 2절, 3절의 지도학습/비지도학습에 대한 질문이었습니다.
지도학습 : 로지스틱회귀분석, 신경망, 의사결정나무, 앙상블
비지도학습 : 계층형 군집분석, k-평균, 혼합분포군집, SOM 


주관식 1. 보기의 표를 보고 정확도(Accuracy) 를 구하여라
정답 :  (a+d)/(a+b+c+d) 
4-3 오분류표에 대한 문제고 이건 매번 나옵니다.
저는 정확도라는 글자만 보고 정확도를 구했는데
사실 책에는 영어로 Accuracy는  한글로는 정분류율 입니다. 
책에서는 정확도(Precision)는 TRUE 예측한 관측치 실제값이 TRUE 정도입니다.
영어를 놓치고 한글만 본 저의 문제겠지요 ㅠㅠ
하지만 책에는 이렇게 나와있으니 한글과 영어의 표기를 문제 출제시 맞춰주면 좋겠다는 바람입니다. 

주관식 2. 맨하턴거리 구하기
정답 : 2
각 좌표의 직각 거리 계산하면 되는데
(3,4) (4,5)의 거리여서 삼각형 상의 1 + 1 이라 2를 했는데
이게 답이라고 하더라구요 ㅋㅋㅋ 이건 객관식 3번의 도움이 없었다면 절대 풀수없었을 것 같습니다.

주관식 3. 재표본 과정에서 자료에 동일한 확률 부여하지 않음, 분류가 잘못된 데이터에 가중을 주어 표본을 추출
정답 : 부스팅
원래 기출은 랜덤포레스트나 배깅을 물어보던데 이번에는 부스팅이네요
이로써 앙상블 모델의 부분은 주관식으로 다 나왔어요 ㅋㅋㅋ 앞으로도 나올 가능성이 높겠네요

주관식 4. 추세를 보이는(평균이 일정하지 않으면) 시점의 자료값 - 시점의 자료값 하는 것은?
정답 : 차분
저는 AR모델이라고 적었지만 나와서 확인해보니 차분이 맞습니다
저는 틀렸지만 ㅜㅜ 여러분은 맞추시길 바랍니다.

주관식 5. 단순회귀분석의 최소제곱추정량 : 제곱오차를 최소로 하는 값은 방법은?
정답 : 최소자승법, 최소제곱법
4-2의 단순회귀 부분에 3줄 정도 아주 짧게 나온 부분인데 이게 주관식으로 나와서 당황했습니다.
하지만 어서 들었던 기억에 ㅋㅋㅋ 정답을 맞출 수 있었습니다. 

주관식 6. 기준점 = 150으로 하면 몇개의 군집이 되는가?
정답 : 3
이건 어렵게 보시지 말고 y축의 값에 150으로 쭉 선을 그르면 의사결정나무의 가지들이 몇개가 걸리는지 확인하시면 됩니다.


4과목은 R에대한 수식이 너무 많아서 고민이실텐데
ADSP는 정확한 수식보다는 각각의 분석모형에 대한 이해가 중요합니다.
사실 너무 어렵다면 R부분을 제외하고 나머지 모형을 이해만 하셔도 됩니다.
회귀분석, 의사결정나무 정도의 R의 결과값만 이해하는 정도만 된다면 어렵지 않을 것 같습니다.

이번 기출은 통계에서 많이 나왔습니다.
통계부분이 매우 중요합니다.
가채점 결과는 통과지만 이건 가!채!점! 이기 때문에 떨어질수도 있죠
그래서 떨어지고 다시 재 시험을 보게 된다면 통계부분을 더욱더 열심히 공부할 것입니다.

모두 좋은 결과 있으기실 바랍니다
다음은 제가 공부했던 교재들에 대한 포스팅을 할게요 : )


1 통계학 개론

 

1. 통계 분석 개요

1) 통계학의 정의

경제통계, 사회조사분석통계, 실험결과 분석 통계 다양한 형태

자료로부터 유용한 정보를 이끌어 내는 학문, 자료 수집과 정리, 이를 해석하는 방법 모두 포함

2) 모집단과 표본

모집단(=추출단위, 원소) : 유용한 정보의 대상이 되는 , 우리가 알고자 하는 전체

- 유한모집단 : 유한 개의 개체로 이루어진 모집단

- 무한모집단 : 무한 개의 개체로 이루어진 모집단으로 보통의 개념적인 모집단 지칭

조사 : 모집단의 개체 모두 조사하는 방법 ex) 인구 주택 총조사

표본 : 모집단의 일부분

표본조사 : 일부분인 조사하여 모집단에 대해 추론하는

모수 : 모집단에 대해 알고자 하는

통계량 : 모수를 추론하기 위해 구하는 표본의 값들

3) 표본추출의 방법

모집단의 정의, 표본의 크기, 조사방법, 조사기간, 표본추출 방법

분석결과 해석은 차이가 발생

 

표본 추출 방법

- 단순랜덤추출법 : 랜덤으로 임의 번호를 선택하여 추출

- 계통추출법 : 일련 번호를 부여하고 k개씩 n 구간으로 나누고 구간별 선택,  ex)4, 14, 24, 34 ...

- 집락추출법 : 몇 개의 클러스터로 결합된 형태에서 집락을 랜덤으로 선택하고 집락에 임의 추출

- 층화추출법 : 이질적인 원소로 구성된 모집단에서 계층을 고루 대표할 표본을 추출하는

원소들을 서로 유사한 것끼리 층으로 나눈 , 층에서 표본 랜덤 추출

 

실험 : 표본 조사 이외의 자료를 수집하는 방법

특정 목적하에서 실험대상에게 처리를 가한후 결과를 관측해 자료를 수집

ex) 새로운 강의법과 기존 강의법을 실험한 성적 조사, 암치료제 효과 분석

 

4) 자료의 종류

측정 : 추출된 원소, 실험단위로부터 주어진 목적에 적합하도록 관측해 자료를 얻는

질적자료

- 명목척도 : 어느 집단에 속하는지 분류하는 척도

ex) 성별(, ), 출생지(서울, 부산 )

- 순서척도 : 특성이 가지는 서열 관계를 관측하는 척도, 일정한 순서

ex) 서비스 만족도 5단계 구분

양적자료

- 구간척도 : 속성의 양을 측정하는 , 숫자로 표현, 절대적인 원점이 없음

ex) 사이의 비율은 의미 없는 온도, 지수

- 비율척도 : 절대적 기준인 0 존재하고, 모든 사칙연산 가능, 제일 많은 정보

ex) 무게, 나이, 연간소득, 제품가격 일반적인 자료 특성

 

2. 통계 분석

특정한 집단이나 불확실한 현상을 대상으로 자료를 수집해 대상집단에 대한 정보를 구하고

적절한 통계 분석 방법을 이용해 의사결정 하는 과정

 

통계적 추론 : 수집된 자료를 이용해 대상 모집에 대해 의사결정 하는

- 추정 : 대상 집단의 특성값(모수) 무엇일까? 추측

- 가설검정 : 대상 집단에 대해 특정한 가설을 설정한 가설의 채택여부를 결정하는

- 예측 : 미래의 불확실성을 해결해 효율적인 의사결정을 하기 위해 수행하는

 

기술통계 : 수집된 자료를 정리, 요약하기 위해 사용되는 기초적인 통계 통계분석을 위한 사전단계

- 평균, 표준편차, 중위수, 최빈값, %

- 막대그래프, 원그래프, 꺽은선 그래프

 

3. 확률 확률분포

 

1) 확률의 정의

확률 : 특정사건이 일어날 가능성의 척도

표본공간 : 통계적 실험이 실시할 나타날 있는 모든 결과들의 집합

사건 : 표본공간의 부분집합

- 근원사건 : 사건 오직 개의 원소로만 이루어진 사건

 

사건 E 대한 확률


 

- 모든 사건 E 확률값은 0 1사이에 있다.

- 전체 집합 확률은 1이다

- 서로 배반인 사건들의 합집합은 확률의 사건들의 확률의 합이다.


  배반사건이란, 교집합이 공집합인 사건

 

2) 조건부 확률과 독립사건

조건부 확률 : 사건 A 일어났다는 가정하의 사건 B 확률

           , P(A) > 0 일때

 

사건 A, B   만족하면 

, A B 독립사건이면  사건 B 확률은 A 연관 없다

 

3) 확률변수와 확률분포

확률변수 : 특정값이 나타날 가능성이 확률적으로 주어짐

 정의역이 표본공간, 치역이 실수값인 함수

- 이산형 확률변수 : 사건 확률이 사건들이 속한 점들의 확률 합으로 표현

확률질량함수, 0보다 값을 갖는 점들

베르누이 확률분포, 이항분포, 기하분포, 다항분포, 포아송분포

- 연속형 확률변수 : 사건 확률이 사건 위에서 0보다 값을 갖는 함수의 면적으로 표현

확률밀도함수, 점에서의 확률은 0 되고, 0보다 값을 갖는 구간의 확률값

균일분포, 정규분포, 지수분포, t-분포, -분포, F-분포

- 결합 확률분포 : 확률변수 X, Y 결합확률분포가 이산형인 경우 결합확률질량함수

    확률변수 X, Y 결합확률분포가 연속형인 경우 결합확률밀도함수

 

4) 확률변수의 기댓값과 분산

이산형 확률변수 기댓값 

연속형 확률변수 기댓값  면적을 적분

분산 

표준편차 

 

5) 백분위수


연속형 확률변수 X q분위 백분위수 (0q100)

 

 

4. 추정과 가설검정

모수 : 모집단의 확률분포 특징, 평균, 분산, 표준편차, 백분위수

통계적 추론

- 추정

- 점추정

- 구간추정

- 가설검정

 

1) 추정

가장 참값으로 여겨지는 하나의 모수 값을 택하는

모수가 특정한 값일 것이라고 추정하는

표본평균 : 모평균을 추정하기 위한 확률표본의 평균값 

표본분산 : 모집단 분산을 추정하기 위한 추정량 

 

2) 구간추정

점추정의 정확성을 보완

일정한 크기의 신뢰수준으로 모수가 특정한 구간에 있을 것이라고 선언

신뢰수준은 90, 95, 99% 확률 사용

: 한 개의 모집단에서 동일한 방법으로 동일한 자료의 확률표본은 추출하여 신뢰구간을 구하면

  해당하는 % 구간에서 미지의 모수를 포함한다는 의미

 

3) 가설검정

모집단에 대한 어떤 가설을 설정한 표본 관찰을 통해 가설의 채택여부를 결정하는 분석 방법

귀무가설 H0 : 대립가설과 반대의 증거를 찾기 위해 정한 가설

대립가설 H1 : 확실하게 증명하고 싶은 가설, 증거가 있어야 채택되는 가설, 결과가 값비싼 가설

 

검정통계량

- 표본평균

- 표본분산

- p-value : 귀무가설이 사실일 , 관측된 값보다 대립가설을 지지하는 검정통계량이 나올 확률

미리 주어진 기준값인 유의수준보다 작으면 기무가설을 기각 (0.01, 0.05, 0.1 1 사용)

- 기각역 : 귀무가설을 기각하는 통계량의 영역

 

1 오류 : 귀무가설H0 옳은데도 H0 기각

2 오류 : 귀무가설H0 옳지 않은데도 H0 채택


오류는 서로 상충관계가 있음, 1 오류의 크기 고정해서 2 오류가 최소가 되도록 기각역 설정

 

5. 비모수 검정

모수적 검정 방법 : 검정하고자 하는 모집단의 분포에 대한 가정하에 검정통계량과 분포 유도하여 검증

비모수적 검정 방법 : 모집단의 분포에 대해 아무 제약 가하지 않고 실시, 특정분포를 따른다고 가정 없음

ex) 부호검정, 순위합검정, 부호순위합검정, U검정, 런검정, 스피어만의 순위상관계수

 

차이점

- 가설의 설정에서 모수정 검정에는 가정된 분포의 모수에 대한 가설 설정하나

비모수 검정에는 가정된 분포가 없음, 단지 분포가 동일한지 형태 여부만 설정

- 모수적 검정에서는 관측된 자료를 이용한 표본평균, 표본분산을 이용해 검정 실시

  비모수적 검정에서는 관측값의 절대적 크기에 의존하지 않는 순위나 차이 부호를 이용해 검정

 

2 기초 통계 분석

 

1. 기술통계

자료를 요약하는 기초적 통계

> head(Animals)  # 내용 확인 가능, n 보여지기 가능
                    body brain
Mountain beaver     1.35   8.1
Cow               465.00 423.0
Grey wolf          36.33 119.5
Goat               27.66 115.0
Guinea pig          1.04   5.5
Dipliodocus     11700.00  50.0
> mean(Animals$body) #평균
[1] 4278.439
> median(Animals$body) #중앙값
[1] 53.83
> sd(Animals$body) #표분편차
[1] 16480.49
> var(Animals$body) #분산
[1] 271606563
> quantile(Animals$body) # 백분위수
       0%       25%       50%       75%      100%
    0.023     3.100    53.830   479.000 87000.000
> summary(Animals$body)
    Min.  1st Qu.   Median     Mean  3rd Qu.     Max.
    0.02     3.10    53.83  4278.44   479.00 87000.00

 

2. 회귀분석

 

1) 단순회귀분석과 다중회귀분석의 개념

회귀분석 : 하나, 이상의 변수들이 다른 변수에 미치는 영향에 대해 추론하는 통계기법

- 종속변수(반응변수) : 영향을 받는 변수

- 독립변수(설명변수) : 영향을 주는 변수

 

단순회귀분석 : 개의 독립변수와 개의 종속변수로 이루어져 있음, 오차항이 있는 선형관계

최소제곱추정량 : 제곱오차를 최소로 하는

 

다중회귀분석 : 두개 이상의 독립변수 사용하여 종속변수의 변화를 설명

 

체크사항

- 모형이 통계적으로 유의미한가

F통계량 확인, 유의수준 5%하에서 p-value 값이 0.05보다 작으면 유의하다

- 회귀계수들이 유의미한가

해당 계수의 t통계량과 p- 또는 이들의 신뢰구간 확인

- 모형은 얼마나 설명력이 있나?

결정계수 확인, 0~1사이 값을 가지며 높은 값일 수록 설명력이 높다

- 모형이 데이터를 적합하고 있는가?

잔차를 그래프로 그리고 회귀진단을 한다

- 데이터가 아래의 모형 가정을 만족 시키는가?

- 선형성 (독립변수의 변화에 따라 종속변수도 일정 크기로 변화)

- 독립성 (잔차와 독립변수이 값이 관련되어 있지 않음)

- 등분산성 (독립변수의 모든 값에 대해 오차들의 분산이 일정)

- 비상관성 (관측치들의 잔차들끼리 상관이 없어야함)

- 정상성 (잔차항이 정규분포를 이뤄야함)

 

2) 회귀분석의 종류


 

단순선형회귀분석 : lm(종속변수 ~ 반응변수, 데이터이름) 함수 사용

 

다중선형회귀분석 : lm(종속변수~독립변수+독립변수+독립변수)

 

Summary 함수를 통해 결정계수, F통계량, 잔차의 표준오차 확인 가능

F통계량 : F-statistic, p-value 유의수준 5% 하에서 추정된 모형인지 확인 가능

결정계수 : R-squared 0~1사이에서 1 가까워야 설명을 하고 있다고 판단

잔차의 표준오차 : 값들의 p-value 0.05보다 작으면 회귀계수의 추정치가 통계적으로 유의함

 

다항회귀분석 : 데이터를 산점도 확인했을 , 선형이 아니라 곡선형이면 다항회귀분석을 진행함

회귀식의 잔차도가 뚜렷한 곡선 패턴 오차항의 평균 0이고 분산이 일정하지 않음 (등분산성 오류)

2차함수를 사용할 , 다소 안정된 형태의 잔차를 보임

 

3) 최적회귀방정식의 선택 : 설명변수의 선택

반응변수, 종속변수 y 영향을 미치는 설명변수, 독립변수 x1, x2, x3…

회귀모형 선택의 2가지 원칙

- y 영향을 미칠 있는 모든 설명변수 x들을 y 값을 예측하는데 참여시킴

- 가능한 범위내에서 적은 수의 설명변수 포함, x 많아지면 관리하는게 노력이 필요함

서로 이율배반적인 원칙으로 타협이 이루어져야함, 적절한 설명변수 선택이 중요

 

모든 가능한 조합의 회귀분석

모든 가능한 독립변수들의 조합에 대해 회귀모형 고려해 AIC, BIC 기준으로 적합한 모형 선택

- AIC : k 모수의 개수 가장 작은 값을 갖는 모형


- BIC : n 자료개수의 차이, 가장 작은 값을 갖는 모형


 

단계적 변수선택

- 전진선택법 : 중요하다고 생각되는 설명변수부터 차례로 추가

가장 제곱합의 기준으로 가장 설명을 잘하는 변수를 고려하여 유의하면 추가, 아니면 중단

- 후진제거법 : 모든 후보를 포함한 상태로 출발하여 제곱합의 영향이 적은 변수부터 제거

이상 유의하지 않은 변수가 없을 때까지 설명변수 제거하고 모형 선택

- 단계별방법 : 전진선택법에 의해 추가하며 변수에 기인해 기존 변수 중요도가 약화되면 변수 제거

단계별로 추가 또는 제거되는 변수의 여부를 검토해 이상 없을 중단

 

Step(lm(종속변수~설명변수, 데이터세트), scope=list(lower=~1, upper=~설명변수), direction="선택법")

- lm : 회귀분석

- scope : 고려할 변수의 범위 설정

- direction : 변수 선택방법, forward, backward, both

 

3 다변량 분석

 

1. 상관분석

데이터 안의 변수 간의 관계

상관계수 : 상관관계를 알아보기 위한 계수

- 피어슨 상관계수 : 등간척도 이상으로 측정되는 변수간의 상관관계

- 스피어만 상관계수 : 서열척도인 변수들의 상관관계

 

양수일 때는 x 증가 하면서 y 증가하나, 음수일 때는 x 증가면 y 감소


 

1) 피어슨 상관계수

공분산의 크기는 X, Y 단위에 따라 영향을 받음


, 이고 X Y 독립이면 

 

cor : 두변수의 상관계수를 파악

Hmisc 패키지의 rcorr 함수 사용 : 모든 변수들 사이의 상관계수와 H0 : 대한 p-value 출력

rcorr(as.matrix(데이터세트), type="pearson")

 

cov : 공분산

 

2) 스피어만 상관계수

비선형적인 상관관계를 나타낼 있음, 변수를 단조 증가함으로 다른 변수에 나타나는 정도

변수를 모두 순위로 변환시킨 , 순위 사이의 피어슨 상관계수로 정의

     : x 순위 : y 순위

rcorr(as.matrix(데이터세트), type="spearman")

 

2. 다차원 척도법

여러 대상 간의 거리가 주어져 있을 , 동일한 상대적 거리를 가진 실수공간의 점들로 배치시키는 방법

자료들의 상대적 관계를 이해하는 시각화 방법의 근간

특정변수들의 관측치는 없어도 개체간의 유사성에 의한 자료를 사용하여 산점도 표현 가능

 

cmdscale(데이터세트) : 거리를 2차원으로 계산하여 공간상에 표현

 

3. 주성분 분석

상관관계가 있는 고차원 자료를 자료의 변동을 최대한 보존하는 저차원 자료로 변환시는 방법

자료의 차원을 축약

주성분들은 서로 상관관계가 없고, 분산의 합은 변수들의 합과 같음

희생되는 정보가 가장 적은 방향으로 결정

 

princomp(데이터세트, cor=TRUE) : cor=TRUE 상관계수 행렬, cor=F 공분산행렬

→ summary, loadings(가중치, 주성분들의 로딩 벡터) 결과 확인 가능

 

주성분 개수 선택법

- 스크리 그림(Scree plot) : 주성분의 분산의 크기를 그림으로 표현

주성분 분산의 감소가 그래프상 급격히 줄면 미미한 지점에서 개수 산정

- 분산의 비율 70~90% 사이가 되는 주성분의 개수 선택

 

biplot : 변수의 화살표 방향이 비슷하고, 주성분과 평행하면 영향력이

 

4 시계열 예측

 

1. 정상성

시계열 자료 : 시간의 흐름에 따라서 관측된 데이터

정상성 : 시점에 상관없이 시계열의 특성이 일정하다는 , 시계열 분석은 정상성을 만족 해야함

평균이 일정하다

분산이 시점에 의존하지 않는다.

공분산은 단지 시차에 의존하고 시점 자체에는 의존 하지 않는다.

하나라도 만족하지 못할 경우 : 비정상 시계열 (대부분의 시계열자료는 비정상임)

 

정상성을 만족하는지 판단하는 과정

시계열 자료의 그림 파악

자료의 이상점과 개입 파악

정상성 만족 여부와 개략적인 추세 유무 관찰

이상점 이상점 제거, 개입 회귀분석 수행

추세를 보이는(평균이 일정하지 않으면) 차분 진행 : 시점의 자료값 - 시점의 자료값

여러시점 전의 자료를 빼는 것을 계절 차분, 계절성을 가진 비정상 시계열은 계절 차분 사용

시간에 따라 분산이 일정하지 않으면 변환 진행

 

2. 시계열 모형

 

1) 자기회귀 모형(AR모형) AP(p)

시점의 자료가 p 시점 전의 유한개의 과거 자료로 설명 있음

시점의 시계열 자료에 번째 자료까지 영향을 주는지 알아내야

과거 1 시점 이전 자료만 영향 주면 1 자기회귀모형, AP(1)모형

 

백색잡음과정 : 대표적 정상 시계열, 시계열 분석에서 오차항 의미

독립이고 같은 분포를 따르며 평균이 0이고 분산이 확률변수

 

모형식별을 위해서는 자기상관함수(ACF), 부분자기상관함수(PACF) 이용

ACF 시차가 증가함에 따라 점차 감소, PACF p+1시차 이후 급격히 감소하여 절단된 형태


 

2) 이동평균모형(MA모형) MA(p)

시계열 자료를 모형화

시점 자료를 유한개의 백색잡음의 선형결합으로 표현 되어있기 때문에 항상 정상성 만족 가정 불필요

1 이동평균모형, MA(1) : 가장 간단한 이동평균모형, 같은 시점의 백색잡음 + 바로 시점의 백색잡음

 

PACF 시차가 증가함에 점차 감소, ACF p+1 시차 이후 절단된 형태


 

3) 자기회귀누적이동평균모형(ARIMA 모형)

대부분의 많은 시계열 자료, 기본적으로 비정상 시계열 모형

차분이나 변환을 통해 AR, MA, ARMA 모형으로 변환

ARIMA(p, d, q) :  차수 p = AR모형,  p = 0 → IMA(d,q)모형 → d 차분하면 MA(q)모형

    차수 d = ARMA모형, d = 0 → ARMA(p,q)모형, 정상성 만족

    차수 q = MA 모형, q=0 → ARI(p,d)모형 → d 차분하면 AR(p)모형

 

diff(데이터세트, differences=n) : n 차분, 그림으로 확인해야함

acf(데이터세트, lag.max=n) 자기상관함수 분석, n 적절한 설정 필요

pacf(데이터세트, lag.max=n) 부분자기상관함수 분석

forecast 패키지의 auto.arima(데이터세트) 함수 사용하여 적절한 모형 확인

arima(데이터세트, order=c(p,d,q)) 시계열 자료 결정 forecast 함수로 예측 자료 생성

 

4) 분해시계열

시계열에 영향을 주는 일반적인 요인을 시계열에서 분리해 분석하는 방법

추세요인 : 자료가 어떤 특정한 형태를 취할 , 추세에 따르는 경우, T

계절요인 : 고정된 주기에 따라 자료가 변화할 경우, 요일, , 분기, 변화, S

순환요인 : 알려지지 않은 주기를 가지고 자료가 변화할 , C

불규칙요인 : 3가지 요인이 아닌 회귀분석에서 오차에 해당하는 요인, I

구성요인을 정확하게 분리하는 것이 중요, 이론적 약점 존재

decompose(데이터세트) : 4가지 요인 분석 가능


1 R 기초

- R 장점 : 오픈소스, 가장 빠르게 발전, 보급됨

 

SAS

SPSS

R

프로그램 비용

유료, 고가

유료, 고가

오픈소스

설치용량

대용량

대용량

적음

다양한 모듈 지원 비용

별도 구매

별도 구매

오픈소스

최근 알고리즘 기술 반영

느림

다소 느림

매우 빠름

학습자료 입수의 편의성

유로 도서 위주

유로 도서 위주

공개 논문 자료 많음

질의를 위한 공개 커뮤니티

NA

NA

매우 활발

 

1. 분석 환경의 이해

 

1) 통계 패키지 R

- 복잡한 계산이나 시각화 기법을 사용할 있는 무료 소프트웨어

- 오픈 소스 무료 소프트웨어, 사용자 직접 제작한 패키지 사용 가능, 상용 소프트웨어 만큼 강력한 시각화

 

2) R 역사

- 'S' : 1975 "to turn ideas into software, quickly and faithfully." 통계 프로그램 C언어

- R : 1993 뉴질랜드 'Scheme' 개념의 다른 S 언어 프로그램

- 자유 소프트웨어 재단의 일반 공증 사용 허가서로 인한 무료 공개, S언어 사용 가능, Unix계역

 

3) R 특징

. 그래픽 처리

- 고해상도의 그래프와 그림, 매우 세부적인 부분까지 사용자 지정 가능, 빠른 처리시간

. 데이터 처리 계산 능력

- 백터, 행렬, 배열, 데이터 프레임, 리스트 등의 다양한 형태의 데이터 구조 지원

- 복잡한 구조 내의 개별 데이터에 접근하는 절차 간단 데이터 핸들링 간편

. 패키지

- 패키지 : 스스로 개발하는 새로운 함수, 특정 분석 기법을 사용

- 확장성 → 최근 이론이나 기법 사용하기 용이, 그래픽 처리 용이(고급 기능 사용가능)

 

4) R Studio

- 통합개발환경(IDE), 메모리에 저장되어 있는 변수 사용, 수정 용이

- 스크립트 문서화, 무료로 제공되는 운영체제

 

2. 기본 사용법

 

1) R R Studio 구성

. R 구성


① 메뉴 바 : R에서 사용할 수 있는 다양한 기본 기능들이 나열되

② 단축 아이콘 툴바  : 자주 사용하는 기능들의 단축 아이콘이 나열

 좌측부터 순서대로 스크립트 열기, 작업공간 불러오기, 작업공간 저장하기, 복사, 붙여넣기,  복사 후 붙여넣기, 현재 수행 중인 연산 중단, 인쇄하기

③ R 콘솔 : 콘솔은 R 명령어가 입력되고, 결과가 출력되는 R의 핵심적인 작업공간이다.

④ 스크립트 창 : 콘솔 창에서는 한 번에 한 줄의 명령어를 입력하고 바로 실행하여야 하기 때문에

긴 프로그래밍 코드를 작성하는 경우 사용하기가 불편하다.

이런 경우 별도로 실행시킬 수 있는 스크립트 창을 열어 여러 줄의 코드를 한 번에 작성하고

한 줄 씩 실행시킬 수 있으며 스크립트 창에 입력된 코드를 별도의 스크립트 파일로 저장할 수 있다 

 

. R Studio 구성


① 스크립트 창: 기존의 R 에서 별도로 열 수 있는 스크립트 창과 동일한 기능을 한다.

R에서 작성하여 저장한 스크립트를 불러올 수 있으며 여러 스크립트를 동시에 열어 작업할 수도 있다

② R 콘솔: 기존의 R에서 볼 수 있었던 콘솔창과 동일하다.

R 명령어를 실행한 결과가 콘솔 창에 나타나며 콘솔에 명령어를 입 력하여 실행할 수도 있다.

이 경우 한 줄 씩의 코드만 입력할 수 있다는 점에 유의하자.

③ 환경 및 히스토리 : 랩을 통해 환경 설정과 히스토리를 살펴볼 수 있다.

환경 창에서는 현재 실행중인 R 프로젝트에서 선언된 변수, 함수, 데이터셋 등의 정보를 살펴볼 수 있다.

히스토리 창에서는 현재까지 정상적으로 실행한 명령어들이 나열된다.

④ 현재 문서들이 저장되는 폴더나 R을 이용해 그린 그림들

 불러온 패키지들과 도움말 등을 별도의 한 영역에서 확인할 수 있다.

ctrl + Enter = run 버튼

 

2) R 패키지 설치하기

. 상단 메뉴바의 패키지 툴에서 패키지 설치하기 클릭

. 명령어로 패키지 설치하기

> install.packages("패키지이름")

불러오기

> library(패키지 이름)

 

3) R 도움말 (help)

- 해당 함수에 대한 기본적인 설명, 인수 설명, 옵션 목록 예제 : ?, help

> ?par

> help(par)

 

4) R 언어와 문법

- # : 주석

 

. R 데이터 구조

 

벡터

하나의 스칼라값, 하나 이상의 스칼라 원소를 갖는 단순한 형태 집합

원소 : 숫자, 문자, 논리 연산자 숫자는 숫자, 문자는 문자 벡터가

- 논리 연산자 → 숫자로 사용하려면 TRUE = 1, FALSE = 0

- 대소문자 구분하기에 모든 글자는 대문자로 기입

명령어 : C 'concentration(연결)'

> x = c(1, 20, 23, 40)

> y = c("사과", "바나나", "오렌지")

> z = c(TRUE, FALSE, TRUE)

> x <- c(1, 20, 23, 40)

> y <- c("사과", "바나나", "오렌지")

> z <- c(TRUE, FALSE, TRUE)

 

벡터와 벡터의 결합 : 숫자와 문자 벡터가 합쳐지면 문자형 벡터로 인식됨

> x <- c(1, 20, 23, 40)

> y <- c("사과", "바나나", "오렌지")

> xy <- c(x,y)

> xy
[1] "1"      "20"     "23"     "40"     "사과"  "바나나" "오렌지"

 

행렬

행과 열을 갖는 m * n 형태의 직사각형

명령어 : matrix(데이터를 묶은 벡터, ncol() or nrow() 옵션, byrow=T)

> mx = matrix(c(1,2,3,4,5,6), ncol=2)
> mx
     [,1] [,2]
[1,]    1    4
[2,]    2    5
[3,]    3    6
> mx = matrix(c(1,2,3,4,5,6), ncol=2, byrow = T)
> mx
     [,1] [,2]
[1,]    1    2
[2,]    3    4
[3,]    5    6

 

벡터 합쳐서 새로운 행렬 생성 가능

rbind : 기존의 행렬에 행을 추가하는 형태

cbind : 기존의 행렬에 열을 추가하는 형태

> r1=c(10,20)
> c1=c(20,20,20)
> rbind(mx,r1)
   [,1] [,2]
      1    2
      3    4
      5    6
r1   10   20

> cbind(mx,c1)
             c1
[1,] 1 2 20
[2,] 3 4 20
[3,] 5 6 20

명령어들을 이용해 데이터 프레임을 합치면 데이터 프레임 형태로 합침

 

데이터 프레임

행렬과 유사한 2차원 목록 데이터 구조, 행렬과 다르게 열이 서로 다른 타입 가질 있음

다루기가 쉽고 정보를 많이 담아 가장 많이 쓰임

명령어 : data.frame 여러 개의 벡터를 하나의 프레임으로 합침

> income = c( 100, 200, 150, 300, 900)
> car = c("kia", "hyundai", "kia", "toyota", "lexus" )
> marriage = c(FALSE, FALSE, FALSE, TRUE, TRUE )
> mydat = data.frame(income, car, marriage)
> mydat
  income     car marriage
1    100     kia    FALSE
2    200 hyundai    FALSE
3    150     kia    FALSE
4    300  toyota     TRUE
5    900   lexus     TRUE

 

. 외부 데이터 불러오기

 

CSV파일 불러오기

명령어 : read.table(header=T 줄을 변수명으로 지정, sep="," 쉼표로 구성된 파일임을 지정)

     read.csv 사용해도 가능 sep="," 구분자 표시 필요 없음

data1 <- read. table("D:\\DATA\\example.csv", header=T, sep=".")

\ 대신 \\ 사용함을 유의,  / 사용해도 무관

 

txt파일 불러오기

명령어 : read.table, sep="," 사용하지 않으면 텍스트 파일 불러오게됨

data2 < - read.table("D:\\DATA\\example.txt")

 

엑셀 파일 불러오기

- 엑셀을 csv 파일 형식으로 변경하여 불러오기

- RODBC 패키지 불러와서 엑셀 파일 가능하도록

> library(RODBC) # 패키지 열기

> new < - odbcConnectExcel(" c:\\data\\mydata" ) # 엑셀파일의 경로입력

> yourdata <- sqlFetch(new, "Sheet1") # 엑셀파일의 워크시트(sheet) 이름 입력

> close( new)

확장자를 생략하고 작성, 워크시트 대소문자 구분

 

. R 기초 함수

 

수열 생성하기

숫자를 반복해서 생성해줌

rep : 번째 인수 만큼 두번째 인수만큼 반복

> rep(1,3)
[1] 1 1 1
> rep(2:5, 3)
 [1] 2 3 4 5 2 3 4 5 2 3 4 5

 

seq : 번째 인수부터 1 증가하여 두번째 인수까지 수열 생성

 by = n 옵션 추가하여 n 증가 가능

 length = m 옵션 추가 전체 범위의 개수가 m 되도록 생성

> seq(1,3)
[1] 1 2 3
> 1:3                #seq 같은 방법
[1] 1 2 3
> seq(1, 11, by=2)
[1]  1  3  5  7  9 11
> seq(1, 11, length=6)
[1]  1  3  5  7  9 11
> seq(1, 11, length=8)
[1]  1.000000  2.428571  3.857143  5.285714  6.714286 8.142857  9.571429 11.000000

 

기초적인 수치 계산

사칙연산

> a=1:10
> a
 [1]  1  2  3  4  5  6  7  8  9 10
> a+a
 [1]  2  4  6  8 10 12 14 16 18 20
> a-a
 [1] 0 0 0 0 0 0 0 0 0 0
> a*a
 [1]   1   4   9  16  25  36  49  64  81 100
> a/a
 [1] 1 1 1 1 1 1 1 1 1 1

 

기본적은 벡터 생성 전치행렬 t(a) 1 3열로 변경하여 행렬 가능

명령어 : %*%

> a=c(2,7,3)
> a
[1] 2 7 3
> t(a)   #전치행렬
     [,1] [,2] [,3]
[1,]    2    7    3
> A=a%*%t(a)
> A
     [,1] [,2] [,3]
[1,]    4   14    6
                =  2,7,3 * 2       
[2,]   14   49   21
              =  2,7,3 * 7
[3,]    6   21    9
                =  2,7,3 * 3

 

행렬 * 연산 실행하면 단순 스칼라 결과

> mx=matrix(c(23,41,12,35,67,1,24,7,53), nrow=3)
> mx
     [,1] [,2] [,3]
[1,]   23   35   24
[2,]   41   67    7
[3,]   12    1   53
> 5*mx
     [,1] [,2] [,3]
[1,]  115  175  120
[2,]  205  335   35
[3,]   60    5  265

 

행렬의 역행렬 명령어 : solve

> solve(mx)
            [,1]        [,2]        [,3]
[1,] -0.35743822  0.18466969  0.13746848
[2,]  0.21069087 -0.09389813 -0.08300555
[3,]  0.07695411 -0.04004034 -0.01069087

 

평균 mean, 분산 var, 표준편차 sd

> a = 1:10
> mean(a)
#평균
[1] 5.5
> var(a) #분산
[1] 9.166667
> sd(a) #표준편차
[1] 3.02765

 

sum, 중앙값 median, 자연로그 log

> sum(a) #
[1] 55
> median(a) #중앙값
[1] 5.5
> log(a) #자연로그
 [1] 0.0000000 0.6931472 1.0986123 1.3862944 1.6094379
 [6] 1.7917595 1.9459101 2.0794415 2.1972246 2.3025851

 

서로 다른 벡터에 대한 공분산 cov, 상관계수 cor

> b=log(a) #자연로그값 생성
> cov(a,b)
#공분산
[1] 2.112062
> cor(a,b) #상관계수
[1] 0.9516624

 

summary 함수 : 사분위수, 최소값, 최대값, 중앙값, 평균

> summary(a)
   Min. 1st Qu.  Median    Mean  3rd Qu.    Max.
   1.00    3.25    5.50  
        5.50     7.75   10.00

 

. R 데이터 핸들링

: R 객체지향 언어, 변수내 요소 참조 직관적

 

벡터형 변수

문자형 변수를 [ n 번째] 지정해주면 해당하는 값만 불러옴

[ -n번째 ] 해당 원소만 제외하고 값을 불러옴

여러 원소 불러오고자 때는 c 명령어 사용하여 가능

> b[2] # 2번째 값만
[1] "b"
> b[-2] # 2번째 값만 빼고
[1] "a" "c" "d" "e"
> b[c(2,3)] # 2,3 번째 원소만 불러올때 C 명령어 사용
[1] "b" "c"

 

행렬/데이터 프레임 형태의 변수

데이터 프레임에 대해서도 특정 원소/요소 참조 가능

[ m번째, n번째 ] 값을 지정하거나 [-m, ] 또는 [ ,-n] 제외 가능

다만, [-m,-n]으로 지정하여 하나의 원소 제외 불가능

하나의 숫자 아니라 여러 숫자형 벡터도 적용 가능

> mydat[3,2] #3 2열의 값을 불러옴
[1] kia
Levels: hyundai kia lexus toyota
> mydat[,2] #2열의 값을 불러옴
[1] kia     hyundai kia     toyota  lexus 
Levels: hyundai kia lexus toyota
> mydat[4,] # 4행의 값을 불러옴
  income    car marriage
4    300 toyota     TRUE
> mydat[-3,] # 3행의 값만 빼고 불러옴
  income     car marriage
1    100     kia    FALSE
2    200 hyundai    FALSE
4    300  toyota     TRUE
5    900   lexus     TRUE
> mydat[,-2] # 2열의 값만 빼고 불러옴
  income marriage
1    100    FALSE
2    200    FALSE
3    150    FALSE
4    300     TRUE
5    900     TRUE

 

. 반복 구문과 조건문

 

for 반복 구문

for 조건 하에 i 값을 하나씩 증가시켜 { } 안의 구문을 반복 실행

> a = c() # a 벡터 생성
> for (i in 1:9){
+   a[i]
= i*i       #1~9까지의 곱을 이루게

+ }

> a
[1]  1  4  9 16 25 36 49 64 81

 

조건 : 1~100까지 i 1 증가하여 100 반복하여 더하기

> isum = 0
> for (i in i:100){
+   isum = isum+i
+ }
> cat("1~100 sum = ", isum, "
\n")
1~100 sum =  5014

 

while 반복 구문

for 구문과 다르게 괄호안의 조건이 만족 , 중괄호 안의 구문 반복

for 구문은 반복 횟수를 정하는 반면, while 구문은 정해지 않음

> x=1
> while(x<5){
+   x=x+1
+   print(x)
+ }
[1] 2
[1] 3
[1] 4
[1] 5

 

if~else 조건문

if 조건의 특정 조건이 만족되는 경우 구문 실행, 만족 안되면 else 이하의 조건 부여

> StatScore = c(88, 90, 78, 84, 76, 68, 50, 48, 33, 70 , 48, 66, 88, 96, 79, 65, 27, 88, 96,
+               33, 64, 48, 77, 18, 26, 44, 48, 68, 77 , 64, 88, 95, 79, 88, 49, 30 , 29, 10, 49, 88)
> over70 = rep(0,40)
          # 0 40개인 숫자 벡터
> for (i in 1:40) {
  
+ if(StatScore[i]>=70) over70[i]=1
     #70 이상이면 i 값을 1 변경 나머지는 0으로
+ else over70[i]=0 }
> over70
 [1] 1 1 1 1 1 0 0 0 0 1 0 0 1 1 1 0 0 1 1 0 0 0 1 0 0 0
[27] 0 0 1 0 1 1 1 1 0 0 0 0 0 1
> sum(over70)
[1] 18

 

 

. 사용자 정의 함수

function : 사용자가 직접 복잡한 함수 구성 사용 가능

함수 이름 = function(x,y,z) 으로 인수 작성

> addto = function(a){
+   isum=0
+   for(i in 1:a){
+     isum=isum+i
+   }
+   print(isum)
+ }
> addto(100)
[1] 5050
> addto(50)
[1] 1275

 

 

. 기타 유용한 기능들

 

paste

- 입력받은 문자열을 하나로 붙여줌

- 'sep=' 옵션을 통해 붙이고자 하는 문자열 사이 구분자를 삽입

> number=1:10
> alphabet=c("a","b","c")
> paste(number, alphabet)
 [1] "1 a"  "2 b"  "3 c"  "4 a"  "5 b"  "6 c"  "7 a"
 [8] "8 b"  "9 c"  "10 a"
> paste(number, alphabet, sep = " to the ")
 [1] "1 to the a"  "2 to the b"  "3 to the c"
 [4] "4 to the a"  "5 to the b"  "6 to the c"
 [7] "7 to the a"  "8 to the b"  "9 to the c"
[10] "10 to the a"

 

substr

- 주어진 문자열에서 특정 문자열 추출

> substr("BigDataAnalysis", 1, 4)
[1] "BigD"
> country=c( "Korea" , "Japan" , "China" , "Singapore" , "Russia" )
> substr(country, 1,3)
[1] "Kor" "Jap" "Chi" "Sin" "Rus"

 

자료형 데이터 구조 변환

- 주어진 객체의 데이터 구조를 다른 구조로 변경 가능

 

as.data.frame(x) : 데이터 프레임 형식으로 변환

as.list(x) : 리스트 형식으로 변환

as.matrix(x) : 형렬 형식으로 변환

as.matrix 데이터 프레임을 행렬로 변환 가능, 숫자는 문자 강제변환

as.vector(x) : 벡터 형식으로 변환

as.factor(x) : 팩터 형식으로 변환

as.integer(x) : 정수형 벡터 변환

as.numeric(x) : 수치형 벡터로 변환

as.character(x) : 문자형 벡터로 변환

 

논리형 변환

as.numeric(TRUE / FALSE) = FALSE 0, TRUE1

as.logical(x) : 0이면 FALSE, 0 아닌 모든 값을 TRUE

> as.numeric(FALSE)
[1] 0
> as.numeric(TRUE)
[1] 1
> as.logical(0)
[1] FALSE
> as.logical(0.45)
[1] TRUE

 

문자열을 날짜로 변환

Data 객체 변환

as.Data() : 기본으로 yyyy-mm-dd 가정함, 다른 형으로 변경 'format='옵션활용

→ format="%m/%d/%Y" 형으로 변경 사용 가능, Y 대문자

Sys.Data() : 현재 날짜를 변환

> as.Date("2015-01-13")
[1] "2015-01-13"

> as.Date("01/13/2015",format="%m/%d/%Y")
[1] "2015-01-13"

> Sys.Date()
[1] "2018-08-22"

 

날짜를 문자열로 변환

format(데이터, 포맷)

as.character()

> format(Sys.Date())     #아래와 같은 형식으로 나타남, 형식 변환을 주고 싶음 포맷 안에 포맷 기준작성
[1] "2018-08-22"
> as.character(Sys.Date())
[1] "2018-08-22"
> format(Sys.Date(),format="%m/%d/%Y")
[1] "08/22/2018"

 

> format(Sys.Date(),'%a')   #요일
[1] "수"
> format(Sys.Date(),'%b')   #
[1] "8"
> format(Sys.Date(),'%m')   #, 두자리 숫자
[1] "08"
> format(Sys.Date(),'%d')   #, 두자리 숫자
[1] "22"
> format(Sys.Date(),'%y')    #연도, 두자리 숫자
[1] "18"
> format(Sys.Date(),'%Y')    #연도, 네자리 숫자
[1] "2018"

 

5) 그래픽 기능

낮은 단계 그래픽 : 설정, 색변경

높은 단계 그래픽 : 함수들을 이용해서 하나의 그래프 구현 패키지 활용 가능

R 스튜디오에서는 Plot 탭에서 확인 가능

 

. 산점도 그래프

plot(x,y) 또는 plot(y ~ x)

평면에 점을 찍어 표현

> height = c( 170,168,174, 175,188,165,165,190 ,173, 168,159,170,184,155,165)
> weight = c(68,65,74,77 ,92 ,63,67 ,95,72,69,60 ,69,73, 56,55 )
> plot(height, weight)

> plot(weight~height)


 

 

. 산점도 배열

pairs(변수, main = 최상단 제목표기, pch= 찍히는 점의 모양, bg=백그라운드 색상)

각각의 변수들에 대해서 각각의 산점도를 한눈에 있도록 행렬

> pairs(iris[1:4], main="Andreson's Iris Data",

pch=21, bg=c("red", "green3", "blue")[unclass(iris$Species)])

 


 

. 히스토그램과 상자그림

hist(벡터값, prob=T 상대도수 표시)

boxplot(벡터값)

> hist(StatScore)
> hist(StatScore, prob=T)
#상대도수 표시, 중간 그래프
> boxplot(StatScore
)

 


 

2 데이터 마트

 

모델링 : 데이터 마이닝에서 다양한 분석기법을 적용해 모델을 개발하는 과정

모델링 도구 : DB에서 직접 값을 가져다 변형할 있는 기능 제공

모델링 분석에 앞서 수집, 변형 과정 필요 정리된 데이터 개발하면 신속한 모델링 가능

데이터 마트 : 데이터의 부분, 특정 사용자가 관심 갖는 데이터를 담은 작은 규모의 데이터 웨어하우스

사용자의 요구 항목에 따라 체계적으로 분석하기 위한 다양한 정보를 담은 경영 활동을 도울 시스템

데이터 웨어하우스와는 사용자의 기능 제공 범위를 기준으로 구분함(데이터 웨어하우스는 정부기간)

 

1. R reshape 활용한 데이터 마트 개발

데이터 셋에 대한 일종의 변형 필요 , 데이터 재정렬 기법이 필요

밀집화(aggregation) : 복잡한 데이터를 축소하거나 재정렬, 엑셀 - 피벗테이블, 정보 손실 발생

reshape : 정보를 그대로 유지하는 것이 차이점

- melt : id 있는 변수를 기준으로 변수를 variable 이름의 데이터를 만들고, value 저장하여 표준형식 변환

- cast : melt 데이터를 ~ 이용해 y, x측의 변수 값으로 표시

> install.packages("reshape")
Installing package into ‘C:/Users/YGL_EDU/Documents/R/win-library/3.5’
(as ‘lib’ is unspecified)
trying URL '
https://cran.rstudio.com/bin/windows/contrib/3.5/reshape_0.8.7.zip'
Content type 'application/zip' length 168728 bytes (164 KB)
downloaded 164 KB

package ‘reshape’ successfully unpacked and MD5 sums checked

The downloaded binary packages are in
        C:\Users\YGL_EDU\AppData\Local\Temp\RtmpycHm6F\downloaded_packages
> library(reshape)

> data("airquality")
> head(airquality)
  Ozone Solar.R Wind Temp Month Day
1    41     190  7.4   67     5   1
2    36     118  8.0   72     5   2
3    12     149 12.6   74     5   3
4    18     313 11.5   62     5   4
5    NA      NA 14.3   56     5   5
6    28      NA 14.9   66     5   6
> head(airquality, 10)
   Ozone Solar.R Wind Temp Month Day
1     41     190  7.4   67     5   1
2     36     118  8.0   72     5   2
3     12     149 12.6   74     5   3
4     18     313 11.5   62     5   4
5     NA      NA 14.3   56     5   5
6     28      NA 14.9   66     5   6
7     23     299  8.6   65     5   7
8     19      99 13.8   59     5   8
9      8      19 20.1   61     5   9
10    NA     194  8.6   69     5  10
> names(airquality) #변수명(컬럼명) 확인
[1] "Ozone"   "Solar.R" "Wind"    "Temp"    "Month" 
[6] "Day"   
> names(airquality) = tolower(names(airquality)) # 변수명 대소문자 변경
> names(airquality)
[1] "ozone"   "solar.r" "wind"    "temp"    "month" 
[6] "day"   

 

> aqm = melt(airquality, id=c("month", "day"), na.rm=TRUE)
> aqm
    month day variable value
1       5   1    ozone  41.0
2       5   2    ozone  36.0
3       5   3    ozone  12.0
4       5   4    ozone  18.0
5       5   6    ozone  28.0
6       5   7    ozone  23.0

 

> a <- cast(aqm, day ~ month ~ variable)
> a
, , variable = ozone

month
day    5  6   7   8  9

 

 

, , variable = solar.r

month
day    5   6   7   8   9
  1  190 286 269  83 167

 

, , variable = wind

month
day     5    6    7    8    9
  1   7.4  8.6  4.1  6.9  6.9

 

, , variable = temp

month
day   5  6  7  8  9
  1  67 78 84 81 91

 

> b <- cast(aqm, month ~ variable, mean) #mean 함수 적용하여 평균값 산출
> b
  month    ozone  solar.r      wind     temp
1     5 23.61538 181.2963 11.622581 65.54839
2     6 29.44444 190.1667 10.266667 79.10000
3     7 59.11538 216.4839  8.941935 83.90323
4     8 59.96154 171.8571  8.793548 83.96774
5     9 31.44828 167.4333 10.180000 76.90000

 

> c <-cast(aqm, month~ . |variable, mean) # | 이용하여 산출물을 분리해서 표시
> c
$`ozone`
  month    (all)
1     5 23.61538
2     6 29.44444
3     7 59.11538
4     8 59.96154
5     9 31.44828

$solar.r
  month    (all)
1     5 181.2963
2     6 190.1667
3     7 216.4839
4     8 171.8571
5     9 167.4333

$wind
  month     (all)
1     5 11.622581
2     6 10.266667
3     7  8.941935
4     8  8.793548
5     9 10.180000

$temp
  month    (all)
1     5 65.54839
2     6 79.10000
3     7 83.90323
4     8 83.96774
5     9 76.90000

> d <- cast(aqm, month ~ variable, mean, margins = c("grand_row", "grand_col")) # margin 총계 구하기
> d
  month    ozone  solar.r      wind     temp    (all)
1     5 23.61538 181.2963 11.622581 65.54839 68.70696
2     6 29.44444 190.1667 10.266667 79.10000 87.38384
3     7 59.11538 216.4839  8.941935 83.90323 93.49748
4     8 59.96154 171.8571  8.793548 83.96774 79.71207
5     9 31.44828 167.4333 10.180000 76.90000 71.82689
6 (all) 42.12931 185.9315  9.957516 77.88235 80.05722

 

> e <- cast(aqm, day ~ month, mean, subset=variable=="ozone") # 오존에 대한 결과값만 subset 으로 확인
> e
   day   5   6   7   8   9
1    1  41 NaN 135  39  96
2    2  36 NaN  49   9  78
3    3  12 NaN  32  16  73
4    4  18 NaN NaN  78  91

 

> f <- cast(aqm, month ~ variable, range) # range 최소 X1, 최대 X2 동시에 표시해
> f
  month ozone_X1 ozone_X2 solar.r_X1 solar.r_X2 wind_X1 wind_X2 temp_X1
1     5        1      115          8        334     5.7    20.1      56
2     6       12       71         31        332     1.7    20.7      65

 

 

2. sqldf 이용한 데이터 분석

표준 SQL 사용되는 문장 처리 가능, 특수문자는 ' ' 묶어줘서 사용 가능

 

> install.packages("sqldf")
Installing package into ‘C:/Users/YGL_EDU/Documents/R/win-library/3.5’
(as ‘lib’ is unspecified)
trying URL '
https://cran.rstudio.com/bin/windows/contrib/3.5/sqldf_0.4-11.zip'
Content type 'application/zip' length 78176 bytes (76 KB)
downloaded 76 KB

package ‘sqldf’ successfully unpacked and MD5 sums checked

The downloaded binary packages are in
        C:\Users\YGL_EDU\AppData\Local\Temp\RtmpycHm6F\downloaded_packages
> library(sqldf)
필요한 패키지를 로딩중입니다: gsubfn
필요한 패키지를 로딩중입니다: proto
필요한 패키지를 로딩중입니다: RSQLite
Warning message:
패키지 ‘sqldf’는 R 버전 3.5.1에서 작성되었습니다
> data("iris")
> sqldf("select*from iris")
    Sepal.Length Sepal.Width Petal.Length Petal.Width    Species
1            5.1         3.5          1.4         0.2     setosa
2            4.9         3.0          1.4         0.2     setosa

> sqldf("select*from iris limit 10")    # 10개만 보여주기 가능 head 에서 숫자 지정해서 보여주기와 같은 기능
   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1           5.1         3.5          1.4         0.2  setosa
2           4.9         3.0          1.4         0.2  setosa
3           4.7         3.2          1.3         0.2  setosa
4           4.6         3.1          1.5         0.2  setosa
5           5.0         3.6          1.4         0.2  setosa
6           5.4         3.9          1.7         0.4  setosa
7           4.6         3.4          1.4         0.3  setosa
8           5.0         3.4          1.5         0.2  setosa
9           4.4         2.9          1.4         0.2  setosa
10          4.9         3.1          1.5         0.1  setosa

> sqldf("select count(*) from iris where Species like 'se%'") # like 사용시  ' '작은 따옴표 붙여서 사용
  count(*)
1       50

 

3. plyr

데이터를 분리하고 처리한 다음, 다시 결합하는 데이터 처리 기능 제공

- apply : 데이터와 출력변수를 동시에 배열로 치환하여 처리할 있도록 도와줌

- multi-core

 

d = 데이터 프레임(data.frame), a = 배열(array), l = 리스트(list)

 

입력되는 데이터 형태

 

데이터 프레임

리스트

배열

데이터 프레임

ddply

ldply

adply

리스트

dlply

llply

alply

배열

daply

laply

aaply

dlply = 데이터 프레임으로 들어와서 리스트 형태로 출력되는

 

> set.seed(1)  # 난수 생성시에 일정하게 고정 시키는 역할
> d = data.frame(year=rep(2012:2014, each = 6), count =round(runif(9,0,20)))
> print(d)
   year count
1  2012     5
2  2012     7
3  2012    11
4  2012    18
5  2012     4
6  2012    18
7  2013    19
8  2013    13
9  2013    13
10 2013     5
11 2013     7
12 2013    11
13 2014    18
14 2014     4
15 2014    18
16 2014    19
17 2014    13
18 2014    13

runif = 생성할 난수의 개수, 최소값, 최대값

 

> ddply(d, "year", function(x){
+   mean.count = mean(x$count)
  # 평균값
+   sd.count = sd(x$count)
             # 표준편차
+   cv = sd.count/mean.count
        # 변동계수
+   data.frame(cv.count=cv)
+ })
  year  cv.count
1 2012 0.5985621
2 2013 0.4382254
3 2014 0.3978489

 

> ddply(d, "year", summarise, mean.count = mean(count)) #summarise 새로 생긴 변수 값만 보여줌
  year mean.count
1 2012   10.50000
2 2013   11.33333
3 2014   14.16667
> ddply(d, "year", transform, total.count = sum(count)) #transform 계산시 사용된 변수도 함께 보여줌
   year count total.count
1  2012     5          63
2  2012     7          63
3  2012    11          63
4  2012    18          63
5  2012     4          63
6  2012    18          63
7  2013    19          68
8  2013    13          68
9  2013    13          68
10 2013     5          68
11 2013     7          68
12 2013    11          68
13 2014    18          85
14 2014     4          85
15 2014    18          85
16 2014    19          85
17 2014    13          85
18 2014    13          85

 

4. 데이터 테이블

데이터 프레임과 유사하지만, 보다 빠른 그룹화와 순서화, 짧은 문장 지원이 가능

64비트 RAM 충분히 많을 효율적

행번호가 : 으로 되어 있고 데이터 프레임에서 데이터 테이블 형식으로 쉽게 변환

데이터 프레임보다 데이터 테이블로 생성하는 것이 빠르고 자료를 검색에도 빠름(무조건 빠른것은 아님)

데이터 프레임이 벡터 검색 방식이고 데이터 테이블은 인덱스를 활용한 바이너리 검색 방법

system.time 으로 검색 속도 있음

 

> install.packages("data.table")
Installing package into ‘C:/Users/YGL_EDU/Documents/R/win-library/3.5’
(as ‘lib’ is unspecified)
trying URL '
https://cran.rstudio.com/bin/windows/contrib/3.5/data.table_1.11.4.zip'
Content type 'application/zip' length 1829590 bytes (1.7 MB)
downloaded 1.7 MB

package ‘data.table’ successfully unpacked and MD5 sums checked

The downloaded binary packages are in
        C:\Users\YGL_EDU\AppData\Local\Temp\RtmpycHm6F\downloaded_packages
> library(data.table)
data.table 1.11.4  Latest news: http://r-datatable.com

다음의 패키지를 부착합니다: ‘data.table’

The following object is masked from ‘package:reshape’:

melt

Warning message:
패키지 ‘data.table’는 R 버전 3.5.1에서 작성되었습니다

 

> DT = data.table(x=c("b","b","b","a","a"), v=rnorm(5)) #rnorm 정규분포에서 5 난수 생성
> DT
   x            v
1: b -1.539950042
2: b -0.928567035
3: b -0.294720447
4: a -0.005767173
5: a  2.404653389

> data(cars)
> head(cars)
  speed dist
1     4    2
2     4   10
3     7    4
4     7   22
5     8   16
6     9   10
> CARS <- data.table(cars)
> head(CARS)
   speed dist
1:     4    2
2:     4   10
3:     7    4
4:     7   22
5:     8   16
6:     9   10

> tables()      # 테이블의 크기, 용량에 대해서 있다.
   NAME NROW NCOL MB       COLS KEY
1: CARS   50  
       2      0   speed,dist   
2:   DT  
     5          2      0          x,v   
Total: 0MB

> sapply(CARS,class)
    speed      dist
"numeric" "numeric"

> DT[2,] #2번행 조회 DT[2] 로도 검색 가능
   x         v
1: b -0.928567
> DT[DT$x=="b"]
   x          v
1: b -1.5399500
2: b -0.9285670
3: b -0.2947204

> setkey(DT,x)    #키가 x 정해지고 정렬되었다.
> DT
   x            v
1: a -0.005767173
2: a  2.404653389
3: b -1.539950042
4: b -0.928567035
5: b -0.294720447
> tables()              #키가 x 정해짐을 있음
   NAME NROW NCOL MB       COLS      KEY
1: CARS 
      50     2      0    speed,dist   
2:   DT   
        5      2      0            x,v         x
Total: 0MB
> DT["b",]
   x          v
1: b -1.5399500
2: b -0.9285670
3: b -0.2947204

> DT["b",mult="first"]    # 첫번째 결과
   x        v
1: b -1.53995
> DT["b",mult="last"]   # 마지막 결과
   x          v
1: b -0.2947204

 

3 결측값 처리와 이상값 검색

 

1. 데이터 탐색

1) 데이터 기초 통계

head(테이블이름) : 앞선 6줄만 먼저 보여줌

head(테이블이름, n) : 앞선 n줄만 보여줌, 원하는 개수 넣을 있음

str(테이블이름) : 데이터의 구조를 파악 가능

summary(테이블이름) : 기초 통계량 확인, 최소값, 최대값, 사분위값, 평균값, 중위값, 범주형이면 빈도수

cov(테이블 내의 범위) : 공분산

cor(테이블 내의 범위) : 상관계수

선형 상관관계 강도 파악

 

2. 결측값 처리

결측값도 의미있는 경우가 있음, 어떻게 처리하느냐가 전체 작업속도에 영향을

결측값 처리 패키지 : Amelia II, Mice, mistools

결측값 : NA

불가능한값 : NaN (0으로 나누는 경우 )

결측값 여부 확인 : is.na

Amilia imputation 사용하면 효율적으로 데이터 결측값을 변경할 있음

 

> y <- c(1,2,3,NA)
> is.na(y)
    # 결측값 여부
[1] FALSE FALSE FALSE  TRUE

 

> mydata[mydata$v1==99, "v1"]<-NA     # 99 NA 변경할때

> mydata[!complete.cases(mydata),]       #넓은 범위의 결측값을 삭제할

 

 

> x<-c(1,2,NA,3)
> mean(x)
                    #결측값이 포함되어 있다면 결과는 NA
[1] NA
> mean(x, na.rm=T)    # 결측값을 제외하기
[1] 2

 

3. 이상값 검색

전처리를 어떻게 할지 결정할 , 부정사용방지 시스템에서 규칙을 발견할 사용

관련 알고리즘 : ESD(평균으로 표준편차 만큼 떨어진 ), MADM

일반적으로 사분위값으로 판단 주요 변수 특성 파악, 부정사용방지 프로젝트는 집중적으로 봐야함

 

a1 : 의도하지 않게 잘못 입력한 경우

a2 : 의도하지 않게 입력되었으나 분석 목적에 부합하지 않아 제거해야 하는 경우, 수작업을 거래 정보 입력

a3 : 의도하지 않은 현상이지만 분석에 포함해야 하는 경우, 고객 행동분석

b1 : 의도된 이상값, 사기(fraud)

→ a1, a2 bad data, a3, b1 이상값

 

- 상자그림으로 식별 가능

> x=rnorm(100)
> boxplot(x)
> x=c(x, 19, 28, 30)
  #임의의 결측값 넣어줌
> outwith=boxplot(x)
> outwith$out
           #결측값 확인 가능
[1] 19 28 30

 

 

 

 

- outliers 패키지 사용

outliers() : 평균과 가장 차이가 있는

> library(outliers)
> set.seed(1234)
> y=rnorm(100)
> outlier(y)
   #평균과 가장 차이나는 출력
[1] 2.548991
> outlier(y, opposite = TRUE) #반대방향으로 가장 차이 나는
[1] -2.345698

 

> dim(y) = c(20,5) # 20, 5 행렬 생성
> outlier(y)
# 열의 평균과 가장 차이가 나는 열별로 출력
[1] 2.415835 1.102298 1.647817 2.548991 2.121117
> outlier(y, opposite = TRUE)
[1] -2.345698 -2.180040 -1.806031 -1.390701 -1.372302
> boxplot(y)


1 마스터 플랜 수립

 

1. 분석 마스터 플랜 수립 프레임워크

- 우선순위 설정 : 전략적 중요도, 비즈니스 성과 ROI, 분석과제의 실행 용이성

- 적용범위 방식 고려 : 업무 내재화 적용 수준, 별도의 분석 화면 일단 적용할지

 분석 데이터 /외부 적용 수준 고려, 분석 기술 적용 수준


 

- 정보전략계획 ISP(Information Strategy Planning) : 기업, 공공기관 시스템 중장기 로드맵 정의 절차

 

2. 수행 과제 도출 우선순위 평가

- 정의된 데이터 과제에 대한 실행 순서를 정하는

- 업무 영역별로 도출된 분석 과제를 평가기준에 따라 평가, 과제의 후행 관계 고려, 적용 순위 조정

- 전략적 중요도, 실행 용이성 기업에서 고려하는 중요 가치 기준에 따라 다양한 관점 우선순위 수립


 

- 과제 우선순위 평가기준

1) 전략적 중요도

- 전략적 필요성 : 전략적 목표 업무에 직접적이 연관관계가 밀접한 정도

    이슈 미해결 발생하게 위험 손실에 대한 정도

- 시급성 : 사용자 요구사항, 업무능률 향상을 위해 시급히 수행되어야 하는 정도

 향후 경쟁우위 확보를 위한 중요성 정도

2) 실행 용이성

- 투자 용이성 : 기간 인력 투입 용이성, 비용 투자 예산 확보 가능성

- 기술 용이성 : 적용 기술의 안정성 검증, 응용시스템, 하드웨어 유지보수 용이성

 개발 스킬 성숙도 신기술 적용성 정도

 

- 빅데이터 4V

- 투자비용측면 : 크기 - 저장에 따른 비용 투자

    다양성 - 유형에 따라 정형/비정형/반정형, 외부/내부/소셜 등을 입수하는 투자

   생성속도 - 빠르게 가공, 분석하는 기술 요구, 아키텍쳐의 변형에 따른 투자

- 비즈니스 효과 : 가치 - 데이터 분석 통한 달성하고자 하는 목표 가치 


 

- ROI 요소 고려한 우선순위 평가 기준

- 전략적 중요도에 따른 시급성이 가장 중요한 기준 : 현재 또는 미래 적정 시기 고려

- 분석순위를 고려한 난이도 : 비용, 범위 측면에서 적용하기 쉬운지, 어려운지

- 과제 범위를 시범과제 형태로 할지, 처음부터 크게 할지, 소스는 /외부 어디까지 쓸지


 

-포트폴리오 4분면 분석을 통한 과제 우선순위 선정 기법


- 우선적인 분석 과제 적용 3영역, 가장 늦은 것은 2영역

- '시급성' : 3 → 4 → 2

1영역은 경영진, 담당자의 의사결정에 따라 조정 가능 난이도 조율에 따라 3으로 변경

- '난이도' : 3 → 1 → 2

기본 시스템 영향 최소화, 별도 분리해서 난이도 조절하면 우선순위 조절 가능

- 분석과제를 일관적으로 할지, 부분적으로 할지에 따른 의사결정 필요


 

3. 이행계획 수립

1) 로드맵 수립

- 사분면 분석 이후 과제별 적용범위 방식을 고려하여 우선순위 최종 결정 단계적 구현 로드맵


2) 세부 이행계획 수립

- 폭포수 방식 또는 정련의 과정 반복하여 완성도 높힘, 혼합형 적용


 

2 분석 거버넌스 체계 수립

 

1. 거버넌스 체계 개요

- 의사결정 강조될수록 데이터 분석 활용을 위한 관리 중요해짐, 기업문화로 정착하고 분석 업무 고도화

- 거버넌스 체계

- Organization : 분석 기획, 관리 추진 조직

- Process : 과제 기획, 운영 프로세스

- System : 분석 관련 시스템, IT 시스템

- Data : 데이터 거버넌스

- Human Resource : 분석 관련 교육, 마인드 육성 체계

 

2. 데이터 분석 성숙도 모델 수준 진단

- 데이터 분석 수준 진단을 통해 무엇을 준비하고 보완해야 하는지 유형 분석 방향성 결정

- 경쟁력 확보를 위해 선택과 집중, 보완점 등의 개선방안 도출

 

1) 분석 준비도(Readiness)

  • 분석 업무 파악 : 발생한 사실 분석 업무, 예측 분석 업무, 시물레이션 분석 업무,

최적화 분석 업무, 분석 업무 정기적 개선

  • 인력 조직 : 분석 전문가 직무 존재, 분석 전문가 교육 훈련 프로그램, 관리자들의 기본적 분석 능력

전자 분석업무 총괄 조직 존재, 경영진 분석 업무 이해 능력

  • 분석 기법 : 업무별 적합한 분석기법 사용, 분석 업무 도입 방법론, 분석기법 라이브러리

분석기법 효과성 평가, 분석기법 정기적 개선

  • 분석 데이터 : 분석 업무를 위한 데이터 충분성/신뢰성/적시성

비구조적 데이터 관리, 외부 데이터 활용 체계, 기준 데이터 관리(MDM)

  • 분석 문화 : 사실에 근거한 의사결정, 관리자의 데이터 중시, 회의 등에서 데이터 활용

경영진의 직관보다 데이터, 데이터 공유 협업 문화

  • IT 인프라 : 운영시스템 데이터 통합, EAI/ETL 데이터 유통체계, 분석 전용 서버 스토리지

빅데이터 분석 환경, 통계 분석 환경, 비주얼 분석 환경

 

2) 분석 성숙도(Maturity)

- CMMI (Capability Maturity Model Integration) : 소프트웨어 공학에서 개발 능력과 조직 성숙도 파악

단계

도입단계

활용단계

확산단계

최적화단계

설명

분석을 시작하여

환경과 시스템 구축

분석 결과를

실제 업무 적용

전사 차원

분석 관리 공유

분석 진화하여

혁신 성과 향상에 기여

비즈니스

부문

실적분석 통계

정기보고 수행

운영데이터 기반

미래 결과 예측

시물레이션

운영 데이터 기반

전사 성과 실시간 분석

프로세스 혁신 3.0

분석 규칙 관리

이벤트 관리

외부 환경분석 활용

최적화 업무 분석

실시간 분석

비즈니스 모델 진화

조직/역량

부문

일부 부서에서 수행

담당자 역량 의존

전문 담당부서

분석기법 수행

관리자 분석 수행

전사 모든 부서 수행

분석 COE 조직 운영

데이터 사이언티스트 확보

데이터 사이언티스트 그룹

경영진 분석 활용

전략 연계

IT 부문

데이터 웨어하우스

데이터 마트

ETL/EAI

OLAP

실시간 대시보드

통계 분석 환경

빅데이터 관리 환경

시물레이션 최적화

비주얼 분석

분석 전용 서버

분석 협업환경

분석 Sandbox

프로세스 내재화

빅데이터 분석

 

3) 분석 수준 진단 결과

- 준비형 : 낮은 준비도, 낮은 성숙도 → 사전 준비가 필요한 유형

- 정착형 : 낮은 준비도, 약간의 성숙도 → 분석의 정착이 필요한 유형

- 도입형 : 분석기업은 부족하지만, 조직 인력은 준비가 되어 있음 데이터 분석 바로 도입 가능

- 확산형 : 6가지 분석 구성요소 모두 갖추고 부분적으로 도입해 지속적인 확산이 가능한 기업


 

3. 분석 지원 인프라 방안 수립

- 단위별로는 복잡하고 비용 증대란 부작용, 분석 마스터 플랜을 장기적으로 안정적 고려 필요


 

- 플랫폼 : 분석 서비스를 위한 응용 프로그램이 실행될 있는 기초 시스템, 환경 제공


 

4. 데이터 거버넌스 체계 수립

- 전사 차원의 데이터 관리체계필요 : 중복 비표준에 따른 오류, 활용 저하의 문제점

- 전사 차원의 모든 데이터에 대하여 표준화된 관리 체계 수립하고 운영을 위한 프레임워크, 저장소 구축

- 관리 대상 : 마스터 데이터, 메타 데이터, 데이터 사전

- 가용성, 유용성, 통합성, 보안성, 안정성 확보 가능

- 독자적 수행 또는 전사 차원의 IT 거버넌스나 EA 구성 요소로 구축

- 빅데이터 관리, 데이터 최적화, 정보보호, 생명주기 관리, 카테고리별 관리 책임자 지정

 

- 데이터 거버넌스 구성요소

- 원칙 : 데이터 유지 관리 위한 지침과 가이드, 보안, 품질기준, 변경관리

- 조직 : 데이터를 관리할 조직의 역할과 책임, 데이터 관리자, 데이터베이스 관리자, 데이터 아키텍트

- 프로세스 : 데이터 관리를 위한 활동과 체계, 작업절차, 모니터링 활동, 측정 활동

 

1) 데이터 표준화

- 데이터 표준 용어 설정 : 표준단어사전, 표준도메인사전, 표준 코드 구성, 상호점검 가능 프로세스

- 명명 규칙수립 : 언어별로 작성되어 매핑상태 유지

- 메타데이터 구축, 데이터 사전 구축 : 데이터 구조 체계 형성, 구조체계나 엔티티 관계 그래프 제공

2) 데이터 관리 체계

- 정합성 효율성을 위한 메타데이터와 데이터 사진의 관리 원칙 수립

- 항목별 상세 프로세스 생성, 관리, 운영을 위한 담당자 조직별 역할 책임 준비

- 데이터 생명 주기 관리 방안 수립 필요, 데이터 가용성 관리 비용 증대 문제 발생

3) 데이터 저장소 관리(Repository)

- 데이터 관리 체계 지원을 위한 워크플로우 관리용 응용 소프트웨어 지원

- 관리 대상 시스템과 인터페이스 통한 통제 필요

- 구조 변경에 따른 사전 영향 평가 수행, 효율적인 활용 가능

4) 표준화 활동

- 표준 준수 여부 주기적 점검, 모니터링 실시

- 안정적인 정착을 위한 계속적인 변화관리 주기적 교육 진행

- 표준화 개선 활동을 통한 실용성 증대

 

5. 데이터 조직 인력방안 수립

- 데이터 분석 조직

목표 : 기업의 경쟁력 확보를 위한 가치 발견, 최적화 목표

역할 : 업무 전반에 걸친 분석 과제 발굴, 의미있는 인사이트 찾아 실행하는 역할 수행

구성 : 다양한 분야의 지식과 경험을 가진 인력과 업무 담당자로 구성된 전사 또는 부서 조직


 

- 분석 조직 인력 구성 고려사항


 

- 분석 조직 구조

1) 집중형 조직구조

- 조직내 별도의 전담조직, 분석을 담당하여 전사의 분석 과제 우선순위 추진 가능

- 현업 부서와 분석 업무가 중복 또는 이원화 가능성

2) 기능 중심의 조직구조

- 일반적형태, 해당 업무 부서에서 직접 분석

- 전사적 관점의 핵심 분석 어려움, 특정 부서에 국한될 수도 중복될 수도 있음

3) 분산된 조직 구조

- 분석 조직 인력이 현업 부서에 배치함

- 전사적 차원의 우선순위 선정 수행 가능, 분석 결과 신속히 실무에 적용 가능


분석 전문 부서에 모아 인재들을 모아 구성, 조직 경쟁력 극대화 필요


 

6. 분석 과제 관리 프로세스 수립

- 과제 발굴 : 개별 조직이나 개인 아이디어 발굴, 과제화하여 풀로 관리하면서 프로젝트 선정

- 과제 수행 모니터링 : 팀을 구성하여 과제 실행, 지속적인 모니터링과 과제 결과 공유 개선

조직 분석 문화 내재화 경쟁력 확보 가능, 풀을 축적 관리 함으로 시행착오 최소화 가능


 

7. 분석 교육 변화 관리

- 분석 가치를 극대화, 내재화 하는 안정적인 추진기로 들어가기 위해서는 교육 마인드 육성 필요

- 분석 도입에 대한 문화적 대응


- 데이터 분석 방법 분석적 사고 교육


1 분석 기획 방향성 도출

분석기획 : 실제 분석 수행 , 수행할 과제의 정의 의도했던 결과를 도출할 있도록 관리할 사전 방안을 계획하는 작업

어떠한 목표(What) 달성하기 위해서(Why) 어떤 데이터를 가지고 어떤 방식으로(How) 수행할지 계획 수립

 

1. 분석 기획의 특징

-IT  기술 분석 기법에 치우치는 경향을 조심해야함, 균형잡힌 시각을 가지고 방향성 계획 수립

1) Math&Statistics

2) Information Technology

3) Domain Knowledge

 

- 분석의 대상(what) 분석의 방법(how) 따른 분석 주제 유형

1) 최적화(Optimization) : 분석 대상을 인지하고, 해결 방법도 알고 있는 경우

2) 솔루션(Solution) : 분석 대상은 인지했으나, 해결 방법을 모르는 경우

3) 통찰(Insight) : 분석 대상은 모르나, 기존 분석 방식 활용할 경우

4) 발견(Discovery) : 분석 대상도 모르고, 분석방법도 모르나 자체적으로 새롭게 도출 경우


최적화로 접근했지만 새로운 유형 발견하거나 새로운 솔루션 도출 하는 경우도 발생, 넘나듬

 

- 목표 시점 분석 기획 방안

- 과제 중심적인 접근 방식 : 과제 단위로 명확한 해결 위해 Quick - Win 방식

- 장기적인 마스터 플랜 방식 : 분석 문화 내재화를 위해 전사적이고 장기적 관점이 바람직함

- 문제해결을 위한 단기적인 접근방식과 분석과제 정의를 위한 중장기적인 마스터 플랜 접근 방식 융합

 

당면한 분석 주제의 해결

(과제 단위)

지속적 분석 문화 내재화

(마스터 플랜 단위)

1 목표

Speed & Test

Accuracy & Deploy

과제의 유형

Quick-Win

Long Term View

접근 방식

Problem Solving

Problem Definition

 

- 의미있는 분석 : 분석기술, IT 프로그래밍, 분석 주제 도메인 전문성, 의사소통, 마스터 플랜 도출

- 분석가 3가지 기본 역량 + 프로젝트 관리 역량, 리더십 역랑 필요

 

2. 분석 기획 고려사항

 

1) 가용한 데이터

: 데이터 확보가 필수적, 유형에 대한 분석이 우선시 되어야

- 정형데이터(DB 자료) / 비정형데이터(문자형) / 반정형데이터(스트리밍, 머신데이터 )

2) 적절한 유스케이스

: 바퀴를 재발명하지 마라, 기존에 구현되어있는 유사 솔루션 활용 공감대 얻음

3) 분석과제 수향을 위한 장애 요소

: 정확도를 위해 기간, 비용 상승 / 분석가만 이해하는 것이 아니라 사용자가 쉽게 사용할수 있는

: 실제 환경에서 갑작스러운 문제 발생에 대한 고려 / 일회성 분석이 아닌 조직 내재화를 위한 교육, 문화화


 

 

2 분석 방법론

 

1. 분석 방법론 개요

- 합리적의 의사결정이 장애물 : 고정관념, 편향된 생각, 프레이밍효과(동일한 상황에서 개인 판단이 변화)

체계화한 절차와 방법이 정리된 데이터 분석 방법론의 수립 필수적

: 상세한 절차, 방법, 도구와 기법, 템플릿과 산출물로 구성되어 어느정도 지식만 있음 활용 가능함

 

- 방법론 생성과정 : 선순환 과정을 통한 조직내 방법론 완성


 

- 방법론에 따른 다양한 모델

1) 폭포수 모델 : 순차적으로 진행하는 방법, 하향식모델, 단계 돌아가는 피드백 과정 수행

2) 나선형 모델 : 반복을 통한 점증적 개발 방법, 처음 시도하는 프로젝트 적용, 복잡도 상승 가능성

3) 프로토타입 모델

 

- 계층적 프로세스 모델

1) 단계(Phase) : 최상이 계층, 프로세스 그룹을 통해서 완성된 단계별 산출물 생성

  단계를 기준선으로 설정되어 관리, 버전관리 등을 통한 통재

2) 태스크(Task) : 단계는 태스크로 구성, 단위활동으로 물리적 또는 논리적 단위로 품질 검토 항목

3) 스텝(Step) : WBS(Work Breakdown Structure) 워크패키지에 해당

입력자료, 처리 도구, 출력자료로 구성된 단위 프로세스


 

2. KDD 분석 방법론

: Knowledge Discovery in Databases, 1996 Fayyad 체계적으로 정리한 데이터 마이닝 프로세스

: 데이터베이스에서 의미있는 지식 탐색하는 데이터 마이닝, 기계학습, 인공지능, 패턴인식, 시각과 응용가능

 

- 데이터 패턴 분석 절차

• 분석 대상 비즈니스 도메인의 이해

• 분석 대상 데이터셋 선택과 생성

• 데이터에 포함되어 있는 노이즈(Noise)와 이상값(Outlier) 등을 제거하는 정제작업이나 선처리

• 분석 목적에 맞는 변수를 찾고 필요시 데이터의 차원을 축소하는 데이터 변경

• 분석 목적에 맞는 데이터 마이닝 기법 선택

•분석 목적 에 맞는 데이터 마이닝 알고리즘 선택

• 데이터 마이닝 시행

데이터 마이닝 결과에 대한 해석

• 데이터 마이닝에서 발견된 지식 활용


 

1) 데이터셋 선택(Selection)

비즈니스 도메인에 대한 이해와 프로젝트 목표 설정

선택 프로세스를 통한 데이터 마이닝에 필요한 목표 데이터 구성, 요구되는 경우 반복 가능

2) 데이터 전처리(Preprocessing)

데이터셋에 포함되어 있는 잡음과 이상값, 결측치 식별, 필요시 제거 → 정제작업, 반복가능

3) 데이터 변환(Transformation)

분석 목적에 맞는 변수를 선택, 데이터의 차원 축소, 마이닝 가능한 데이터 셋으로 변경하는 프로세스 수행

4) 데이터 마이닝(Data Mining)

분석 목적에 맞는 데이터 마이닝 기법 알고리즘 선택 데이터 패턴 찾거나 분류 또는 예측 작업 시행

필요에 따라 전처리, 변환 프로세스 병행 가능

5) 데이터 마이닝 결과 평가(Interpretation/Evaluation)

결과에 대한 해석과 평가, 분석 목적과의 일치성 확인, 전체과정 반복 수행 가능

 

3. CRISP-DM 분석 방법론

: Cross Industry Standard Process for Data Mining, 1996 유럽연합 프로젝트에서 시작

: 계층적 프로세스 모델로 4 레벨 구성

 

1) 단계 : 최상위 레벨, 일반화 태스크를 단계별로 포함

2) 일반화 태스크 : 데이터 마이닝의 단일 프로세스를 완전하게 수행하는 단위

3) 세분화 태스크 : 일반화 태스크를 구체적으로 수행하는 레벨

ex) 데이터 정제의 일반화 태스크 범주형 또는 연속형 데이터 정제로 구체화 세분화 실행

4) 프로세스 실행 : 데이터 마이닝을 위한 구체적인 실행


 

- 프로세스 6단계 (폭포수 모델과 같은 일방향 아님, 단계 피드백 통해서 단계별 완성도 높힘)

1) 업무 이해

도메인 지식을 데이터 분석을 위한 문제 정의로 변경, 초기 프로젝트 계획 수립

- 업무 목적 파악, 상황 파악, 데이터마이닝 목표 설정, 프로젝트 계획 수립

2) 데이터 이해

데이터 수집, 속성 이해하기 위한 과정, 품질에 대한 문제점 식별, 인사이트 발견

- 초기 데이터 수집, 데이터 기술분석, 데이터 탐색, 데이터 품질 확인

3) 데이터 준비

적합한 데이터 셋을 편성하는 단계, 많은 시간 소요

- 분석용 데이터 선택, 데이터 정제, 분석용 데이터셋 편성, 데이터 통합, 데이터 포맷팅

4) 모델링

모델링 기법, 알고리즘 선택, 파라미터 최적화 단계, 필요한 경우 데이터 준비 단계 반복

테스트용 프로세스와 데이터셋으로 평가하여 모델 과적합 등의 문제 발견, 대응 방안마련

- 모델링 기법 선택, 모델 테스트 계획 설계, 모델 작성, 모델 평가

5) 평가

프로젝트 목적에 부합하는지 평가, 데이터 마이닝 결과를 수용할 최종 판단하는 과정

- 분석결과 평가, 모델링 과정 평가, 모델 적용성 평가

6) 전개

업무에 적용하기 위한 계획 수립, 모니터링과 유지보수 계획 마련

도메인, 데이터 품지, 운영 모델 등에 따라 생명주이 다양 상세한 전개 계획 필요 종료

- 전개 계획 수립, 모니터링과 유지보수 계획 수립, 프로젝트 종료보고서 작성, 프로젝트 리뷰


 

4. 빅데이터 분석 방법론

 

빅데이터를 분석하기 위한 방법론 : 계층적 프로세스 모델(단계-태스크-스탭)


 

1) 분석 기획

. 비즈니스 이해 범위 실행 : 비즈니스 이해, 도메인 문제점 파악

- 비즈니스 이해 : 도메인 이해, 업무 전문가의 지식 필요, 문제점 파악 필요

- 프로젝트 범위 설정 : 범위를 명확하게 설정, 모든 관계자 이해 일치, 프로젝트 범위 정의서 SOW

. 프로젝트 정의 계획 수립 : 프로젝트 범위 확정 단계, 진행의 기준선 설정

- 데이터 분석 프로젝트 정의 : 목표, KPI 등을 구체화한 정의서 작성, 평가 기준 설정

- 프로젝트 수행 계획 수립 : 수행 계획서 WBS 작성(목적, 배경, 기대효과, 방법, 일정, 조직, 방안 )

. 프로젝트 위험 계획 수립 : 인프라 구축 병행, 기존 시스템과 인터페이스 동반 등의 위험 요소

- 데이터 분석 위험 식별 : 산출물, 정리자료, 전문가 판단을 활용 위험식별, 우선순위 설정

- 위험 대응 계획 수립 : 위험 관리 계획서 (회피, 전이, 완화, 수용 구분된 대응 방안 수립)

 

2) 데이터 준비

. 필요 데이터 정의 : 모든 사람이 함께 작성

- 데이터 정의 : 다양한 원천 데이터 소스로부터 데이터 정의서 작성

- 데이터 획득방안 수립 : 데이터 수집에 따른 구체적 방안 수립 (/외부 데이터 획득 방안)

. 데이터 스토어 설계 : 프로젝트 별로 필요한 데이터 정의하여 전사 차원의 스토어 설계

- 정형 데이터 : 구조화된 형식, DBMS 사용, 논리적 물리적 설계 구분하여 설계

- 비정형 데이터 : 하둡, NoSQL사용, 논리적 물리적 설계 구분하여 설계

. 데이터 수집 정합성 점검 : 품질 통제와 품질 보증 프로세스 수행

- 데이터 수집 저장 : 크롤링 ETL도구, API, 스크립트 프로그램 이용, 데이터 스토어 저장

- 데이터 정합성 점검 : 품질점검을 통한 정합성 확보, 보완작업 진행

 

3) 데이터 분석 : 수립된 프로젝트 목표를 달성하기 위해, 적당한 데이터셋이 없음 준비단계 반복 수행

. 분석용 데이터 준비 : 데이터셋 준비

- 비즈니스 확인 : 프로젝트 목표 확인, 비즈니스 파악

- 정형, 비정형 데이터 추출 분석 가능하도록 구조화된 형태로 구성, 작업공간에 분리

. 텍스트 분석 : 비정형 데이터 존재할 경우, 정형데이터와 통합 모델링 수행

- 텍스트 데이터 확인 추출 : 비정형 데이터 데이터 스토어 확인 추출

- 텍스트 데이터 분석 : 용어 사전 확보, 텍스트 시각화 도구 활용 의미 전달 명확

. 탐색적 분석

- 탐색적 데이터 분석 : 기초통계랑 산출, 데이터 자체 특성(중심성, 분포성, 산포성) 기초자료 준비

- 데이터 시각화 : 시스템화를 위한 시각화, 사용자 인터페이스, 프로토타입 활용

. 모델링 : 가정설정을 통해 통계 모델을 만들거나, 기계학습을 이용한 수행 모델 만드는

- 데이터 분할 : 데이터 셋을 훈련용과 테스트용으로 분할, 교차검증, 앙상블 기법 적용

- 데이터 모델링 : 분류, 예측, 군집 등의 모델 만들어 운영 시스템 적용, 통합 모델링 수행

- 모델 적용 운영 방안 : 알고리즘 설명서 작성, 의사코드 수준의 상세한 작성 필요, 모니터링

. 모델평가 검증

- 모델 평가 : 정의서 평가 기준에 따라 객관적 평가, 별도이 데이터 활용해서 분석

- 모델 검증 : 검증용 데이터 이용 모델 검증 작업 실시, 보고서 작성, 운영용 데이터로 최종 검증

. 모델적용 운영방안 수립

 

4) 시스템 구현

. 설계 구현 : 소프트웨어 개발 생명주기 SDLC 기업내 시스템 방법론 커스터마이징하여 적용

- 시스템 분석 설계 : 응용시스템 구축 설계 프로세스 진행

- 시스템 구현 : BI 패키징 활용, 운영시스템의 커스터마이징 통해 설계된 모델 구현

. 시스템 테스트 운영 : 운영중인 시스템에 적용하거나 프로토타입을 구현하고자 하는 경우

- 시스템 테스트 : 단위/통합/시스템 테스트 실시, 객관성과 완전성 확보

- 시스템 운영 계획 : 운영자, 사용자를 대상으로 필요한 교육을 실시하고 시스템 운영계획 수립

 

5) 평가 전개

. 모델 발전 계획 수립 : 모델의 생명주기 설정하고 주기적 평가 실시, 업데이트 자동화 방안

- 모델 발전 계획 : 지속적인 운영과 기능 향상을 위한 발전계획 수립, 계속성 확보

. 프로젝트 평가 보고 : 분석 기획 단계의 목적 달성 여부 평가, 자산화 진행

- 프로젝트 성과 평가 : 정량적, 정성적 성과로 나눠 성과 평가서 작성

- 프로젝트 종료 : 최종 보고서 작성, 지식 자산화 실행, 의사소통 절차에 따른 보고

 

3 분석 과제 발굴

 

- 하향식 접근 방법(Top Down Approach)

문제가 먼저 주어지고 해답을 찾기 위해 과정이 체계적으로 단계화 되어 수행하는 방식

전통적으로 수행되던 분석 과제 발굴 방식, 하지만 기업환경에서 문제를 사전 정의가 어려워짐

인사이트 도출과 시행착오를 통한 개선이 필요해짐

- 상향식 접근 방법(Bottom Up Approach)

정의가 어려운 경우 데이터를 기반으로 문제 재정의, 해결방안 탐색하고 지속적으로 개선하는 방향

하양식에서 상향식으로 유용성이 점차 증가하고 있는 추세

 


 

- 디자인 사고 프로세스(IDEO)

가능한 옵션 도출하는 상향식의 발산 단계와 분석하고 검증하는 하향식의 수렴 단계 반복적 수행

상호보완, 동적인 환경에서 가치 있는 최적의 의사결정 방식

 


 

 

1. 하향식 접근법

- 현황 분석, 인식된 문제점, 전략으로부터의 기회나 문제 탐색하고

해당 문제를 데이터의 문제로 정의

해결방안 탐색

데이터 분석의 타당성 평가, 분석과제 도출


 

 

1) 문제 탐색 단계

전체적인 관점의 기준 모델 활용 - 비즈니스 모델, 외부 참조 모델

문제를 해결함으로써 발생하는 가치에 중점을 두는 것이 중요

 

. 비즈니스 모델 기반 문제 탐색

- 비즈니스 모델이란 활용, 가치 창출 누락 없이 도출 가능

- 업무, 제품, 고객 단위 문제 발굴 + 규제와 감시, 지원 인프라의 영역으로 기회 추가로 도출


- 업무 : 제품 및 서비스를 생산하기 위해서 운영하는 내부 프로세스 및 주요 자원 관련 주제 도출

예) 생산 공정 최적화, 재고량 최소화 등

- 제품 : 생산 및 제공하는 제품·서비스를 개선하기 위한 관련 주제 도출

예) 제품의 주요 기능 개선,  서비스 모니터링 지표 도출 등

- 고객 : 제품·서비스를 제공받는 사용자 및 고객 이를 제공하는 채널의 관점에서 관련 주제 도출

예) 고객 Call 대기 시간 최소화, 영업점 위치 최적화 등

- 규제와 감사 : 제품 생산 및 전달 과정 프로세스 중에서 발생는 규제 및 보안의 관점에서 주제 도출

예) 제공 서비스 품질의 이상 징후 관리, 새로운 환경 규제 시 예상되는 제품 추출 등

- 지원 : 인프라 분석을 수행하는 시스템 영역 및 이를 운영 ·관리하는 인력의 관점에서 주제 도출

예) EDW 최적화, 적정 운영 인력 도출 등

 

 

- 혁신 : 새로운 문제의 발굴 장기적인 접근을 위해서 기업이 현재 수행하고 있는 비즈니스 뿐만 아니라

    환경과 경쟁 구도의 변화 역량의 재해석을 통한 '혁신'관점에서 분석 기회를 추가 도출

    거시적 관점, 경쟁자 동향, 시장의 니즈 변화, 역량의 재해석 새로운 관점 접근 필요

1) 거시적 관점 : 메가트렌드, 사회 경제적 요인 STEEP

- 사회, 기술, 경제, 환경, 정치

2) 경쟁사의 동향 : 대체재와 신규 진입자 등의 관점 확대하여 분석 기회 발굴의 폭을 넓힘

- 대체재, 경쟁자, 신규 집입자

3) 시장의 니즈 탐색 : 고객과 접촉하는 채널, 의사결정에 영향을 미치는 영향자들에 대한 관점

- 고객, 채널, 영향자들

4) 역량의 재해석 : 보유한 역량 + 해당 조직에 영향을 끼치는 파트너

- 내부역량, 파트너와 네트워크

 

 

. 외부 참조 모델 기반 문제 탐색

- 벤치마킹, 새로운 문제 발굴을 위해서는 동종 환경의 기존 수행한 분석 과제 살펴보기

- 후보 그룹을 통해 'Quick&Easy'방식으로 브래인스토밍을 통해 빠르게 도출

- 산업을 불문하고 분석 사례를 기반으로 분석하고 기회 고려

 

. 분석 유즈 케이스 정의

- 동종 사례를 통해 찾아낸 분석 기회들을 구체적인 과제로 만들기 위해

- 문제에 대한 설명, 발생하는 효과 명시하여 향후 데이터 분석 문제로의 전환 적합성 평가에 활용

 

2) 문제 정의 단계

- 식별된 비즈니스 문제를 데이터의 문제로 변환하여 정의하는 단계

- 필요한 데이터 기법을 정의하기 위한 데이터 분석의 문제로 변환 수행

- 최종 사용자 관점에서 이루어져야함


3) 해결방안 탐색 단계

- 정의된 데이터 분석 문제를 해결하기 위한 다양한 방법 모색

- 소요되는 예산 활용 가능한 도구에 따른 다각도 고려 필요

- 인력을 채용하거나 분석 전문 업체 활용

 

4) 타당성 검토 단계

- 도출된 분석 문제나 가설에 대한 대안을 과제화 하기 위해 다각적인 타당성 분석 수행

. 경제적 타당성

- 비용대비 편익 관점의 접근, 분석 비용에 대한 경제적 가치 산출

. 데이터 기술적 타당성

- 데이터 존재여부, 분석 시스템 환경, 분석 역량 필요

- 기술적 타당성 분석에 따른 역량 확보 방안 사전에 수립 필요 = 비즈니스 지식 + 기술적 지식

- 평가 과정을 거쳐 가장 우월한 대안을 선택, 정의서 형태로 명시하는 후속작업 시행 입력물 활용

 

2. 상향식 접근법

- 경험적 과거 데이터를 무작정 결합하여 상향식으로 정보 혹은 지식을 얻고자 하는 분석 패러다임

- 다양한 원천 데이터로부터 분석을 통하여 통찰력과 지식을 얻는 방법

 

- 기존 하향식 접근법의 한계를 극복하기 위한 분석 방법론

- 기존의 논리적인 단계별 접근법 기반한 문제 해결방식은 최근의 환경에 적합하지 않음

- 디자인 사고 접근법 - 현장 관찰과 감정이입, 대상의 관점으로 전환 수행 / why 아닌 what 관점

- 프로세스 : Empathize → Define → Ideate → Prototype → Test

- 비지도 학습 : 데이터 자체의 결합, 연관성, 유사성 등을 중심으로 데이터의 상태를 표현

ex) 장바구니분석, 군집분석, 기술통계 프로파일링

- 지도 학습 : 데이터 분석 실시, 분류, 추측, 예측, 최적화를 통해 사용자 주도 하에 분석 실시, 지식 도출

- 통계적 분석과 달리 인과관계 뿐만 아니라 상관관계 또는 연관 분석 통한 역추적 방식

 

- 시행착오를 통한 문제 해결

- 프로토타이핑 접근법 : 일단 분석을 시도해보고 결과를 확인해 가면서 반복적으로 개선해 나가는 방식

- 비록 완전하지 못해도 신속하게 해결책이나 모형 제시, 문제를 명확하게 인식, 식별, 구체화

- 프로세스 : 가설생성 디자인 실험 실제환경 테스트 통찰(인사이트) 도출 가설 확인

- 불명확성 감소, 의도했던 결과 도출할 있는 성공 가능성 상승

- 한번의 분석이 아닌 동적 환경에서 최대한 빨리 결과 보여주고, 지속적 반복 수행함

- 필요성

- 문제에 대한 인식 수준 : 새로운 문제일 경우 구체화 하는데 도움

- 필요 데이터 존재 여부의 불확실성 : 데이터 집합이 모두 존재하지 않을 경우 반복 순환적인 협의과정

- 데이터 사용 목적의 가변성 : 지속적으로 변화는 가치에 대하여 목적과 범위 확대 가능

 

3. 분석과제 정의

- 분석과제 정의서 : 향후 프로젝트 입력물로 사용, 이해관계자가 방향 설정, 성공여부 판단하는 자료

필요한 소스 데이터, 분석방법, 입수 분석 난이도, 분석수행주기, 검증 오너십, 과정등

분석 데이터 소스는 비구조적 데이터와 오픈 데이터까지 확장하여 상세하게 작성


 

4 분석 프로젝트 관리 방안

 

- 분석 과제의 주요 5가지 특성 주요 관리 영역

1) 데이터 사이즈 : 분석하고자 하는 데이터 고려한 관리 방안

2) 데이터 복잡도 : BI프로젝트와 달리 다양한 시스템에 원천 데이터 통합 분석 모델 선정 중요

3) 스피드 : 시나리오 측면의 속도 고려, 단위-배치형, 실시간-사기를 탐지, 실시간 수행을 위한 테스트

4) 분석의 정확도와 복잡도 : 복잡하면 정확도가 올라가지만 해석이 어려움, 기준점을 사전에 정의해야함

5) Accuracy & Precision : Accuracy는 모델과 실제값 차이가 적은 정확도, 분석적 활용 측면

 Precision는 모델을 지속적으로 반복했을 때의 편차수준, 안정성 측면


 

1. 분석 프로젝트의 특성

- 분석가 목표 : 분석 정확도 상승, 조율을 수행하는 조정자의 역할

- 프로젝트 관리 : 도출된 분석 과제를 구현하여 원하는 결과 얻고 원활하게 활용하는 전체적 과정 고려

- 프로토타이빙 방식의 어자일 프로젝트 관리 방식에 대한 고려 : 재해석을 통한 지속적 반복 정교화

- 분석과제 정의서를 기반으로 지속적인 개선 변경을 두고 기간내의 가능한 최선의 결과 도출

 

2. 분석 프로젝트 관리 방안

- 프로젝트 관리 지침


 

- 프로젝트 영역별 주요 관리 항목


+ Recent posts