건물이나 시설 등의 정보를 설명하기 위해서는 '위치'와 '크기'를 전달하면 되듯이 데이터를 설명하기 위해서는 위치를 나타내는 대표값(representative value)과 크기(면적)에 해당하는 '산포(dispersion)'를 나타내는 대표값이 있다.

위치 모수(location parameter)

데이터 집합의 크기를 나타내는 대표값

  • 평균(mean 또는 average):

    • 산술평균(arithmetic mean)
      \begin{eqnarray}
      \bar{x} &=& \frac{x_1+x_2+\cdots+x_n}{n}\\ &=& \frac{1}{n}\sum_{i=1}^{n}x_i
      \end{eqnarray}

    • 가중평균(weighted mean 또는 weighted average)
      $$
      \begin{aligned}
      \bar{x} &= \frac{\sum_{i=1}^{n}w_ix_i}{\sum_{_i=1}^{n}w_i}
      \end{aligned}
      $$

  • 중앙값(median)

    • \(n\)이 홀수인 경우: \(\frac{n+1}{2}\)번째 값
      $$
      m_e=x_{\frac{n+1}{2}}
      $$
    • \(n\)이 짝수인 경우: \(\frac{n}{2}\)째 값과 \(\frac{n+1}{2}\)번째 값의 평균
      $$
      m_e=\frac{x_\frac{n}{2} + x_\frac{n+1}{2}}{2}
      $$
  • 최빈값(mode): 도수(frequency)가 가장 높은 값

  • 최소값

  • 최대값

 

척도 모수(scale parameter)

데이터 집합의 산포를 나타내는 대표값

  • 분산(variation)

    • 모분산(population variance): 모집단의 분산
      $$
      \sigma^2=\frac{1}{N}\sum_{i=1}^{N}(x_i-\mu)^2
      $$
    • 표본분산(sample variance): 표본의 분산
      $$
      s^2=\frac{1}{n-1}\sum_{i=1}^{n}(x_i-\bar{x})^2
      $$
  • 표준편차(SD, standard deviation)

    • 모표준편차(population standard deviation): 모집단의 표준편차
      $$
      \sigma=\sqrt{\frac{\sum_{i=1}^{N}(x_i-\mu)^2}{N}}
      $$
    • 표본표준편차(sample standard deviation): 표본의 표준편차
      $$
      s=\sqrt{\frac{\sum_{i=1}^{n}(x_i-\bar{x})^2}{n-1}}
      $$
  • 변동 계수(CV, coefficient of variation): 분포의 산포 정도를 비교하기 위한 표준화(standardization)
    $$
    \nu=\frac{s}{\bar{x}}\times100(%)
    $$

  • 범위(range)
    $$
    x_{\text{max}}-x_{\text{min}}
    $$

  • 사분위 범위(IR, interquartile range)

기타 척도

  • 표준오차(standard error): 데이터에서 산출(추정)된 각종 통계량의 오차
  • 왜도 또는 비대칭도(skewness): 데이터 분포의 비뚤어진 정도를 나타내는 통계량으로 분포의 대칭성을 나타낸다
    $$
    \begin{aligned}
    g_1 &= \frac{\frac{1}{n}{\sum_{i=1}^n(x_i-\bar{x})^3}}{\Big(\frac{1}{n}\sum_{i=1}^n(x_i-\bar{x})^2\Big)^{3/2}} \&=\frac{n}{(n-1)(n-2)}\sum_{i=1}^n\bigg(\frac{x_i-\bar{x}}{s}\bigg)^3
    \end{aligned}
    $$
  • 첨도(kurtosis): 데이터 분포의 뾰족한 정도를 나타내는 통계량으로 데이터 분포에서 봉우리가 얼마나 뾰족하게 솟아있는지를 가리킨다
    $$
    g_2 = \frac{\frac{1}{n}{\sum_{i=1}^n(x_i-\bar{x})^4}}{\Big(\frac{1}{n}\sum_{i=1}^n(x_i-\bar{x})^2\Big)^{2}} -3
    $$

'Data Science with Python' 카테고리의 다른 글

