내일배움캠프

데이터 분석 트랙 40일차 25.04.09. [TIL]

jjaio8986 2025. 4. 9. 18:44
  • 통계학 총 정리

1. 이론

2. 유의성 검정

3. 회귀 분석

4. 상관관계

5. 가설 검정 주의사항


  • 통계학 총 정리
  • 통계 이론과 데이터의 분포

[통계 이론] > [개념]

 1. 기술 통계, 추론 통계

  1.1. 기술통계  # 데이터 요약, 설명을 목적으로 통계를 활용하는 방법, 

   A. 특징

   - 주로 다음의 4~5개의 기본 통계값을 주로 활용한다.

기본 통계값의 종류 평균(mean)
중앙값(median)
분산(Variance)
표준편차(Standard Deviation)
범위(Range)
특징 - 데이터들의 주된 존재 위치 혹은 범위 추정 및 설명
- 흔히 통계 분석 기법 중 "위치 추정"에 사용
- 데이터들의 흩어진 정도
[데이터들의 차이 정도]
- 흔히 통계 분석 기법 중 "변이 추정"에 사용

cf) [기술 통계의 기본 통계값들의 활용] "데이터 분포 탐색"  # 데이터의 값들이 어떻게 이루어져 있는지 확인하는 방법

 

  

 

 1.2. 추론 통계  # 표본을 통한 모집단 추정가설 검정을 목적으로 통계 활용

  A. 특징

  - 크게 2개의 기법이 사용된다.

주된 사용 기법 신뢰구간 (Confidence Interval) 가설검정 (Hypothesis Testing)
특징 - 표본에서 모집단 평균이 특정 범위 내 존재할 것이라 추정되는 구간
- 확률로 표현!
- 흔히 95% 신뢰구간 사용
- 모집단에 대한 가설 검증
- 귀무가설
- 대립가설
- "p-value"를 통한 귀무가설 기각 여부 결정

 

[통계 이론] > [분석법]

1. 위치추정 및 변이추정

 - 위치추정 : "평균, 중앙값을 통해 데이터의 중심 위치를 추정"("np.mean()", "np.median()")

 - 변이추정 : "분산, 표준편차, 범위(range)를 사용해 데이터들이 서로 얼마나 다른지 확인"("np.var(데이터)", "np.std(데이터)", "np.max(데이터)-np.min(데이터)")

 

2. 데이터 분포 확인방법[시각화 방법]  # 데이터의 타입에 따라 다른 방법을 사용

cf) 이진 데이터 : 홀/짝, 참/거짓, 여성/남성처럼 2개의 서로 다른 의미쌍을 가진 숫자 혹은 문자 데이터

cf) 범주 데이터 : 문자 혹은 숫자로 구성되어 연속한 패턴을 갖거나 혹은 페턴없이 서로 독립적으로 하나의 카테고리로 묶이는 등의 숫자나 문자타입의 데이터 군 ex. "한국, 중국, 일본, ...", "XL, L, M, S"

 

 A. 히스토그램  # 수치형 데이터에 사용

  - 정의 : 데이터 값을 임의의 범위로 나누어 그 범위에 해당하는 값이 몇 개 있는지 확인

  ※ 막대그래프와는 다르다!

 

 B. 상자 그림(Box plot)  # 수치형 데이터에 사용

 - 정의 : 데이터 분포를 시각적으로 표현하는 대표적인 방법

 

 C. 파이그림(동그라미차트), 막대그래프    # 주로 문자열 타입이 들어간 데이터! "이진 데이터"혹은 "범주 데이터"타입에 사용

 - 최빈값을 주로 사용! 를 통해 그들의 분포를 확인한다.

 

 D. 상관관계

  - 정의 : 데이터들끼리 서로 관련이 있는지 확인, "두 변수 간의 관계를 측정"

    # x변수와 y변수의 변화량, 기울기!

    # -1에서 1사이의 값을 갖는다!

  - 인과관계 vs 상관관계 : 인과 관계는 한 변수가 다른 변수에 미치는 영향을 나타냄!

                                       상관관계는 AB가 서로 영향

                                       인과관계에선 AB에 영향을 미치지만 BA에게 영향을 미치지 않음

                                       인과관계를 찾고자 하면 더 까다롭게 들어가야 함! 즉 원인과 결과가 무엇인지 확인하는 것!

 E. 두 개 이상의 변수 탐색

  - 다변량 분석”, 여러 데이터들끼리 서로 관련이 있는지 확인


