안녕하세요. 


오늘은 간단한 개념이지만 헷갈릴수 있는 forecast 와 prediction의 차이에 대해서 알아보겠습니다.


한글로 굳이 번역하자면, prediction(예측), forecast(예상)이 될수 있을 것이라고 생각합니다. 


하지만 헷갈릴수 있으므로 번역은 하지 말고 영어에서 쓰이는 의미로써 prediction과 forecast의 차이에 대해서 고찰해보도록 하겠습니다.


많은 사람들이 혼돈해서 쓰는 경우가 많지만, 보통 데이터 분석하시는 분들은 이 둘의 개념을 중요시 여기십니다.


그래서 데이터 분석에 석학 중에 한분이신 네이트 실버의 신호와 소음이라는 책에는 이 둘의 차이를 정확하게 알려주고 있습니다. 


  "prediction이나 forecast라는 단어는 여러분야에서 다른 의미로 사용된다 몇몇경우에는 동일한 의미로 사용되기도 하지만, 몇몇 분야에서는 철저하게 구분된다 그런데 지질학만큼 두단어의 차이점에 민감한 분야는 없어보인다. 지질학자와 대화를 나눌때는 다음사항을 명심해야 한다. 


1. prediction 은 지진이 언제 그리고 어디에서 일어날 것인지 구체적이고 명시적으로 말하는 것이다. 대규모 지진이 6월 28일에 일본교토를 강타할 것이다가 prediction이다.


2. forecast는 확률적 진술이며, 대개는 장기적 차원의 발상이다. '지진이 30년안에 캘리포니아 남부 지역에서 일어날 확률은 60%다 가 forecast 이다.


따라서 지진을 prediction할수 없어도 forecast할수 잇다는게 미국 지질조사소의 공식 입장이다."


따라서 미래에 일어난 구체적 명시는 prediction, 확률적 진술은 forecast라고 이해하시면 좀 더 정확한 표현을 사용하실수 있을것이라 생각됩니다. 


감사합니다.




 

안녕하세요 DA 라이언입니다. 

지난번에는 데이터를 분석할때 검정방법 중 데이터가 29개 이하일 경우 정규성을 파악하는데 필요한 검증방법에 대해서 알아봤습니다. 

오늘은 지난시간에 이어서 다른 검정방법들을 확인해보도록 하겠습니다. 

우선 첫번째글을 보시지 않은 분들은 첫번째 글을 클릭해서 보시고 두번째 글로 보시기 바랍니다. 

003 데이터분석 시작전 검정 방법 선택 전략 (첫번째)
->http://daryan.tistory.com/79

지난시간에 본 검정전략의 흐름도 입니다. 


데이터를 확인할때 30개 미만일 경우에는  Sapiro-wilks test 로 정규성을 확인한다고 하였습니다. 
그러나 단순히 그래프의 산포도를 보면서 정규성을 확인 하는 방법또한 있고 그것는 Q-Q plot입니다.

지난번 코드에서 Q-Q plot을 그려보겠습니다. 



>dataA<-sample(1:100, 29, replace=TRUE)
>qqnorm(dataA)  #QQplot을 그리는 명령어
>qqline(dataA) #QQplot의 기준선을 그리는 명령어


>dataNorm <- rnorm(29,0,1)
>qqnorm(dataNorm) #QQplot을 그리는 명령어
>qline(dataNorm)   #QQplot의 기준선을 그리는 명령어



첫번째 그림과 두번째 그림을 보면 기준선에 대비해서 두번째 그림이 더 가까운것을 확인할수 있고, 이것을 기준으로 정상성을 가늠할수는 있으나 
정확한 판단은 Shapiro-Wilk normality test 를 하는 것이 좋다고 할수 있습니다. 

다만 그래프로 판단할수 있는 것은 첫번째 그림처럼 정상성을 벗어나는 데이터 포인트들이 몇개고 그것을 제거 하였을때 정상성이 더 좋아지겠다는 
판단을 할수 있으므로 그래프 그리는 것을 의미 없다고 생각하시면 안됩니다. 