재표본 추출  (0) 2019.11.25
가설검정  (0) 2019.11.22
A/B 검정  (0) 2019.11.22
1. Data Science in a Big Data World  (0) 2018.04.06

재표본추출 Resampling

  • 통계학에서 무작위 변동성을 알아보기 위해, 관찰한 데이터 값에서 표본을 반복적으로 추출하는 것
  • 머신러닝 모델의 정확성을 평가하고 향상시키기위해 적용 가능
    • 부트스트랩 데이터 집합을 기반으로 하는 각각의 의사 결정 트리 모델의 예측을 배깅이라는 절차를 통해 평균 예측값을 얻을 수 있다.

  • 재표본추출 방법
    • 순열검정(permutation test): 두 개 이상의 표본을 함께 결합하여 관측값을 무작위로 (또는 전체를) 재표본으로 추출하는 과정
      • 임의화검정, 임의순열검정, 정확검정
    • 부트스트랩(bootstrap): 통계량이나 모델 매개변수(모수)의 표본분포를 추정하기 위해현재 있는 표본에서 추가적으로 표본을 복원추출하고 각 표본의 통계량과 모델을 다시 계산하는 과정

순열검정

  • 두 개 이상의 표본을 사용하며, 일반적으로 A/B 또는 기타 가설검정을 위해 사용
  • 순열검정의 과정
    1. 여러 그룹의 결과를 하나의 데이터 집합으로 합친다.
    2. 결합된 데이터를 잘 섞은 다음 A그룹과 동일한 크기의 표본을 (비복원) 무작위로 추출한다.
    3. 나머지 데이터에서 B그룹과 동일한 크기의 샘플을 (비복원) 무작위로 추출한다.
    4. C그룹과 D그룹 등에 대해서도 동일한 작업을 수행한다.
    5. 원래의 표본에 대해 구한 통계량 또는 추정값(예를 들어 그룹 비율의 차이)가 무엇이었든 간에 지금 추출한 재표본에 대해 모두 다시 계산하고 기록한다. 지금까지의 작업이 한 번의 순열 반복이다.
    6. 1~5단계를 \(R\)번 반복하여 검정통계량의 순열 분포를 얻는다.
  • 실험을 통해 관찰한 그룹간의 차이와 순열 과정에서 얻은 집합에서의 차이를 비교한다.
  • 관찰한 차이가 순열로 보이는 차이의 집합 안에 잘 들어 있다면, 우리는 어떤 것도 증명할 수 없다.
    • 관찰한 차이가 우연히 일어날 수 있는 범위 안에 있다는 의미
  • 관찰한 차이가 대부분의 순열 분포의 바깥쪽에 있다면 우리는 우연 때문이 아니라고 결론내릴 수 있다.
    • 통계적으로 유의미하다(statistically significant)고 한다.


'Data Science with Python' 카테고리의 다른 글

기술 통계량(Descriptive Statistics)  (0) 2020.06.16
가설검정  (0) 2019.11.22
A/B 검정  (0) 2019.11.22
1. Data Science in a Big Data World  (0) 2018.04.06

가설검정

  • 통계적 가설검정(statistical hypothesis test): 통계적 추측의 하나로서, 모집단 실제의 값이 얼마가 된다는 주장과 관련해, 표본의 정보를 사용해서 가설의 합당성 여부를 판정하는 과정
  • 통계적 가설검정은 연구자가 우현이 일어난 일에 속지 않도록 보호하기 위한 방법을 개발되었다.
    • 사람은 임의성을 과소평가하는 경향이 있음
    • 무작위 사건을 어떤 중요한 의미가 있는 패턴을 갖는 것으로 오해하는 경향이 있음
  • A/B 검정을 계획할 때, 일반적으로 가설을 염두에 두고 진행
  • 적절하게 설정된 A/B 검정은 A와 B 사이에서 관찰된 차이를 다음 원인으로 설명 가능
    • 우연한 대상 선정
    • A와 B의 진정한 차이
  • 통계적 가설검정은 A그룹과 B그룹 사이에서 관찰되는 차이가 우연에 의해 발생한 것인지 평가하기 위해 A/B 검정 등의 무작위 실험을 포함하는 분석임