[통계 기법]>[데이터 분포 개념]

1. [분포]>[개념] 모집단과 표본

 1.1. 정의

   - "모집단"은 '분석을 시행하는 대상(표본)의 원본, 전체 집단', "표본"은 '분석을 시행하는 대상, 모집단에서 무작위 추출한 일부'

   - 표본을 사용하는 이유

   A. “현실적인 제약”(비용, 시간, 접근성)

   B. "대표성"(모집단의 다양성을 반영하는 무작위 표본 추출을 통한 모집단을 일반화한 추정 혹은 결론이 가능)

   C. "데이터 관리"(데이터 처리 용이, 데이터 품질 관리에 유용)

   D. "모델 검증 용이"

 

 1.2. 활용 사례 : 도시연구(평균 전력 사용량), 의료 연구(임상실험), 시장조사(소비자 선호도 파악, 시장 트렌드 추정), 정치여론조사

 

 1.3. 표본 관련 파이썬 라이브러리 및 세부 기능들

  A. “numpy.random” : 넘파이 라이브러리의 일부, 다양한 확률 분포에 따라 난수를 생성하는 기능! 데이터 분석, 시뮬레이션 등 다양한 분야에서 사용

 

  B. “numpy.random.normal()” : 넘파이 라이브러리의 기능 중 하나! 정규분포(가우시안 분포)를 따르는 난수를 생성!

  <기본 형태(defalt값) : numpy.random.normal(loc=0.0, scale=1.0, size=None)>  # 평균은 0 분산은 1인 난수를 생성!

 

  C. "numpy.random.choice" : 주어진 배열(데이터)에서 임의로 샘플링 요소를 선택한다.

<기본 형태(defalt값) : numpy.random.choice(a, size=None, replace=True, p=None)>

 

# {a} : 셈플링할 원본 배열, a가 정수인 경우 "np.arange(a)"와 동일하게 간주

# size : 출력 배열의 크기 (기본값은 None, 즉 단일 값 반환, 정수 혹은 튜플셩태의 정수들을 입력시 해당 값만큼 나온다.)

# replace : 복원 추출 여부를 나타냄! "True"이면 동일 요소가 여러 번 선택될 수 있음

# p : 각 요소가 선택될 확률, 배열의 합은 1이어야 한다.

 

  D. "plt.hist" : 플롯립 라이브러리의 히스토그램 그리는 함수! 데이터 분포를 시각화하는 데 유용한 도구

<기본형태(defalt값) : plt.hist(bins=?, alpha=?, label=?, color=?)>

# bins : 히스토그램의 "구간 개수"(int) or "경계"(list형식으로 [140, 150, 160,....])를 의미! 데이터 몇 개의 구간 혹은 범위로 나눌 것인가!    # 직접 지정 가능!

# alpha : 히스토그램 막대의 투명도! 0~1사이의 값! [0=투명, 1=불투명]

# label : 히스토그램의 레이블을 지정 (여러 히스토그램을 그릴 때 범례를 추가할 때 사용)

# color : 히스토그램 막대의 색상을 지정

 

2. [분포]>[개념] 표본오차와 신뢰구간

 2.1. 표본오차 (Sampling Error)

  - 표본에서 계산된 통계량과 모집단의 통계량 사이의 차이 (즉, 셈플링한 데이터 개수와 모집단 데이터 개수의 차이)

  - 표본 크기가 클수록 표본 오차가 작아짐.

 

 2.2. 신뢰구간 (Confidence Interval)

  - 표본에서 모집단의 특정 파라미터(ex. 평균, 비율)에 대해 추정한 값이 주로 위치할 범위!

# 표본이 전체를 대표할 것이라 대전제를 가정했으나 실제로 차이가 있을 수 있다. 그 차이! 오차를 제외하고 믿을 수 있는 값! 우리가 가정한 목표나 패턴이 현살에서 이 범위에 나타날 것이라 추정하는 것! 오차를 감안한 범위 

  - 계산식 : "표본평균 +z*표준오차"~ "표본평균 -z*표준오차"

  # z : 선택된 신뢰 수준! 흔히 95% 신뢰수준을 사용 따라서 z값은 1.96

  # 표준오차 : 표준편차 / (n**0.5) 즉, 표준편차를 표본개수의 제곱근으로 나눈 값이 표준 오차

