평균, 표준편차, 분산, 그리고 Mahalanobis 거리

수학 이야기 2013.02.18 23:28

얼마전 동생이 전화로 표준편차에 대해서 물어봤다.


"형, 표준편차가 3이라는게 무슨 뜻이야?"


"먼 소리야, 무슨 표준편차? 단위가 먼데?"


"아니, 일일 교통량을 측정하는데, 예를 들어서 평균이 20이고 표준편차가 3인거랑 평균이 80이고 표준편차가 3인거랑 어떻게 다른거야? 표준편차도 에러의 일종이잖아. 근데 평균이 커지면 에러도 커지는건가?"


"......"


동생의 질문 요지는, 여러 통계자료를 보고 교통정책을 세워야 하는데 통계적 수치들을 어떻게 해석해야 하고 좋고 나쁘고를 어떻게 판단해야 할 지에 관한 것이었다.


전화로 열심히 설명해 주기는 했지만, 공대출신에 대학원까지 나온 녀석의 질문 치고는 좀 너무한다 싶다.



일일 교통량의 평균이 20이라는 것은 어떤 날은 교통량이 18대, 또 어떤 날은 19대, ..., 20대, 24대, 21대, 20대, ... 이런 식으로 날마다 조금씩 다를 수는 있지만 평균적으로 20대라는 의미이다.


일일 교통량의 표준편차가 3이라는 것은 편차가 평균적으로 3대 정도 된다는 의미이다.


먼저 편차라는 것을 살펴보면, 편차는 평균과의 차이다. (편차 = 데이터 값 - 평균값)

위 예에서 보면, 편차는 -2대, -1대, ..., 0대, 4대, 1대, 0대, ... 이런 식이다.

얘네들(편차들)을 곧이 곧대로 평균을 해 버리면 +와 -가 상쇄되어 버리기 때문에 항상 0이 나온다.


그래서 제곱을 해서 평균을 취한 것이 분산이다.


즉, -2*-2대, -1*-1대, ..., 0*0대, 4*4대, 1*1대, 0*0대,... 이렇게 편차들을 제곱한 후에 얘네들의 평균을 취한 것이 분산이다.

그리고, 이렇게 구한 분산에다가 다시 루트(root)를 취한 것이 표준편차이다.


편차들을 제곱해서 평균을 취한 다음에 다시 루트를 씌운다 => 표준편차


그렇기 때문에 '표준편차'를 대충 '평균적인 편차'라고 생각해도 무리가 없다.


위 예로 다시 돌아가 보자.


일일 교통량의 평균이 20이고 표준편차가 3이라는 것은,

평균적으로 하루에 20대 정도 차가 지나가는데 들쑥 날쑥한 정도가 평균적으로 3대 정도라는 의미이다. 

즉, 17대가 지나갈 때도 있고 23대가 지나갈 때도 있다는 것이다.


또한, 일일 교통량의 평균이 80이고 표준편차가 3이라는 것은,

평균적으로 하루에 80대 정도 차가 지나가는데 들쑥 날쑥한 정도가 평균적으로 3대 정도라는 의미이다.

즉, 77대가 지나갈 때도 있고 83대가 지나갈 때도 있다는 것이다.


즉, 결론적으로 말하면 평균이 작고 크고는 표준편차와는 아무런 관계가 없다.

단지 데이터들이 평균을 중심으로 얼마나 잘 밀집되어 있느냐 또는 들쭉날쭉한 정도가 얼마나 심하냐를 나타낼 뿐이다.


마지막으로 마할라노비스 거리(Mahalanobis distance)는 평균과의 거리가 표준편차의 몇 배인지를 나타내는 값이다. 위 예에서(하루 교통량 평균이 20대이고 표준편차가 3대) 어느 날 차가 26대가 지나갔다고 하자. 자로 잰 평균과의 거리는 6이다. 그런데, Mahalanobis distance로는 (26 - 20)/3 = 2이다. 즉, 표준적인 편차의 2배 정도의 오차가 있는 값이라는 것이다.


Mahalanobis distance는 어떤 값이 얼마나 일어나기 힘든 값인지, 또는 얼마나 이상한 값인지를 수치화하는 한 방법이다. 예를 들어서, 1년 내내 매일 매일 차가 정확히 20대만 지나갔었는데 어느날 보니 차가 21대가 지나갔다. 얼마나 이상한 일인가? 이 경우 Mahalanobis distance는 굉장히 큰 값을 가질 것이다. 그런데, 차가 어느날은 10대, 다음날은 30대, 또 다른날은 24대, ... 이와 같이 들쑥 날쑥한 경우에 21대가 지나간 것은 전혀 이상한 일이 아닐 것이다. 그래서 이 경우 Mahalanobis distance는 굉장히 작은 값이 나올 것이다.