용어 정리

  • 귀무가설 또는 영가설(null hypothesis): 우연 때문이라는가설
  • 대립가설(alternative hypothesis): 증명하고자 하는 가설로 귀무가설과 대조되는 가설
  • 일원검정(one-way test): 한 방향으로만 우연히 일어날 확률을 계산하는 가설검정
  • 이원검정(two-way test); 양 방향으로 우연히 일어날 확률을 계산하는 가설검정


가설검정의 절차

  • 가설검정은 다음과 같이 총 5단계 절차를 거친다.
    1. 유의수준의 결정, 귀무가설 대립가설 설정

    2. 검정통계량의 설정

    3. 기각역의 설정

    4. 검정통계량 계산

    5. 통계적인 의사결정


귀무가설

  • 가설검정의 논리
    • 사람은 실제로 우연히 일어난 일이지만, 흔하지 않다는 것에 주목하여 그것이 뭔가 의미가 있고 우연이 아닐 것이다라고 추정하는 경향을 가짐
    • 따라서 실험에서 얻은 그룹 간의 차이가 임의성을 통해 얻을 수 있는 합리적인 수준과는 더 극단적으로 달라야 한다는 증거를 제시할 수 있어야 함
  • 가설검정의 기본 가정 = 귀무가설
    • 그룹들이 보여주는 결과는 서로 같으며, 그룹 간의 차이는 우연에 의한 결과이다.
  • 귀무가설이 틀렸다는 것을 입증하여, A그룹과 B그룹 간의 차이가 우연에 의한 것이 아니라는 것을 보여주는 귀류법을 사용한다.

대립가설

  • 가설검정은 귀무가설과 대립가설을 사용하며, 대립가설의 예로는 다음과 같다
    • 귀무가설: A그룹과 B그룹의 평균에는 차이가 없다.
    • 대립가설: A그룹과 B그룹은 다르다. 즉, 한쪽의 평균이 크거나 작다
  • 귀무가설과 대립가설은 모든 가능성을 설명할 수 있어야 한다.

일원/이원 가설검정

  • A/B 검정을 통해 기존에 기본으로 사용하던 A와 비교하여 새로운 B가 어떠한지 검증한다고 생각해보자.
    • 가정: 이 경우 B가 월등히 좋다는 것으로 입증되지 않는 이상 A를 계속 사용한다.
    • 이런 상황에서 우연에 의해 B가 좋은 것으로 선택되지 않도록 가설검정을 해야한다.
    • B가 좋다는 것을 확실하게 입증하지 못하면 A를 계속 하용하면 되기 때문에 우연에 의해 속을 일은 없게 된다.
    • 이런 경우 방향성을 생각한 대립가설이 필요하다.
    • 귀무가설: A가 B보다 좋다.
    • 대립가설: B가 A보다 좋다.


  • 어느 쪽으로도 속지 않도록 가설검정을 하려면 대립가설은 양방향이 되어야 한다.
    • 대립가설: A는 B와 다르며, 더 좋거나 나쁠 수 있다.


'Data Science with Python' 카테고리의 다른 글

기술 통계량(Descriptive Statistics)  (0) 2020.06.16
재표본 추출  (0) 2019.11.25
A/B 검정  (0) 2019.11.22
1. Data Science in a Big Data World  (0) 2018.04.06

A/B TEST

  • 검정(test): 일정한 규정에 따라 자격이나 조건을 검사하여 결정
  • A/B 검정: 두 종류의 처리 방법이나 제품 또는 절차 중 어느 한쪽이 다른 한쪽보다 더 낫다는 것을 입증하기 위하여 실험대상을 A와 B 두 개의 그룹으로 나누어 진행하는 실험


A/B 검정의 예

  • 종자 발아가 어디에서 더 잘되는지 알아보기 위해 두 가지 토양 처리를 검정한다.
  • 암을 더 효과적으로 억제하는 두 가지 치료법을 검정한다.
  • 두 가지 가격을 검정하여 더 많은 순이익을 산출하는 쪽을 결정한다.
  • 두 개의 인터넷 뉴스 제목을 검정하여 더 많은 클릭을 유도하는 쪽을 결정한다.
  • 두 개의 인터넷 광고를 검정하여 어느 것이 더 높은 전환율을 얻는지 판단한다.

