그룹의 평균이 기준 값과 차이가 있는지를 확인
통계량 를 t분포 상에 위치시키는 방식으로 - 계산
: 표본 평균, : 기준 값, : 표본 수, : 표본 표준편차
일 경우,
를 기준으로 오른쪽에 위치해 있는 값이 -
일 경우
를 기준으로 왼쪽에 위치해 있는 값이 -
일 경우
를 기준으로 왼쪽에 위치해 있는 값이 -,
를 기준으로 오른쪽에 위치해 있는 값이 -
관측한 샘플들이 특정 분포를 따르는지 확인하기 위한 검정 방법
'norm'
로 설정하여 정규성 검정에도 사용함from scipy.stats import *
kstest(data, 'norm')
>> KstestResult(statistic=1.0, pvalue=0.0)
data
는 정규분포를 따른다고 할 수 있다.이라고 할 때, 단일 표본 t검정
ttest_1samp(data, 163)
>> Ttest_1sampResult(statistic=-2.979804412662668, pvalue=0.006510445335847954)
statistic
가 음수이므로 데이터의 평균이 163 미만임을 알 수 있다. (양수일 경우 평균이 163보다 크게 나타남)data
가 정규분포를 따르지 않을 경우 사용wilcoxon(data)
단일 표본 t검정과 결과 해석이 같음. 단 popmean은 x의 중위수로 설정됨
서로 다른 두 그룹의 데이터 평균 비교
두 그룹의 정규성 검정을 수행한 후 정규분포를 따를 때 두 그룹의 등분산성을 검정
# np.array의 경우
levene(group_A, group_B)
>> leveneResult(statistic=2.033067087400979, pvalue=0.164964086222101)
equal_var
: 등분산성 여부ttest_ind(group_A, group_B, equal_var = True)
>> Ttest_indResult(statistic=2.51285267949464134, pvalue=0.01801095352893967)
# 정규성 검정
kstest(after - before, 'norm')
>> KstestResult(statistic=0.7424620196514834, pvalue=7.04108433205159e-29)
# 쌍체표본 t검정
ttest_rel(before, after)
>> Ttest_relResult(statistic=9.70596986565785, pvalue=5.370404098342324e-13)
셋 이상의 그룹 간 차이가 존재하는지 확인
from scipy.stats import *
# 세 그룹 모두 정규 분포를 띄는 것을 확인
kstest(A, 'norm')
kstest(B, 'norm')
kstest(C, 'norm')
f_oneway(A, B, C)
>> F_onewayResult(statistic=178.43825416847133, pvalue=1.6337420285664805e-31
from statsmodels.stats.multicomp import pairwise_tukeyhsd
Group = ["A"] * len(A) + ["B"] * len(B) + ["C"] * len(C)
Data = A.tolist() + B.tolist() + C.tolist()
pairwise_tukeyhsd(Data, Group)
>> Multiple Comparison of Means - Tukey HSD, FWER=0.05
==========================================================
group1 group2 meandiff p-adj lower upper reject
A B -1.4 0.9 -10.5745 7.7745 False
A C 62.2333 0.001 53.0589 71.4078 True
B C 63.6333 0.001 54.4589 72.8078 True
두 연속형 변수 간에 어떠한 선형 관계를 가지는지 파악
상관 계수가 1에 가까울수록 양의 상관관계가 강하다고 하며, 상관 계수가 -1에 가까울수록 음의 상관관계가 강하다고 한다. 0에 가까울 수록 상관관계가 약하다고 한다.
scipy.stats.pearsonr(x, y)
scipy.stats.spearmanr(x, y)
두 범주형 변수가 서로 독립적인지 검정
교차 테이블을 통해 시각화
영 가설과 대립 가설
두 변수가 서로 독립이다.
두 변수가 종속관계에 있다.
교차 테이블 : > 두 변수가 취할 수 있는 값의 조합의 출현 빈도를 나타냄
import pandas as pd
from scipy.state import *
cross_table = pd.crosstab(S1, S2)
obs = cross_table.values
statistics, pvalue, dof, expected = chi2_contingency(obs)
pvalue가 0.05 미만이면 두 변수가 서로 독립이 아님
# 기대값(expected)을 데이터 프레임으로 생성
pd.DataFrame(expected, columns = cross_table.columns, index = cross_table.index)