그렇다면 정상성을 판별한 이후 우리는 데이터의 짝을 이루는지를 확인해볼 필요가 있습니다.

여기서 데이터의 짝이란, Before 와 After의 변화를 확인하는 데이터를 의미합니다.
단순히 남과여 평균 키 데이터는 데이터 짝을 이룬다고 표현하지 않습니다.
즉 동일한 집단에 대해서 어떤 처리를 하기전과 후에 반복하여 관측한 값이 차이있는지를 확인하는 경우에 사용합니다. 
예를 들면 지지율의 변화, 도는 약의 복용 전과 후의 결과, 광고 전과 후의 결과 등등 동일한 집단에서 쌍으로 발생하는 데이터를 의미합니다.


일단 데이터가 보통은 짝을 이루지 않고 , 독립표본 즉 예를 들면, 남학생 키 분포, 여학생 키분포와 같이  나누어져 있습니다. 
그래서 위의 도식과 같이 등분산 가정이 되는지 안되는지를 체크해 보아야 합니다. 

등분산 가정은 F- 검정을 통해서 확인할수 있습니다. 

F-검정이란 집단간의 분산차이가 있는가 없는가를 확인하는 것이고, 차이가 없는 것이 보통 귀무가설로 설정됩니다.
즉 예를 들면, 

아래는 남자 여자의 수능 점수의 차이에 대해서 확인해본 결과입니다.수능만점은 400점으로 가정합니다.

성별
표본의 수
평균점수
분산
비고
여자
40
305.25
S1

남자
40
290.07
S2


여기서 F-검정의 귀무가설을 확인하여야 하는데
귀무가설 H0는 S1=S2이다 라고 설정합니다.
대립가설 H1는 S1S2이다 라고 설정합니다.


이렇게 나왔을 경우 F-값을 구하게 되면 F= Max (남학생 점수분산,여학생 점수 분산)/Min(남학생 점수분산,여학생 점수 분산) 이 되며, 
이럴경우 자유도는 (39,39)가 된다. 자유도는 각 표본의 수에서 1을 빼주면 나온다. F 값이 가령 1.45가 나왔다고 하면, 
이것을 f-분포표에서 확인해볼 경우 p-value가 0.2545가 나오게 된다.


 방법
Num DF(자유도1)
Den DF(자유도2)
F value
Pr > F 
F-value
39
39
1.45
0.2545

따라서 이것으 결론은 F-검정의 유의확률은 0.2545 이라고 할수 있습니다. 이것을 그래프로 그려보면 아래와 같다.



이것은 p-value가 0.2545로 0.05보다 크므로 다른 표본을 쓰더라도 분산이 같을 확률이 0.05보다는 높다고 할수 있습니다.
따라서 H0는 성립한다고 표현하고 우리는 이 두집단은 등분산이라고 가정하고 계속 분석을 할수 있게 됩니다. 


지금껏 데이터 분석하기전에 검정 방법에 대해서 정리해봤습니다. 아래의 표를 기억하고 적용하면 좀더 쉬운 분석이 가능할 것이라 생각합니다.

참조 문헌

Enterprise guide 분석편 (자유아카데미, SAS 에반젤리스트 저) 참조

안녕하세요. 

DA ryan입니다. 데이터 과학의 관심을 가지기 시작하면서 여러가지 알고리즘을 배우고, 통계공부를 하며 머리 속에 많은 내용을 집어 넣었음에도 불구하고,

막상 데이터 앞에서는 내가 무엇을 해야하는지 , 내가 왜 이렇게 접근하는지 애매한 경우가 있습니다. 그래서 기본적으로 접근할수 있는 간단한 플로우 차트에 대해서 오늘은 

알아볼까합니다. 물론 이러한 접근이 100%모든 데이터를 분석할때 쓰이는 것은 아니지만, 가장 기본적으로 시작할때는 이러한 방법을 먼저 생각해보면,

이후 추가적인 알고리즘으로 분석할 때 비교 할수 있어서 편하게 진행을 할수 있습니다. 