용어 정리

  • 대상(subject) 또는 피실험자(): 처리를 적용할 개체
  • 처리(treatment): 어떤 대상에 가하는 특별한 환경이나 조건
  • 처리군 또는 처리그룹(treatment group): 특정 처리에 노출된 대상의 집합
  • 대조군 또는 대조그룹(control group): 어떤 처리도 하지 않은 대상의 집합
  • 검정통계량(test statistics): 처리 효과를 측정하기 위한 지표
  • 눈가림 검정(blind test): 특정 처리에 대한 인식이 검정에 영향을 줄 수 있으므로 대상자가 받고 있는 처리가 A인지 B인지 알지 못하도록 하는 검정 방법


  • 제대로 된 A/B 검정에는 둘 중 어느 한쪽 처리를 가할 대상이 주어진다.
  • 검정의 핵심은 대상을 어떤 특정 처리에 노출시켜야 하는데, 대상을 무작위로 어느 한쪽 처리에 노출시키는 것이다.
  • 처리에 노출된 결과의 차이는 다음과 같은 이유로 발생한다고 생각할 수 있다.
    • 각각 다른 처리의 효과
    • 어떤 대상이 어떤 처리에 노출되는지에 관한 경우의 수
      • 무작위로 노출시킨 결과, 자연스럽게 더 좋은 결과를 보이는 대상이 A나 B 한쪽에 집중된다
  • A그룹과 B그룹을 비교하는 데 사용하는 검정통계량 또는 측정지표에 주의해야 한다.


대조그룹의 필요성

  • 대조그룹이 없다면
    • 처리그룹 이외의 대상이 모두 같다는 보장을 할 수 없으며
    • 어떤 차이가 나더라도 처리(또는 우연)로 인한 결과인지 확신할 수 없다
  • 처리를 하지 않은 대조그룹은 처리그룹과 동일한 조건을 적용한다.
    • 단순히 '기준선'이나 이전 경험과 비교할 경우, 처리 이외의 다른 요소가 개입할 가능성이 있기 때문이다.
  • 웹 환경에서의 A/B 검정 시 처리 조건의 예
    • 웹 페이지의 디자인
    • 제품의 가격
    • 헤드라인의 어감 등
  • 무작위 원칙을 고수하기 위하여 여러 행동 유형과 관련된 지표를 수집할 수 있지만, 실험이 결국 A처리와 B처리 간의 결정으로 이어지는 경우에 단일 지표나 검정통계량을 사전에 정해놓아야 하며, 그렇지 않고 실험 후 검정통계량을 사용하게 되면 연구자 편향에 의해 제대로된 결과를 얻지못할 수 있다.


'Data Science with Python' 카테고리의 다른 글

기술 통계량(Descriptive Statistics)  (0) 2020.06.16
재표본 추출  (0) 2019.11.25
가설검정  (0) 2019.11.22
1. Data Science in a Big Data World  (0) 2018.04.06

Big Data

  • 너무 크고 복잡해서 관계형 데이터베이스 관리 시스템(RDBMS; Relational Database Management Systems)와 같이 전통적인 데이터 관리 기법으로는 다루기 어려운 데이터


Data Science

  • 대량의 데이터를 분석해 지식을 추출하는 방법을 포함하며, 오늘날 쏟아지는 대량의 데이터를 다룰 수 있는 통계의 확장판
  • 컴퓨터 과학부터 통계학의 단골 메뉴까지 망라하는 기법을 활용


Big Data와 Data Science와의 관계

  • 원유와 정유 공장의 관계와 유사하며, 데이터 사이언스와 빅데이터는 통계적이고 전통적인 데이터 관리로부터 발전했으나 이제는 별도의 영역으로 간주


Big Data의 특징

http://www.gereports.kr/wp-content/uploads/2016/12/3v-820x327.png