<신뢰구간과 관련된 라이브러리>

A. scipy.stats : Scipy 라이브러리의 일부, 통계 분석을 위한 다양한 함수와 클래스들을 제공

 

B. scipy.stats.t.interval : Scipy 라이브러리의 다양한 기능 중 하나. 주어진 신뢰 수준에 대하여 t-분포(student t 분포)를 사용해 신뢰 구간을 계산하는 데 사용

<기본 형태 : scipy.stats.t.interval(alpha, df, loc=0, scale=1)>

# alpha : '신뢰 수준', 95%신뢰구간을 원할 시 alpha= 0.95

# df : '자유도', 일반적으로 표본 크기에서 1을 뺀 값으로 설정(df=n-1)

# loc : '위치', 일반적으로 표본 평균을 설정

# scale : '표준 오차', 표본 표준오차=표본 표준편차를 표본크기의 제곱근으로 나눈 값

   <scale = sample_std/sqrt(n)>

 

3. [분포]>[데이터의 형태] 정규분포  

 - 정의 : 종 모양 대칭으로 데이터가 평균 주위에 몰려있는 분포를 의미

 - "np.random.normal()"을 통해 정규 분포를 따르는 데이터를 생성할 수 있다.

 

4. [분포]>[데이터의 형태] 긴 꼬리 분포

 - 정의 : 대부분의 데이터가 분포의 한쪽 끝에 몰려 있고, 반대쪽으로 긴 꼬리가 이어지는 형태의 분포

 - 정규분포와 달리 비대칭적, 특정한 하나의 분포를 의미하지 않고 여러 종류의 분포(ex.파레토 분포, 지프의 법칙, 멱함수)를 포함

 - "np.random.exponential(?, ?)"를 통해 긴 꼬리 분포의 데이터를 생성할 수 있다.

 

5. [분포]>[데이터의 형태] 스튜던트 t 분포   # 데이터 수가 적을 때!, 표준편차를 알 수 없을 때!

 - 정의 : 모집단의 표준편차를 알 수 없고 표본 크기가 작은 경우(일반적 30미만)에 사용 

 - 정규분포와 유사! 그러나 표본 크기가 작아질 수록 꼬리가 두꺼워진다

# 양 끝의 데이터 수 혹은 확률이 중앙부분과 차이가 적어지기에

 - "np.random.standard_t(df=?, size=?)"를 통해 스튜던트 t 분포 데이터를 생성할 수 있다.

 

### 여기까지 수치형 데이터의 형태! 자주 사용되는 분포!

 

6. [분포]>[데이터의 형태] 카이제곱분포  # 독립성 검정 적합도 검정에 사용

 - 범주형 데이터에서 독립성 검정이나 적합도 검정에 사용

 - 자유도에 따라 모양이 달라짐

 - 상관관계 or 인과관계 판별시 '원인', '독립변수'가 완벽하게 서로 다른 질적 자료일 때 활용

 - "np.random.chisquare(df=?, size=?)"를 통해 카이제곱분포를 따르는 데이터 생성 가능

 

7. [분포]>[데이터의 형태] 이항분포    # 데이터가 수치 즉 빈도로 나오기에 히스토그램으로도 그릴 수 있다.

 - 정의 : 독립 시행이 n번 반복되고, 각 시행에서 성공-실패 중 하나의 결과만 가능한 경우를 모델링하는 분포

 - 막대 그래프의 형태로 표현된다.

 - "np.random.binomial(n=?, p=?, size=?)"를 통해 이항분포에 대한 데이터를 생성할 수 있다.

 # n = 표본의 개수! 실험 횟수

 # p = 성공 혹은 하나의 결과가 나올 확률

 # size = 전체 모집단의 크기

 

8. [분포]>[데이터의 형태] 푸아송 분포 

 - 정의 : 단위 시간 또는 단위 면적 당 발생하는 사건의 수모델링할 때 사용하는 분포 # 이산형 분포! (연속적인 값이 아니기에)

 - 평균 발생률 λ”[람다]가 충분히 클 때 정규분포에 가깝다.

 - "from scipy.stats import poisson" scipy라이브러리의 .stats[통계를 의미]기능을 호출하여

 -  "poisson.pmf(x, lambda_value)"를 통해 푸아송 분포를 따르는 데이터를 생성할 수 있다.

 - 막대그래프 형태로 표현한다.