설명을 먼저 하기 전에 아래의 사항에 대해서 전혀 모른다고 생각되시는 분들은 글을  읽기보다는, 아래 사항들을 검색하셔서 이런게 무엇이다 정도는 알고 계신 후에 읽어주시기 바랍니다.

<사전 지식 점검해야할 사항들>
  1. "T-검정" 에 대해서 알고 있는가?
  2. "F-검정"에 대해서 알고 있는가?
  3. "등분산"이란 알고 있는가?
  4. "귀무가설 "의 정의와 귀무가설을 알고 있는가?
  5. "정규성 혹은 정상성"을 알고 있는가?

위의 사항을 알고 계시면 이해하기 편하겠지만 위의 사항을 잘 모르시면 각각의 개념을 검색해보시고 정리해두신 다음에 읽어보시길 권장합니다. 

그럼 시작해보도록 해보겠습니다.

실제 보통의 데이터는 모분산을 우리가 모르는 상태에서 분석을 실시합니다. 
따라서 모분산(예를 들면, 대통령선거에서 국민들이 모두 투표를 하고 모든 투표결과를 분석해서 낸 실제 분산값)을 모르기때문에 아래와 같은 절차를
따져보고 진행해야 합니다.


[그림1] 검정방법 선택을 위한 기본 전략


위와같이 보통 데이터를 분석할 때 30개 기준으로 많고 적음에 따라서 분석방법을 달리 하여야 합니다.
왜 30개가 기준인지는 30개 이상일때 근사적으로  중심 극한정리(데이터들이 평균을 중심으로 많이 분포하게 된다는 통계적 이론)에
의해서 표준 정규분포의 형태로 나타난다는 것이 증명되었기 때문이라고 합니다.

실제 증명되었는지는 통계학 교수님이나 혹은 주변의 통계학 박사과정에 계신 분에게 말씀하시면 증명을 시도한 논문을 받아보며 눈물 흘릴수 있으시리라 생각됩니다.^^

일단 30개 미만인 경우에는 분석의 의미가 좀 퇴색될수 있습니다. 30개 이상의 데이터를 분석하는 것보다 ,
30개 미만의 데이터를 분석하는 것이 어찌보면 상세하다고 할수 없기 때문입니다. 
그렇다고 분석을 못하지는 않습니다. 부득이하게 분석을 한다면, 이정도는 되지 않는가 라는 정도의
분석정도 할수 있도록 우리 과거의 지혜로운 선배님들께서 이렇게 본인의 이름을 걸어놓으시고 방법을 개발하시고 
증명까지 해주셔서 후대의 우리가 아름답게 쓸 수 있게 되었습니다. 


그리하여 우선 데이터가 30개 미만 일때 부터 방법을 살펴보도록 하여야 합니다.
30개 미만일때는 데이터가 정규분포를 따르지 않을수도 있으므로 정규성(즉 정규분포를 따르는 성질)을 체크해보아야 합니다. 

많은 방법들이 있지만 대표적인 방법 중 3가지를 이렇게 소개하고자 합니다.

1)Kolmogorov-Smirnov test(콜모고로프 스미르노프 방법)
   -> 이방법은 주로 데이터가 2000개 이상 있을때 정규성을 확인할때 적합하다고 합니다. 그래서 일단 이런게 있구나 정도로만 알아놓으시기 바랍니다.

2)Sapiro-wilks test
  -> 이방법은 3개 이상 데이터에 주로 쓰이는 방법으로 자세히 살펴보도록 하겠습니다.

3)Q-Q plot
  -> 그래프의 산포도를 보면서 확인하는 방법으로 이또한 자세히 살펴보도록 하겠습니다.

일단 Sapiro-wilks test 부터 확인하도록 하겠습니다. 


>dataA<-sample(1:100, 29, replace=TRUE)
>hist(dataA, col = "green", las=1)
>shapiro.test(dataA)

======== 결   과 ========================
Shapiro-Wilk normality test

data:  dataA
W = 0.91912, p-value = 0.02897