출처 : http://www.gereports.kr/enabling-value-from-your-data/


  • 빅데이터의 특징은 V로 시작하는 세 단어로 표현되곤 한다.
    • Volume : 얼마나 많은 데이터가 있는가?
    • Variety : 데이터의 종류가 얼마나 많은가?
    • Velocity : 새로운 데이터가 얼마나 빨리 생성되는가?
  • 위의 3가지에 Veracity(정확성)을 추가해 4개의 항목으로 표현
  • 이러한 속성들이 바로 전통적인 데이터 관리 도구와 빅데이터를 구분
  • 빅데이터는 데이터의 수집과 선별, 저장, 검색, 공유, 전송, 시각화와 같은 하나하나의 과정이 쉽지 않음
  • 빅데이터에서 통찰을 얻는 것 또한 특별한 기술


1.1  Benefits and uses of data science and big data

  • 거의 모든 산업 분야별 기업체에서는 고객, 업무, 직원, 상품에 대한 통찰을 얻기 위해 데이터 사이언스와 빅데이터를 활용
  • 많은 기업에서 데이터 과학을 사용해 고객에게 더 좋은 경험을 하게 하고 교차 판매(다른 물품도 사게하는 일)나 상향 판매(더 비싼 물품을 사게하는 일), 개인화를 추구
  • 사용 예
    • 구글 애드센스(Google AdSense): 인터넷 사용자로부터 데이터를 수집해 인터넷을 이용하는 사람에게 적절한 광고 메시지를 전달
    • 맥스포인트(MaxPoint): 실시간 맞춤형 광고
    • 인사 전문가: 후보 검증을 위해 피플 애널리틱스(people analytics)와 텍스트 마이닝을 사용하여 직원의 사기를 점검하고 동료 간의 비공식적 네트워크를 연구
    • 금융 기관 : 데이터 과학을 사용해 주식 시장을 예측하고 대출의 위험을 평가하며 신규 고객을 유치하는 방법을 학습


1.2  Facets of data

  • 데이터 사이언스 및 빅데이터는 여러 유형의 데이터를 사용하는데 서로 다른 도구와 기법을 사용해야 함

데이터의 유형

  • 구조적 데이터(structured data)
  • 비구조적 데이터(unstructed data)
  • 자연어(natural language)
  • 장비에서 생성된 데이터(machine-generated data)
  • 그래프 기반 데이터(graph-based data)
  • 오디오, 비디오 및 이미지
  • 스트리밍 데이터(streaming data)


Structured Data

  • 정형 데이터라도 하며 데이터 모델에 의존적이며 레코드 내의 고정된 필드에 저장되어 있는 데이터
  • 데이터베이스의 테이블이나 엑셀 파일에 저장하기 쉬운 편
  • 데이터베이스에 있는 데이터를 관리하고 조회하는 데는 SQL(Structured Queary Language, 구조화된 질의 언어)을 사용
  • 구조적 데이터라 할지라도 가계도와 같은 계층적 데이터는 전통적인 관계형 데이터베이스에 저장하기 어려움
  • 사람들과 기계들 때문에 우리가 보는 세계는 구조적 데이터로만 이루어지지 않으며, 데이터는 비구조적인 경우가 더 많음


Unstructured Data

  • 이메일과 같이 데이터 모델에 잘 맞지 않는 데이터
  • 이메일에는 발신자, 제목, 본문과 같은 구조적 요소가 포함되어 있지만 특정 직원에 대한 불만 사항을 쓴 사람의 수를 알아내는 것은 쉽지 않음
  • 어떤 사람을 지칭하는 데만 해도 여러 방법이 존재할 뿐만 아니라 수천 가지 언어와 사투리로 인해 문제가 더욱 복잡해짐


Natural Language

  • 자연어는 비구조적 데이터의 특수한 유형
  • 자연어 처리를 위해서는 특수한 데이터 사이언스 기법과 언어학에 대한 지식이 필요하기 때문에 처리가 어려움
  • 자연어 처리 커뮤니티에서는 개체 인식, 주제 파악, 요약문 작성, 텍스트 완성, 감정 분석에서 성공을 거두었지만,
  • 한 분야에 맞게 학습시킨 모델을 다른 분야에 적용하는 것이 불가능