# x = np.arange(?, ?)    # 사건 발생할 수 있는 횟수의 범위를 의미

# lambda_value =  ?  # 평균 발생률을 의미한다.

 

9. [분포]>[데이터의 형태] 분포 선택 기준 정리

a. 데이터 수가 충분하다 : 정규분포

b. 데이터 수가 작다 : 스튜던트 t 분포

c. 일부 데이터가 전체적으로 큰 영향을 미친다 : 롱 테일 분포(파레토 분포)

 

d. 범주형 데이터의 독립성 검정이나 적합도 검정 : 카이 제곱 분포

e. 결과가 두 개(성공 혹은 실패)만 나오는 상황 : 이항 분포

f. 특정 시간이나 공간에서 발생하는 사건 카운트 : 푸아송 분포


  • 유의성 검정

[통계 방법론] > [유의성 검정]

1. [통계 방법론]>[유의성 검정 방법1] A/B 검정   

# 즉, 설정한 가설이 기존의 데이터 패턴과 차이가 있다! 즉, 유의미한 가설이므로 상세하게 의미를 해석해보아야 한다.

 - 정의 : 두 버전 중에서 어느 것이 더 효과적인지 평가하기 위해 사용하는 검정 방법

 - 사용처 : 전환율, 클릭률, 구매수, 방문 기간, 방문 페이지 수, 특정 페이지 방문 여부, 매출 등의 지표를 비교

 - 검정 목적 : 두 그룹간의 변화가 우연적인 것이 아니라 통계적으로 유의미한지 확인

 - 파이썬에서 활용하는 코드들

A. 라이브러리

 A.a. "numpy", "scipy.stats"라이브러리 호출

 A.b. stats.ttest_ind(실험 버전1, 실험 버전2) : 독립표본 t-검정을 수행해 두 독립 집단 간 평균 차이가 유의미한지 평가

  - 테스트 실험을 위해 귀무가설과 대립가설을 설정!

     "실험 버전1"은 '귀무가설! 즉 기존 데이터의 패턴'을 의미

     "실험 버전2"는 '대립가설! 즉 가설을 실험해보고자 하는 데이터의 패턴'을 의미

  - stats.ttest_ind의 결과로 2개의 변수 "t_stat"(t-통계량)과 "p_val"(p-값)을 반환한다.

# t-통계량 : t-검정 통계량! 두 집단 간 평균 차이의 크기와 방향을 나타냄

# p-: 귀무 가설이 참일 때, 새롭게 나타나는 패턴(실험 버전2)이 극단적 결과에 해당하는지 판별! 이 값이 유의수준(α, 흔히 0.05) 보다 작으면 귀무 가설을 기각한다.

 

2.  [통계 방법론]>[유의성 검정 방법2] 가설 검정    # 데이터가 특정 가설을 지지하는 지 검정

 - 정의 : 표본 데이터를 통해 모집단에 대한 가설을 검증하는 과정 [데이터가 특정 가설(찾고자 하는 패턴)을 지지하는가?]

 - 데이터 분석 시 두 전략을 취할 수 있다.

a. 확증적 자료 분석 : 미리 가설들을 먼저 세운 다음 가설을 검증!

b. 탐색적 자료 분석(EDA) : 가설을 먼저 정하지 않고 데이터를 탐색해보면서 가설 후보들을 찾고 데이터의 특징을 찾는 것

 

 2.1. 가설 검정의 단계

A. 귀무가설(H0)과 대립가설(H1) 설정

B. 유의수준(α) 결정

C. 검정통계량 계산

D. p-값과 유의수준 비교

E. 결론 도출

 

 2.2. 통계적 유의성, p값

  A. 통계적 유의성과 p값

   - 정의 : 결과의 우연성을 배제, 가설이 실재함을 나타내는 지표

   - 일반적으로 p값이 0.05 미만일시 결과를 통계적으로 유의하다고 판단

 

cf) 신뢰구간과 가설검정

- 신뢰구간과 가설검정은 밀접하게 관련된 개념

