
: t-검정
from scipy import stats
# stats.ttest_1samp(data, value, alternative)
statistics, p_value = stats.ttest_1samp(data, 75, alternative='greater')
alternative: 데이터의 평균이 value보다 크다, 작다, 다르다.
greater, less, two-sided: 독립 표본 t-검정
# stats.ttest_ind(data1, data2, equal_var, alternative)
from scipy import stats
statistics, p_value = stats.ttest_ind(data1, data2, equal_var=True)
equal_var: 두 집단의 등분산 여부(분산이 같은지)
True, False: 대응 표본 t-검정
# stats.ttest_rel(a, b, alternative)
statistics, p_value = stats.ttest_rel(before, after, alternative='greater')
a, b) 데이터의 길이(len)이 반드시 같아야 한다.alternativegreater: b의 평균이 a보다 크다.일원배치법(ANOVA): f_oneway
# stats.f_oneway(data1, data2, data3)
f_var = p_value = stats.f_oneway(data1, data2, data3)
p_value < 0.05: 집단 내 차이보다 집단 간 차이가 충분이 크다.(평균 값 차이 있다.): 데이터가 정규분포를 따른다는 가정하에, 이거 정규분포 맞아?에 대한 검정
: shapiro
# stats.shapiro(data)
statistics, p_value = stats.shapiro(data)
p_value < 0.05: 정규분포를 따르지 않는다.: 상관계수 행렬 구성 후, a와 b에 대한 상관계수 도출
corr_metrics = df.corr() # 상관계수 행렬
res = corr_metrics.loc['a', 'b']
: 종속변수 ~ 독립변수, 범주형변수는 C()
from statsmodels.formula.api import logit
model = logit('종속변수 ~ C(범주형 변수) + 변수2 + 변수3', data = df).fit()
model.params['col']
# Odds Ratio: 오즈비를 묻는 경우,
import numpy as np
np.exp(model.params['col'])
카이제곱 검정: stats.chisquare(f_obs, f_exp)
from scipy import stats
# 기대 빈도(expected) 계산 필수
statistics, p_value = stats.chisquare(f_obs = data, f_exp = expected)
chisquare() 파라미터
f_obs: 관측 빈도, 실제 숫자 데이터f_exp: 기대 빈도, 과거 비율 x 총 인원