위와 같이 1에서 100까지 재추첨할수 있게 데이터를 29개 뽑았습니다. 
이것을 히스토그램으로 확인했을 경우 딱봐도 정규성을 안띈다고 볼수 있습니다(그래프 모양이 종의 모양이 아니라는 이야기죠)

하지만 우리는 더 정확한 수치를 확인하기 위해서 Shapiro-wilk 정규성 테스트 결과를 위와 같이 확인하여 보았습니다.

p value가 0.02897이 나와서 0.05보다 작게 나온것을 확인할수 있습니다. 

p-value를 확인할때 가장 헷갈리는 것은 이것이 높게 나와야 좋은 것인지 낮게 나와야 좋은것인지 초보자들은 잘 모르는경우가 많습니다.

유의확률 즉 p-value는 어떠한 확률값을 표현한것으로
보통 0.05보다 높으면 기대했던 결과가 대부분 정규분포안에 들어가므로 맞다고 판단하고 있으며,
0.05보다 낮으면 정규분포에 속하지 않으므로 기대했던 결과가 논리적으로 정규분포 밖에 있으므로 기대했던 결과는 거짓이라고 판단하고 있습니다.

그래서 보통 p-value를 확인할때는 어떤 가설을 확인하고자 했는지를 생각해보는 것이 가장 중요합니다. 
그것이 바로 귀무가설이라고 하고 영어로는 null hypothesis라고 합니다. 
그런데 사람들은 이 귀무가설에 대해서 언급을 잘 하는 경우도 있지만, 때로는 언급하지 않고 넘어가는 경우도 있습니다. 
그럴 경우에는 항상 H0 는 귀무가설이고 이 귀무가설은 무엇인지 해설을 통해서 유추하셔야 합니다. 

이번의 실험에서 지정한 귀무가설 H0는 "이 데이터 값들이 정규성을 가진다" 입니다.
그래서 가진다고 생각하고 실험을 해봤는데 실험 결과 p-value는 0.02897이 나오고 0.05보다 작으므로 희귀한 일이 되는 것입니다. 
따라서 우리는 어려운 말로 이 p-value는 0.05보다 작기때문에 귀무가설을 기각하고 대립가설을 채택한다고 이야기 할수 있습니다.
대립가설은 귀무가설을 부정한 것으로 이번에는 "데이터값들이 정규성을 가지지 않는다" 입니다.

따라서 이번에 한 실험에서 이 데이터로는 비모수적인 방법의 분석을 해야한다는 결론을 내야 합니다. 

다음 실험을 확인해보도록 하죠 

> dataNorm <- rnorm(29,0,1)
> hist(dataNorm)
> hist(dataNorm,las=1)
> shapiro.test(dataNorm)

======== 결   과 ========================
    Shapiro-Wilk normality test

data:  dataNorm
W = 0.98018, p-value = 0.8426


위와같이 하였을 경우 데이터들은 p-value값이 0.8426이므로 이것은 귀무가설을 기각하지 못한다고 할수 있습니다. 
통계는 참 말이 어렵습니다. 기각하지 못한다는 것은 그러하다는 뜻인데 왜 그렇게 어렵게 쓰면서 노는지 이해할수는 없습니다. ㅎㅎ
하지만 어쨌든 H0 는 이 데이터들은 정규성을 가진다 였으므로 p-value가 0.05보다 높으므로 귀무가설이 맞을 가능성이 있다는 결론을 내는 것입니다.
따라서 이 데이터들은 정규성을 가진다는 가정을 해도 논리적이라고 할수 있게 됩니다. 

이럴경우에는 데이터수가 29개라도 정규성을 가지기 때문에 데이터를 t-검정을 통해서 분석하거나 진행할수 있게 됩니다. 

알고나면 참 재미나는데 모르니까 헷갈려서 포기하는게 통계입니다. 
모른다고 포기하지말고 이해 될때까지 보시고 이해 되지 않더라도 언젠가는 이해되겠지 하고 생각하고 보시면
이해가 될거라 믿습니다. 

그럼 나머지는 다음에 하도록 하겠습니다. 




참조 문헌
Enterprise guide 분석편 (자유아카데미, SAS 에반젤리스트 저) 참조



+ Recent posts