- 둘 다 데이터의 모수[함수의 특정한 성질을 나타내는 변수 ex. 평균]에 대한 어떠한 정보를 구하는 것 그러나 접근 방식이 다르다!

- "신뢰구간"='특정 모수가 포함될 범위'(신뢰도) vs "가설검정"='모수가 특정 값과 같은 지 다른 지 확인'(정확성)

 

3.  [통계 방법론]>[가설 검정] t검정    # 가설 검정의 대표적 방법

 - 정의 : 두 집단 의 평균 차이가 통계적으로 유의미한지 확인

 3.1. 분류

 A. 독립표본 t검정 : 두 독립된 그룹의 평균을 비교 # 서로 다른 두 집단 A그룹과 B 그룹이 차이가 있는지 비교

 B. 대응표본 t검정 : 동일 그룹의 사전/사후 평균을 비교 # 한 집단A 그룹에 조건1을 적용하기 전-후를 비교

 

4. [통계 방법론]>[가설 검정] 다중검정 # 여러 가설을 동시 검정, 오류 발생 가능성 있음

 - 정의 : 여러 가설동시검정

 - 주의 : 각 검정마다 유의수준(α)을 조정하지 않을 시 “1종 오류”[귀무가설이 참이나 기각하는 오류] 발생 확률이 증가

 - 보정 방법

A. 본페로니 보정 # 가장 대표적, 기본적

  - 본페로니 검정을 통해 

  - 보정한 p값 : 유의수준 / 각 검정하는 가설들의 개수

  - 각 가설의 p값이 보정한 p값보다 작을 경우 귀무가설 기각(유의미하다! 대립가설 채택)

B. 튜키 보정

C. 던넷 보정

D. 윌리엄스 보정

 

5. [통계 방법론]>[가설 검정] 카이제곱검정    # 범주형 데이터의 분석에 사용

 5.1. 적합도 검정    # 모집단과 표본 간의 검정

  - 정의 : 범주형 데이터의 표본 분포모집단 분포와 일치하는 지 검정 # 관찰된 분포(귀무가설의 패턴)와 기대된 분포(대립가설의 분포)가 일치하는 지 검정하는 것으로 해석 가능

  - p값이 낮으면 연관성 있음(독립성이 없음 == 대립가설과 귀무가설의 차이가 없다! 즉 모집단과 표본 사이의 차이가 없다.)

  - 즉, p값이 높아야 귀무가설 채텍

  - "scipy.stats.chisquare(모집단, 표본)"를 통해 "카이제곱 통계량"과 "p값"을 구할 수 있다.

 

5.2. 독립성 검정    # 변수 간의 검정

 - 정의 : 두 범주형 변수 간의 독립성검정

 - p값이 높으면 두 변수 간 관계가 연관성 없음(두 변수가 서로 관계가 없다!)

 - 관측 빈도를 담고 있는 "np.array([[변수1의 요소들], [변수2의 요소들]])==교차표를 입력받아

 - "scipy.stats.chi2_contingency()"를 통해 "카이제곱 통계량", "p값", "dof==자유도==(행의 수 -1)*(열의 수 -1)", "기대빈도==행 합계와 열 합계를 사용해 계산한 이론적 빈도"를 구할 수 있다.

 

6.  [통계 방법론] > [검정시의 주의사항] 1종 오류, 2종 오류

6.1. 1종 오류    # 위양성

 - 정의 : 귀무가설이 참임에도 기각하는 오류!

 - 유의수준(α)를 경계로 귀무가설을 기각하기 때문에 제1종 오류가 α만큼 발생    # 유의수준을 통해 오류 조절 가능

 

6.2. 2종 오류    # 위음성

- 정의 : 귀무가설이 거짓이나 기각하지 않는 오류    # 대립가설이 맞는데 귀무가설을 채택!

- 2종 오류가 일어날 확률 : β

- 표본 크기가 커질수록 β는 작아진다 그러나 α는 커진다. 

cf) 한편으로 표본 크기를 키움과 동시에 α를 90% 신뢰수준을 통해 설정하는 경우가 있음.


  • 회귀 분석

[통계 방법론]>[회귀 분석]

# 회귀 : 두 변수의 관계가 선형관계 즉, 두 변수 사이의 평균으로 돌아간다! 돌아가는 성질을 갖는다!