Machine-generated Data

  • 컴퓨터, 프로세서, 애플리케이션, 기타 기계가 사람의 개입없이 자동으로 생성한 정보
  • 기계 데이터인 경우에 많은 양의 데이터가 빠른 속도로 쌓이므로 확정성 있는 도구에 상당 부분 의존해 분석해야 함
  • 웹 서버 로그, 호출 상세 기록, 네트워크 이벤트 로그, 원격 검침 정보 등과 같이  기계 데이터는 고전적인 테이블 구조로 된 데이터베이스 잘 들어 맞음
  • 상호 관계가 복잡하거나 '네트워크를 이루른' 데이터에서는 개체(entity) 간의 관계가 중요하므로 다른 식으로 접근해야 함


Graph-based 또는 network data

  • 그래프 또는 네트워크 데이터는 객체 사이의 관계나 인접한 정도에 초첨을 맞춘 데이터
  • 그래프 구조에서는 꼭짓점(node)과 꼭짓점과 꼭짓점을 잇는 선분(edge), 속성(property)을 가지고 그래프 데이터를 표현하고 저장
  • 그래프 데이터는 소셜 네트워크를 표현하는 데 적합해 어떤 사람의 영향력을 평가하거나 사람들 사이의 최단 경로를 수치화하는데 사용
  • 그래프 데이터베이스는 그래프 기반 데이터를 저장하는데 사용하며 SPARQL과 같은 특수한 질의 언어를 사용해 조회


1.3  The data science process

  • 데이터 사이언스의 진행 과정은 일반적으로 그림 1과 같이 여섯 단계로 이루어진다.


그림 1  데이터 사이언스의 진행 과정


1. Setting the research goal

  • 데이터 사이언스 프로젝트를 요청받으면 가정 먼저 할 이은 프로젝트 사명서를 준비하는 것
  • 사명서에 포함될 내용
    • 무엇을 조사할 것인가?
    • 그 결과를 가지고 회사가 어떻게 이익을 낼 것인가?
    • 어떤 데이터와 자원이 필요한가?
    • 일정
    • 산출물 등


2. Retrieving data

  • 사명서에 명시된 데이터를 수집하는데
  • 이 단계에서 다음을 확인
    • 프로그램에서 사용할 데이터가 존재하는가?
    • 데이터의 품질은 어느 정도인가?
    • 데이터에 접근할 수 있는가?


3. Data preparation

  • 데이터를 수집하는 과정에서 오류가 발생하는 일이 잦기 때문에 데이터의 품질을 높여 다음 단계에서 쓸 수 있도록 해야 함
  • 데이터 준비 단계는 다음 3단계로 구성
    • Data cleaning
      • 데이터 출처로부터의 거짓 데이터를 제거하며 데이터 출처 사이의 불일치를 해소하는 정제 과정
    • Data intergration
      • 여러 데이터 출처로부터 얻은 정보를 조합함으로써 데이터 출처를 보충하는 통합 과정
    • Data transformation
      • 데이터를 모델에 적합한 형태로 변환하는 과정


4. Data exploration

  • 데이터를 깊이 이해하기 위해 다음의 내용을 이해하려고 노력해야 함
    • 변수들의 상호작용
    • 데이터의 분포
    • 이상점의 존재
  • 데이터를 탐색하기 위해 기술 통계학(descriptive statistics), 시각화 기법, 단순한 모델을 주로 사용하며 이를 탐색적 데이터 분석(exploratory data analysis, EDA)이라고 함


5. Data modeling

  • 이전 단계로부터 얻은 모델, 도메인 지식, 데이터에 관한 통찰을 가지고 연구 과제에 대한 답을 찾음
  • 통계학, 머신러닝, 운영과학(operational reseach)과 같은 분야의 기법을 사용
  • 모델을 구축하는 과정에서 모델로부터 변수를 선택하고, 모델을 실행하고, 모델을 진단하는 것을 반복적으로 수행


6. Presentation 및 automation

  • 결과를 발표하기 위해 발표 자료나 연구 보고서 등의 결과물을 작성
  • 때로는 업무 수행 과정을 자동화해야 함



1.4  The big data ecosystem and data science

  • 데이터 사

'Data Science with Python' 카테고리의 다른 글

기술 통계량(Descriptive Statistics)  (0) 2020.06.16
재표본 추출  (0) 2019.11.25
가설검정  (0) 2019.11.22
A/B 검정  (0) 2019.11.22

+ Recent posts