[빅데이터분석기사 실기] 제3유형: 통계적 가설검정
제3유형 예상 문제¶
- 모평균 검정: 검정통계량, p-value값, 귀무가설 판단(채택/기각)
모집단 1개: 단일 표본
모집단 2개: 대응 표본(쌍체), 독립 표본
모집단 3개: ANOVA(분산분석) - F검정(일원분산분석)
- 카이제곱검정: 기댓값, 검정통계량, p-value값, 귀무가설 판단(채택/기각)
적합성 검정
독립성 검정
- 상관분석: 상관계수, 검정통계량, p-value값, 귀무가설 판단(채택/기각)
- 피어슨 상관계수
- 회귀분석: Rsq, odds, ratio, 회귀계수, p-value값
다중선형회귀
로지스틱회귀
가설 검정 순서¶
① 가설설정(귀무가설/대립가설)
② 유의수준(α) 설정: 일반적으로 5%, 0.05
③ 귀무가설 하에 검정통계량 계산
④ 검정통계량으로 p-value 계산
⑤ 귀무가설(H₀) 기각 여부 결정(채택/ 기각)
p-value < α : 귀무가설을 기각
p-value > α : 귀무가설을 채택
가설 검정 코드 흐름¶
from scipy import stats
# 1) 가설 설정
# 귀무가설: A그룹과 B그룹이 차이가 없다
# 대립가설: A그룹과 B그룹이 차이가 있다
A = [23, 25, 28, 30, 32]
B = [19, 21, 24, 26, 29]
# 2) 유의수준(α) 설정
alpha = 0.05
# 3) 귀무가설 하에 검정통계량 계산
# 4) 검정통계량으로 p-value 계산
t_statistic, p_value = stats.ttest_ind(A, B)
print(f'검정통계량: {t_statistic}')
print(f'p-value: {p_value}')
# 5) 귀무가설(H₀) 기각 여부 결정
if p_value < alpha:
print('귀무가설 기각')
else:
print('귀무가설 채택')
검정통계량: 1.5778641172210597 p-value: 0.15324889402868613 귀무가설 채택
from scipy import stats
1. 모평균 검정¶
1) 모집단 1개: 단일표본 t-test¶
귀무가설: 모평균 = X
대립가설: 모평균 ≠ X
t_statistic, p_value = stats.ttest_1samp(data, X, alternative='two-sided')
귀무가설: 모평균 ≤ X
대립가설: 모평균 > X
t_statistic, p_value = stats.ttest_1samp(data, X, alternative='less')
귀무가설: 모평균 ≥ X
대립가설: 모평균 < X
t_statistic, p_value = stats.ttest_1samp(data, X, alternative='greater')
2-1) 모집단 2개: 대응표본 t-test¶
귀무가설: before과 after가 차이가 없다.
대립가설: before과 after가 차이가 있다.
t_statistic, p_value = stats.ttest_rel(before, after)
2-2) 모집단 2개: 독립표본 t-test¶
두 그룹의 데이터가 정규분포를 따를 때
귀무가설: A그룹과 B그룹이 차이가 없다.
대립가설: A그룹과 B그룹이 차이가 있다.
t_statistic, p_value = stats.ttest_ind(A, B)
두 그룹의 데이터가 정규분포를 따르지 않을 때
귀무가설: A그룹과 B그룹이 차이가 없다.
대립가설: A그룹과 B그룹이 차이가 있다.
u_statistic, p_value = stats.meanwhitneyu(A, B)
statistic, p_value = stats.shapiro(data)
3) 모집단 3개 이상: ANOVA(분산분석) - F검정(일원분산분석)¶
귀무가설: A, B, C 그룹 간의 평균 차이가 없다.
대립가설: A, B, C 그룹 간의 평균 차이가 있다.
t_statistic, p_value = stats.f_oneway(A, B, C)
2. 카이제곱 검정¶
1) 적합성 검정¶
- 귀무가설: 관찰값이 기대값과 적합하다.
- 대립가설: 관찰값이 기대값과 적합하지 않다.
observed = [observed_values]
expected = [expected_values]
chi2_statistic, p_value = stats.chisquare(observed, expected)
2) 독립성 검정¶
두 변수가 독립인지 검정
귀무가설: 두 변수는 연관성이 없다(독립이다).
대립가설: 두 변수는 연관성이 있다(독립이 아니다).
contingency_table = [[observed_values_row1], [observed_values_row2]]
chi2_statistic, p_value, dof, expected = stats.chi2_contingency(contingency_table)
3) 동질성 검정¶
두 집단의 분포가 동일한지 검정
- 귀무가설: 두 집단이 동일한 분포를 가진다.
- 대립가설: 두 집단이 동일한 분포를 가지지 않는다.
contingency_table = [[observed_values_group1], [observed_values_group2]]
chi2_statistic, p_value, dof, expected = stats.chi2_contingency(contingency_table)
3. 상관분석¶
1) 피어슨 상관계수¶
귀무가설: 두 변수 사이에 상관관계가 없다.
대립가설: 두 변수 사이에 상관관계가 있다.
correlation_coefficient, p_value = stats.pearsonr(variable1, variable2)
4. 회귀분석¶
1) 선형 회귀¶
선형 회귀 모형 만들기
from statsmodels.formula.api import ols
model = ols('y ~ x1', data=train).fit()
모델 요약 출력
print(model.summary())
예측
pred = model.predict(test)
평가 지표
from sklearn.metrics import mean_squared_error, r2_score
mse = mean_squared_error(test['y'], pred)
rmse = np.sqrt(mse)
r2_score = r2_score(test['y'], pred)
회귀계수
coefficients = model.params
유의확률(p-value)
p_values = model.pvalues
2) 로지스틱 회귀¶
로지스틱 회귀 모형 만들기
from statsmodels.formula.api import logit
model = logit('y ~ x1', data=train).fit()
모델 요약
print(model.summary())
예측
pred = model.predict(X_test)
pred_classes = (pred > 0.5).astype(int)
오즈비
odds_ratio = np.exp(model.params['x1'])
정확도
from sklearn.metrics import accuracy_score
accuracy = accuracy_score(test['y'], pred_classes)
accuracy = (pred_classes == test['y']).mean()
# Rsq(McFadden's pseudo R-squared)
Rsq = 1 - model.llf / model.llnull
혼동 행렬
from sklearn.metrics import confusion_matrix
conf_matrix = confusion_matrix(test['y'], pred_classes)
로짓 우도
log_likelihood = model.llf
유의확률(p-value)
p_values = model.pvalues['x1']
회귀계수
coefficients = model.params['x1']
'자격증 > 빅데이터분석기사' 카테고리의 다른 글
[빅데이터분석기사 실기] train, test 데이터의 범주가 서로 다른 경우 (0) | 2024.06.15 |
---|---|
[빅데이터분석기사 실기] 총 정리 - 깃허브 (0) | 2024.05.28 |
[빅데이터분석기사 실기] 제3유형: 통계적 가설검정(1) (0) | 2024.05.25 |
[빅데이터분석기사 실기] 제2유형: 데이터 분석 (0) | 2024.05.22 |
[빅데이터분석기사 실기] 제1유형: 데이터 전처리 (0) | 2024.05.18 |