# 선형성 : 두 변수의 관계가 하나의 직선 형태! 일정한 기울기를 갖는다.

# 즉, 회귀 분석은 인과관계! 두 변수 사이의 관계를 확인하는 분석이다!

 

1. [통계 방법론]>[회귀 분석] 단순 선형 회귀    # 머신러닝을 활용하여 구한다.

 - 정의 : 하나의 독립변수 X 와 하나의 종속 변수 Y 사이의 관계를 직선을 모델링하는 방법

 - 회귀식 : Y = β0 + β1X

# β0 : x가 0일때 y값!

# β1 : x의 변화에 따른 Y의 변화량 즉, 기울기!

 - 특징 : 데이터가 직선적 경향을 따를 때 사용!

# 오차(평균표준오차, mse)는 낮을수록 좋고, r2_score는 높을 수록 좋다.

 <분석 시 파이썬에 사용되는 코드들>

A. numpy, pandas, matplotlib.pyplot, sklearn 라이브러리들

 - 특히 from sklearn.linear_model import "LinearRegression", "train_test_split", "mean_squared_error, r2_score"를 사용한다.

 - np.random.seed() : 넘파이 라이브러리의 난수 생성 기능 음이 아닌 정수값을 입력하여 그 개수만큼 0~1사이 난수를 생성한다.

 - np.random.rand() : 넘파이 라이브러리의 랜덤 추출 함수, default는 1개가 추출, 괄호안에 dimension을 적을 시 dimension 을 가진 넘파이 array가 생성되며 추출됐던 값들이 부여 

 - np.random.random() : 넘파이 라이브러리의 랜덤 추출 함수, rand함수와 동일하난 원하는 차원 형태를 튜플 자료형으로 반드시 넣어주어야 한다! 

 -  np.random.randn() : 표준 정규 분포 추출 함수, 평균 0, 표준편차 1의 표준 정규 분포 내의 임의 추출 함수이다!

 

cf) 회귀계수 : 원인변수의 변화에 대한 결과변수의 평균 변화 즉, 기울기의 평균

cf) 결정계수 : 만들어낸 통계 모델로 대상을 얼마나 잘 설명할 수 있는가를 숫자로 나타낸 것

 

2. [통계 방법론]>[회귀 분석] 다중 선형 회귀    # 2개 이상의 변수에 대한 결과를 예측

 - 정의 : 2개 이상의 독립변수(X1, X2, ..... Xn)와 하나의 종속변수(Y)간의 관계를 모델링하는 방법

 - 회귀식 : Y = β0 + β1X1 + β2X2 + ... + βnXn

 - 특징 : 여러 독립변수가 있을 때 사용

             변수들 간의 다중공선성 문제가 발생 가능

 2.1. 다중공선성(Multicollinearity)

  - 정의 : 독립 변수들 간에 높은 상관관계가 있을 때 각 변수의 개별 효과를 분리하기 어려워 해석이 어려워진다. 즉, 실제 중요 변수가 통계적으로 유의하지 않게 나타날 수 있다.

- 진단방법1 : 독립 변수들 간의 상관계수를 계산! 상관계수가 높은(대략 0.7) 변수들이 있는지 확인!

- 해결방법1 : 높은 계수를 가진 변수 중 하나를 제거!

- 진단방법2 : 분산 팽창 계수(VIF)를 계산해 VIF값이 10이 높은지 확인하는 방법을 통해 다중공선성이 높다고 판단할 수 있다.

- 해결방법2 : 주성분 분석(PCA)과 같은 변수들을 효과적으로 줄이는 차원 분석 방법을 적용!

 

3. [통계 방법론]>[회귀 분석] 범주형 변수의 회귀분석

 3.1. 종류

  A. 순서가 있는 범주형 변수

   - 회귀 분석 시 : 각 문자를 임의의 숫자로 변환해도 문제가 없음! 따라서 순서가 잘 반영될 수 있게 숫자로 변환

  B. 순서가 없는 범주형 변수

   - 변수의 개수가 2개인 경우 : 임의의 숫자로 바로 변환하여 회귀분석 시작

   - 3개 이상인 경우 : "원-핫 인코딩"변환  ex. 부산 = [1,0,0], 대전 = [0,1,0], 대구 = [0,0,1]

