교차분석(카이제곱 검정)
- 범주형 자료인 두변수 간의 관계를 알아보기 위해 실시
- 적합성, 독립성, 동질성검정에 사용하며, 카이제곱 검정 통계량을 이용
교차분할표
- 교차분할표에서 행을 이루는 변수를 행변수, 열을 이루는 변수를 열변수라 하며, 행 및 열의 개수는 각 변수의 범주수를 나타낸다.
- 두 변수의 각 범주가 만나는 곳을 셀이라 하며, 셀에 있는 관찰값들은 도수(개체수)이다.
- 셀에는 도수와 함께 비율을 표시하기도 한다. 각 행의 합계 및 각 열의 합계를 주변합이라 하고, 전체 합계는 총합이라고 한다.
- 교차분할표에서는 카이제곱 검정에 의해 독립적인지(관계가 없는지)를 검정하며, 이를 독립성 검정이라고 한다.
일원 카이제곱검정
- 관찰 도수가 기대 도수와 일치하는지 검정하는 적합도 검정이 여기에 속함
- 카이제곱 검정에 의해 표현형의 관찰도수가 기대도수와 일치하는지를 검정하며, 이를 적합도 검정이라고 한다.
data = pd.DataFrame({'id': ['id1', 'id1', 'id1', 'id2', 'id2', 'id3'], 'fa_1': ['a', 'a', 'a', 'b', 'b', 'b'], 'fa_2': ['e', 'e', 'e', 'c', 'c', 'e']}) data
적합성 검정
- 관측값들이 어떤 이론적 분포를 따르고 있는지를 검정. 한 개의 요인을 대상으로 함
- 관찰된 빈도가 기대빈도와 의미있게 다른지의 여부를 검증하기 위해 사용되는 검증방법입니다.
- 자료가 빈도로 주어졌을 때, 특히 명목척도 자료의 분석에 이용됩니다.
- 즉, 모집단 분포에 대한 가정이 옳게 됐는지를 관측자료와 비교하여 검정
- 귀무가설 : 관측치와 기대치는 차이 없다.
- 대립가설 : 관측치와 기대치는 차이 있다.
- 선호도 분석에 사용
# xo ->관찰, xe-> 기대
xo, xe = [324, 78, 261], [371, 80, 212]
xc = pd.DataFrame([xo, xe], columns=['Item A', 'Item B', 'Item C'], index=['Obs', 'Exp'])
xc
import matplotlib.pyplot as plt
%matplotlib inline
ax = xc.plot(kind='bar', title='Number of Items', figsize=(8, 6))
ax.set_ylabel('value')
plt.grid(color='gray')
plt.show()
from scipy.stats import chisquare
result = chisquare(xo, f_exp=xe)
result #p-value가 0.05보다 작으므로 귀무가설 기각-> 관찰빈도와 기대빈도가 다름
# Power_divergenceResult(statistic=17.329649595687332, pvalue=0.00017254977751013492)
from numpy import linspace
from scipy.stats import chi2
df = 2 # 자유도
x = linspace(0, 20, 201)
y = chi2(df).pdf(x)
x095 = chi2(df).ppf(.95)
plt.figure(figsize=(10, 6))
plt.plot(x, y, 'b--')
plt.axvline(x=x095, color='green', linestyle=':')
plt.text(x95, .3, 'Critical_Value\n' + str(round(x095, 4)),
horizontalalignment='center', color='black')
plt.axvline(x=result[0], color='r', linestyle=':')
plt.text(result[0], .3, 'Statistic\n' + str(round(result[0], 4)),
horizontalalignment='center', color='black')
plt.xlabel('X')
plt.ylabel('P(X)')
plt.grid()
plt.title(r'$\chi^2$ Distribution (df = 2)')
plt.show()
plt.show()
이원 카이제곱검정
- 교차 분할표를 이용하는 카이 제곱 검정으로 두 개 이상의 변인(집단 또는 범주) 대상으로 검정을 수행한다.
독립성 검정
- 두변수들 사이의 관계가 독립인지 아닌지 검정 EX) 회사에서 나이와 직위의 연관성
- 검정통계량 값은 교차표 활용
- 귀무가설 : 두변수 사이는 연관 없다(독립)
- 대립가설 : 두변수 사이는 연관 있다(종속)
data = [[30, 10],
[35, 5],
[28, 12],
[20, 20]]
from scipy.stats import chi2_contingency
chi2, pval, dof, expected = chi2_contingency(data)
pval # p-value가 0.05 이하라면 집단 간의 차이가 있다고 해석할 수 있다.
# 0.002812834559546625
동질성 검정
- 모집단이 임의의 변수에 따라 R개의 속성을 범주화되었을때,R개의 부분 모집단에서 추출한 각 표본인 C개의 범주화된 집단의 분포가 동일한지 검정
- 두 집단의 분포가 동일한 모집단에 추출된 것인지를 검정 EX) 직업의 유형에 따른 만족도의 차이
- 계산법과 검증법은 모두 독립성 검정과 같은 방법으로 진행
- 동질성 검정과 독립성 검정의 중요한 차이점은 동질성 검정은 비율이 서로 같은지를 검정하고, 독립성 검정은 독립적인지(관계가 없는지) 를 검정하는 것이다.
- 귀무가설 : 두변수 사이는 연관 없다(독립)
- 대립가설 : 두변수 사이는 연관 있다(종속)
728x90
반응형
'Data Analysis & ML > Python을 활용한 통계분석' 카테고리의 다른 글
[통계분석] 탐색적 요인분석(EFA) (0) | 2020.12.24 |
---|---|
[통계분석] PCA(주성분분석) (0) | 2020.12.24 |
[통계분석] 상관분석 (피어슨, 스피어만, 켄달타우) (0) | 2020.12.19 |
[통계분석] 분산분석(ANOVA), 이항검정 (0) | 2020.12.19 |
[통계분석] 표본추출과 T-Test (0) | 2020.12.19 |