Mahalanobis distance는 어떤 데이터가 가짜 데이터인지, 아니면 진짜 데이터인지를 구분하는 용도로 주로 사용된다. 예를 들어, 일일 교통량에 대한 평균을 내고자 하는데 어느날 갑자기 정말 이상한 데이터가 들어왔다면 이걸 포함해서 평균을 내는 것 보다는 이것은 이상한 놈으로 치고 정상적인 것으로 판단되는 데이터들만 이용해서 평균을 구하는 것이 보다 합리적일 수 있다. 


우리가 고등학교 수학에서 (확률과 통계 파트) 표준정규분포로 바꾼 후에 z 값을 구하는 것이 바로 Mahalanobis distance를 구하는 과정이다. 그리고 우리가 통상적으로 사용하는 자로 잰 거리는 유클리디언 거리(Euclidean distance)라고 부른다. 


by 다크 프로그래머

저작자 표시 비영리 변경 금지
신고
  • 이전 댓글 더보기
  • 조기원 2013.11.03 14:08 신고 ADDR 수정/삭제 답글

    좋은 자료 감사합니다.^^

  • 빈스 2013.11.22 15:09 신고 ADDR 수정/삭제 답글

    와.. 설명 정말 머리에 쏙쏙 들어와요 ~
    그냥 지나갈수도 있지만 너무 잘 설명 해 놓으셔서 감사 인사 드립니다 ~

    • BlogIcon 다크pgmr 2013.11.24 20:00 신고 수정/삭제

      댓글 감사합니다. 그렇게 어려운 내용은 아닌데 의외로 햇갈려 하는 분들이 많은 것 같습니다.

  • kcats 2014.03.13 14:41 신고 ADDR 수정/삭제 답글

    쉽게 이해 되네요 !! 감사합니다.

  • 한강 2014.07.20 19:22 신고 ADDR 수정/삭제 답글

    대부분 자료는 식에 대해서만 설명하는데 어디에 이용하는지도 설명하시고 의미도 설명하시고
    다크님 자료 잘 보고 있습니다.
    ㅎㅎ 저는 과거 80년대 전산,통계를 전공했던 현재 50을 바라보는 개발하고 있는 사람입니다
    ^_^

    • BlogIcon 다크pgmr 2014.07.21 07:31 신고 수정/삭제

      ㅎㅎ 네.. 들러주셔서 감사합니다. 전공명을 들으니 예전의 계산통계학과란 명칭이 생각납니다 ^^.

  • 기초 2014.12.26 05:16 신고 ADDR 수정/삭제 답글

    통계 강의를 안듣고 야매로만 해서...인터넷으로 시간날때 공부하고 있는데
    감사합니다
    제 블로그에 링크 올려놓겠습니다

  • 자연산 흑곰 2015.01.08 17:02 신고 ADDR 수정/삭제 답글

    분산값을 구할때 왜 제곱을 취했을까요?
    양의 값으로 바꾸려는것이 목적이면 절대값도 있었을텐데 말이죠

    • BlogIcon 다크pgmr 2015.01.08 21:01 신고 수정/삭제

      저도 잘... ㅠ.ㅠ

    • 곰돌이 2016.04.22 12:01 신고 수정/삭제

      절대값으로하면 y=|x|가 돼고 제곱을하면 y=x^2이잖아요
      절대값보단 제곱이 가중치를 더주고 spread를 나타낼려면 deviation이 큰수에게 더 가중치를 주어야됄거 같은데요

  • 초보 2015.03.12 09:44 신고 ADDR 수정/삭제 답글

    정말 쉽게 설명해주셔서 이해가 쏙쏙되네요.감사합니다.
    그리고 예전에 통계분석할때 이해되지 않았던 부분이 있는데 질문 좀 드려도 되겠죠? ^^

    통계분석한다고 할때 측정기준이나 척도가 다른 변수들이 있을경우
    표준화한다고 하는데 왜 해야하는지 잘 모르겠네요.
    군집분석이나 주성분분석? 등을 하는경우 많이 얘기가 나오던데
    표준화를 하면 변수가 동일한 기준으로 바뀌는건가요?

    그리고 변수들을 표준화 하면 (-1 ~ 1) 사이로 나오던데
    이렇게 되는게 맞는건가요?
    표준화가 통계분석할때 정확하게 어떤 의미를 갖는지 이해가 안되네요.

    인터넷에서 검색해서 보면 통계지식이 딸리다 보니 잘 이해가 안되더라구요.
    글로 설명하시지만 정말 이해 잘가게 말씀하시는 것같아서 질문 올려봅니다.
    감사합니다. 좋은 하루 되세요..^^

    • BlogIcon 다크pgmr 2015.03.12 14:32 신고 수정/삭제

      저도 통계쪽을 따로 공부한 것이 아니라 잘은 모릅니다. 말씀하시는 표준화가 평균을 뺀 후에 표준편차로 나누는 것이지요? 아니면 변수의 값의 범위를 0~1 사이로 만드는 정규화(normalization)를 말씀하시는 것인지요. 어느 쪽이든지 이렇게 값을 표준화 또는 정규화시켜 놓으면 일관된 비교 및 분석이 좀더 용이해질 것 같습니다. 그 정도 밖에는 저도 ...

  • 글들이 하나같이 주옥같은 글입니다. 보면서도 감동입니다. -_-!!
    표준편차를 이용하여 가우시안 분포를 구하려고 하는데 영상에서 가우시안 분포를 구하는거 자체를 이해를 못하겠네요.
    수식을 보면 x와 y를 이용하여 지지고 볶는데 영상처리에서 중요한건 픽셀의 값이 아닌가요?
    맨날 open 라이브러리만 쓰다 보니 원리는 하나도 모르고 있었네요 ㅠ

    • BlogIcon 다크pgmr 2015.05.01 06:07 신고 수정/삭제

      안녕하세요. 저도 영상 자체에 대해서 가우시안 분포를 구한다는 말은 무슨 의미인지 알지 못합니다. 그런 말은 아마도 없을 것입니다. 다양한 영상처리 알고리즘 과정에서 가우시언 분포 모델링이 부분적으로 사용되는 것이기에 그건 알고리즘마다 어떤 의미로 가우시언 분포가 사용되는지 다 다를 수 있습니다. 말씀하신데로 픽셀의 밝기 변화를 모델링하기 위해 가우시언 분포가 사용될 수도 있고 (배경추출 응용의 경우), 픽셀의 위치에 대해 가우시언 분포가 사용될 수도 있습니다. 구체적으로 어떤 응용에서 어떤 목적으로 가우시언 분포가 사용되었는지 살펴보셔야 할 것 같습니다.

  • BlogIcon 공돌이2 2015.05.13 14:25 신고 ADDR 수정/삭제 답글

    안녕하세요 다크님 포스팅 잘 보았습니다. 생물학에서 시료를 표본 채취한 데이타를 이용하여 sigma, std를 구하려고합니다. 둘이 같은 의미라하셔서 그냥 시그마라고 하겠습니다. 실료 데이타에 노이즈가 많습니다.제가 궁금한것은 std sigma=1의 의미가 어떤것인지 노이즈 관점에서 잘 모르겠습니다. 시그마 0와 시그마 1이 중요한것 같은데 왜 그런것인지 고견 부탁드립니다.

  • BlogIcon 공돌이2 2015.05.13 14:34 신고 ADDR 수정/삭제 답글

    안녕하세요 다크님 포스팅 잘 보았습니다. 생물학에서 시료를 표본 채취한 데이타를 이용하여 sigma, std를 구하려고합니다. 둘이 같은 의미라하셔서 그냥 시그마라고 하겠습니다. 실료 데이타에 노이즈가 많습니다.논문같은것을 보면 sigma가 0 그리고 1에대해서 나오는데요 제가 궁금한것은 std sigma=1 그리고 0의 의미가 어떤것인지 노이즈 관점?에서 잘 모르겠습니다. 시그마 0와 시그마 1이 중요한것 같은데 왜 그런것인지 고견 부탁드립니다.
    혹시 이것이 변수의 값의 범위를 0~1 사이로 만드는 정규화(normalization) 와 상관있는것인지요?어느 쪽이든지 이렇게 값을 표준화 또는 정규화시켜 놓으면 일관된 비교 및 분석이 좀더 용이하기때문인것인지 아니면 다른 의미가 있는것인지 모르겠습니다 가우시안 분포 를 인터엣으로 찾아보면 시그마 1이 66.8%? 뭐 인런 소리가 있는데 이거랑 관련이 있는건지 잘 모르겠습니다

    • BlogIcon 다크pgmr 2015.05.13 20:21 신고 수정/삭제

      네, 말씀하신 것처럼 sigma를 1로 만드는 것은 정규화와 관계 있으며 일관된 분석 및 비교를 위해서입니다. 그런데, sigma를 0으로 만드는 것은 없습니다. 아마도 평균을 0으로 만드는 것과 혼동하신 것으로 보입니다. 데이터를 정규화하는 과정은 먼저 평균을 뺀 다음에 sigma로 나누어 주는 것입니다.

  • BlogIcon 공돌이2 2015.05.13 22:05 신고 ADDR 수정/삭제 답글

    답변 감사드립니다.


    네, 말씀하신 것처럼 sigma를 1로 만드는 것은 정규화와 관계 있으며 일관된 분석 및 비교를 위해서입니다. 그런데, sigma를 0으로 만드는 것은 없습니다. 아마도 평균을 0으로 만드는 것과 혼동하신 것으로 보입니다. 데이터를 정규화하는 과정은 먼저 평균을 뺀 다음에 sigma로 나누어 주는 것입니다.라고 답변 주신 내용중에 한가지 궁금한점이 있습니다.


    1.평균을 0으로 만든다라고 하신부분에 대해서 좀더 설명해주실수 있으신지요? 평균으로 0으로 하는 이유? 어디에 사용되기위함인지 잘 모르겠습니다

    감사합니다. 늘 응원하고 있습니다.

    • BlogIcon 다크pgmr 2015.05.13 23:22 신고 수정/삭제

      평균을 0으로 만들면 각각의 데이터가 평균으로부터 얼마나 떨어져 있는 값인지 손쉽게 파악할 수 있을 것입니다.

  • ㅇㅇ 2016.01.29 22:23 신고 ADDR 수정/삭제 답글

    일단 너무 간결하고 좋은 설명에 항상 감사드립니다.
    제가 이 글을 찾아보게 된 계기가
    영상의 매칭에서 마할라노비스 거리가 나오더라구요

    매칭에서 기술자 벡터간의 거리를 이용하지 않습니까?
    근데 거기서 확률분포라는게 사실 잘 와닿지가 않습니다.
    두 영상에서 구한 기술자 벡터들로 거리를 구하는데 확률이라...

    어떻게 적용해야할까요? 기술자가 잘못 구해질 확률같은 것일까요?
    보통 기술자를 구할때 스무딩을 해서 노이즈를 제거하는데 그래도 노이즈가 남아있을 수가 있어서
    그런걸로 인한 오차 적용 같은거에 관련이 있을까요?

    예로들면 음 10차원의 a와 b의 거리를 구하는데
    9개 차원까지의 거리는 상당히 가까운데 단 하나의 차원이 비정상적으로 튀어서 결과적으로는 가장가까운 거리의 점으로의 매칭이 실패하는 경우를 방지하기 위한 걸까요?

    질문이 다소 명확하지 않은것 같아서 죄송합니다. ㅎㅎ;

    • BlogIcon 다크pgmr 2016.01.31 12:39 신고 수정/삭제

      질문하신 내용이 잘 파악이 안됩니다.. 영상 매칭에서 두 descriptor 사이의 거리는 대부분 유클리디언 거리를 사용합니다. 어떤 상황에서 마할라노비스 거리가 사용되었는지 알아야 질문하신 내용을 이해할 수 있을 것 같습니다. 참고로 마할라노비스 거리는 두 개체 사이의 거리가 아니라 개체와 분포 사이의 거리를 측정할 때 사용됩니다.

  • 자화이 2016.03.30 16:27 신고 ADDR 수정/삭제 답글

    너무 쏙쏙 들어오는 설명 감사해요 ㅎㅎ

  • 1212 2016.04.23 20:43 신고 ADDR 수정/삭제 답글

    키야 핵심을 찌르는 설명 감사합니다!!

  • 피노 2016.06.04 13:00 신고 ADDR 수정/삭제 답글

    쉬운 설명에 항상 감사드립니다. 이 문제가 이해가 잘 안되어서요... The mean IQ score for 1,500 students is 100, with a standard deviation of 15. Assuming a normal curve distribution, how many students have an IQ between 85 and 115 ? Refer to the figure below. 곡선 그래프 그림을 말로 표현하면, 평균(x- 엑스바): 평균(x-엑스바)를 중심(기준)으로 하여 좌측1과 우측1 사이=68%(양쪽 각각34%, 34%), 평균 중심에서 좌측 2와 우측 2사이=95%(1과2 사이 양측 각각 13.5%), 평균 중심에서 좌측3과 우측3 사이(간격)=99%(양측 2와 3사이 각각 2%), 평균중심에서 양측 각각 3 이상=0.5% 답: 1,020 명 설명보면: The number 85 represents one standard deviation below the mean of 100 and the number 115 represents one standard deviation above 100. 즉 34%+34%=68% of the students have an IQ between 85 and 115. 이것의 percent represents (1,500)*(0.68)=1,020 명 학생 입니다. 무슨 말인지 설명 좀 부탁드립니다.

    • BlogIcon 다크pgmr 2016.06.04 14:51 신고 수정/삭제

      약은 약사에게, 문제 풀이는 학교 선생님께. ^^
      고교 수학의 확률통계 단원의 연습문제로 보입니다. 표준정규분포에 대해 다시 한번 공부해 보시기 바랍니다.

  • 피노 2016.06.08 15:33 신고 ADDR 수정/삭제 답글

    죄송합니다만 혹시 이 문제 풀 수 있는 분 누구 없으세요? 제가 고등학교 졸업한지 벌써 15년 이상 되었고 ... 문과 출신에...사회 생활 하면서 수학은 별로 쓸 일도 없었고, 다 잊어 먹었는데요.... 직장 생활 할려니 지금 이런게 필요하게 되었답니다. 양해 부탁드립니다.

    • BlogIcon 다크pgmr 2016.06.09 08:28 신고 수정/삭제

      좋습니다. 저는 학생이 스스로 공부해야 할 내용을 여기에 적은 줄 알았습니다. 하지만 설명이 쉽지는 않습니다. 그 이유는 수학의 확률통계 단원에서 배워야 할 내용 전체에 대해 설명을 요청했기 때문입니다. 일단, 확률분포, 정규분포, 표준정규분포의 개념에 대해 이해를 해야 합니다. 가장 좋은 방법은 고등학교 정석이나 수학 교과서의 확률분포 단원을 한번 읽어보는 것입니다. 확률분포에서 확률의 합은 항상 1이며 정규분포도 확률분포의 일종입니다. 표준정규분포는 평균이 0, 표준편차가 1인 정규분포로서 그 구간별 확률값들을 표준정규분포표를 참조해서 계산할 수 있습니다. '표준정규분포표'로 검색해 보시면 표준정규분포의 확률값들을 표로 미리 계산해 놓은 표가 있습니다. 위 문제의 확률값들도 표준정규분포표를 보고 계산한 것입니다. 그리고 모든 정규분포는 평균과의 거리를 표준편차로 나눔으로써 (즉, 블로그 글의 마할나노비스 거리를 이용해서) 표준정규분포로 변환할 수 있습니다. 위 문제에서 IQ 85, 115는 평균과의 마할나노비스 거리를 계산하면 (85 - 100)/15 = -1, (115-100)/15 = 1입니다. 따라서, 표준정규분포 표를 확인하여 -1 ~ +1 사이의 확률값을 확인하면 0.68이 나옴을 알 수 있으며 전체 학생수가 1500명이므로 이 구간의 학생수는 1020명이 됩니다. 공부에 있어서 나이는 큰 요소가 아니라고 생각합니다. 나이가 들수록 필요하다면 배우고 익혀야 합니다..

  • 쿠오오 2017.08.04 14:52 신고 ADDR 수정/삭제 답글

    정말 대단한 글입니다. 내공에 감탄하고, 좋은 글.. 다시 한번 감사합니다.

  • dddd 2017.08.07 00:14 신고 ADDR 수정/삭제 답글

    고등학교때 한번도 1등급을 놓쳐본적이 없는데
    왜 이런내용을 지금봤는지..
    단 한번도 수학을 배우면서 왜 이걸 배우는지 몰랐는데
    이 글을 보니까 해결되네요.. 아무쪼록 참 이 나라의 교육이 잘못됬다는 생각이 듭니다.
    좋은글 감사합니다

    • BlogIcon 다크pgmr 2017.08.07 08:20 신고 수정/삭제

      네.. 그래도 조금씩 좋아지기를 희망해 봅니다.

  • 돌맹이 2017.09.07 07:54 신고 ADDR 수정/삭제 답글

    명쾌한 설명입니다 좋은 내용에 매번 감사드립니다

  • 낙하 2017.10.08 14:54 신고 ADDR 수정/삭제 답글

    딥러닝 공부하다가 정규화에 대해 검색해서 들어왔는데,
    여기서 통계에 대한 개념을 명확히 짚고 갑니다! 명쾌한 설명 감사해요~!!