# pandasget_dummies(변환할 변수, drop_first=True)를 활용 쉽게 구현 가능

# 범주형 변수를 더미 데이터로 변환할 때 마지막에 무의미한 변수가 생성된다. 따라서 그것을 제거하기 위해 drop_first=True 를 사용한다. (분석시 무의미한 컬럼이 제거되어 다중공선성 문제도 해결한다. default 값은 True로 설정되어 있긴 하다.) 

 

4. [통계 방법론]>[회귀 분석] 다항회귀, 스플라인 회귀    # 데이터가 훨씬 복잡할 때 사용하는 회귀기법

 4.1. 다항회귀

  A. 정의 : 독립 변수와 종속 변수의 관계가 선형이 아닐 때 사용! 독립 변수의 다항식을 사용해 종속변수를 예측

  B. 특징

  - 데이터가 곡선적 경향을 따를 때 사용

  - 비선형 관계를 모델링가능! 단, 고차 다항식일 때 과적합위험 존재

cf) 과적합 위험 : 표본을 실험하며 오차의 존재를 부정하며, 완벽한 곡선 혹은 패턴을 갖는 것을 찾다보니 발견한 패턴이 표본에 너무 적합하여 모든 상황(모집단)에 일반화가 안되는 경우! p값이 1 혹은 0처럼 완전히 적합한 경우

 4.2. 스플라인 회귀

  A. 정의 : 독립 변수1의 구간별다른 회귀식을 적용해 복잡한 관계를 모델링.

  B. 특징

- 복잡한 비선형 관계를 유연하게 모델링

- 적절함 매듭점(knots)의 선택이 중요


  • 상관관계

[통계 방법론] > [상관관계분석]

1. [통계 방법론] > [상관관계분석] 피어슨 상관계수    # 가장 대표적으로 많이 사용하는 상관 계수

 1.1. 정의 

  - 연속형 변수 간선형 관계측정하는 지표, (-1 ~ 1)사이의 값을 가지며 1은 완전한 양의 선형관계, -1은 완전한 음의 선형관계, 0은 선형관계가 없음을 의미

  - 공부시간과 시험점수와 같은 두  변수 간의 상관관계를 분석한다.

  - "from scipy.stats import pearsonr"을 호출하여 각 변수에 해당하는 데이터 프레임을 인자로 받아

  - "pearsonr()"을 통해 피어슨 상관계수와 별도의 값을 추가로 얻을 수 있다.

 

2. [통계 방법론] > [상관관계분석] 비모수 상관계수    # 데이터가 정규분포를 따르지 않을 때 사용

 2.1. 정의

  - 데이터가 정규분포를 따르지 않거나, 변수들이 순서형 데이터일 때 사용하는 상관계수

  - 데이터 분포에 대한 가정 없이 두 변수 간 상관관계 측정 시 사용

 2.2. 종류

  A. 스피어만 상관계수

   - 정의 : 두 변수의 순위의 일관성 측정

   - 특징 : 데이터 내의 편차와 에러에 민감하다.

  B. 켄달의 타우 상관계수

   - 정의 : 순위 간의 일치하는 쌍 혹은 불일치 쌍의 비율을 바탕으로 계산한다.

   - 특징 : 데이터 순위에 해당하는 이들의 개수 비율로 상관 계수 결정

   ex. "키 크고 몸무게 더 나가면 일치 쌍", "키 크고 몸무게 덜나가면 불일치 쌍"

 2.3. 코드 구현 시

A. "from scipy.stats import spearmanr, kendalltau" : 즉scipy.stats 라이브러리에서 호출해야 한다.

B. "spearmanr(변수1의 데이터프레임, 변수2의 데이터프레임)", "kendalltau (변수1의 데이터프레임, 변수2의 데이터프레임) "을 통해 상관계수와 별도 값을 구할 수 있다.

 

3. [통계 방법론] > [상관관계분석] 상호정보 상관계수    # 변수 끼리의 상관계수

 3.1. 정의

  - 두 변수 간의 상호 정보를 측정한 뒤, 변수 간의 의존성을 바탕으로 비선형 관계를 탐지한다.

  - 범주형 데이터에 대해서도 적용 가능하다.

  - 두 변수의 정보에 대한 불확실성(복잡도)을 줄이는 정도를 바탕으로 계산한다.

  - 머신러닝을 활용하기에 "from sklearn.metrics import mutual_info_score"을 호출하여 상호정보량을 계산한다.


  • 가설 검정 주의사항

[통계 기법]>[가설 검정 주의사항]

1. [통계 기법]>[가설 검정 주의사항] 재현 가능성     # 우연한 결과가 아닌, 항상 일관된 결과 재현성!

 1.1. 정의

  - 동일한 검정 혹은 수행을 반복할 때 결과가 일관적인지 여부

  - "가설 검정의 원리상의 문제", "가설 검정의 잘못된 사용"이 재현 가능성을 낮추는 주된 원인

 

 1.2. 재현 가능성의 제기 이유

  A. 실험 조건을 동일하게 조성하기 어려움

  B. 가설검정 자체도 100% 검정력을 가진 것이 아니기에 오차 발생

  C. 임의적으로 p값을 유의수준 밑으로 조작할 수 있음(임의적 조작 가능성)

  D. 유의성 검정 > 1종 오류 및 2종 오류 발생 가능

 

# 따라서 가능한 좋은 가설을 세우는 것이 중요하다.

 

2.  [통계 기법]>[가설 검정 주의사항]  p-해킹    # 인위적으로 p값을 낮춤

 2.1. 정의

  - "데이터 분석 반복" 혹은 "유의미한 결과만을 목적으로 변수를 바꿔서 시도" 혹은 계속 데이터를 분석하여 p-값이 0.05이하가 나오는 경우가 나올 때까지 시도하는 것!

 

  2.2. 자주 발생하는 상황

  A. 여러 가설 검정을 시도 시    # 다음의 상황을 주의하기

  - 여러 가설 검정을 시도해 유의미한 p값을 얻을 때까지 반복 분석

  - 유의미한 결과를 얻기 위해 p값이 0.05이하인 결과만 선택 보고

  - 실험을 반복하는 동안 데이터를 늘리며 특정 데이터 수에서 p값이 0.05이하를 기록하여 이를 바탕으로 대립가설 채택

   # 결과를 보며 데이터 개수를 늘려서는 안됨

  - 다양한 상황 중에서 p값이 유리하게 나오는 상황을 선별 보고하는 것

  - 핵심 : 다양한 변수를 건드리며 유리한 결과가 나올 때 다시 처음부터 가설을 그 결과에 맞게 세우기

  - 보정방법 : 가능한 가설을 미리 세우고 검증하는 가설검증형 분석을 해야 하며 만약 탐색적으로 분석한 경우 가능한 모든 변수를 보고하고 본페로니 보정과 같은 방법을 사용

 

3.  [통계 기법]>[가설 검정 주의사항]  선택적 보고

 3.1. 정의 : 유의미한 결과만을 보고하고, 유의미하지 않은 결과는 보고하지 않는 행위

 3.2. 자주 발생하는 상황

  A. 유의미한 결과만 공개 할 때

  B. 결과를 보면서 가설을 재설정 시 이전의 가설들을 무시하고 재설정한 가설을 처음 설정한 가설처럼 얘기할 때

 

4.  [통계 기법]>[가설 검정 주의사항] 자료수집 중단 시점 결정    # 데이터 수집 시작부터 자료수집 중단 시기를 정한다.

 4.1. 정의 : 데이터 수집을 시작하기 전에 언제 수집을 중단할지 명확하게 결정하지 않으면 원하는 결과가 나올 때까지 데이터를 계속 수집    # 연구자 편향이 결과에 영향을 미침. 따라서 자료수집 중단 시점을 정해야 함.

 4.2. 자주 발생하는 상황

A. 결과를 이미 정해놓고 그에 맞추기 위해 자료수집 지속

 

5. [통계 기법]>[가설 검정 권장사항] 데이터 탐색과 검증 분리    # 검증용 데이터는 별도 분리해두기

 5.1. 정의

  - 데이터 탐색(EDA)을 통해 가설 설정 후 이를 검증하기 위해 별도의 독립 데이터셋을 사용하는 것

 5.2. 사용방법

  A. 검증하기 위한 데이터가 따로 필요할 때

   - 데이터셋을 탐색용(training)과 검증용(test)으로 분리하여 사용