| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
- 캐글
- 시그모이드
- RNN
- Kaggle
- MERS
- BLaST
- ncbi
- 바이오인포매틱스
- AP
- 생명정보학
- CNN
- 생물정보학
- 파이썬
- 딥러닝
- 인공신경망
- HMM
- Java
- 인공지능
- 자바
- SVM
- AP Computer Science A
- 이항분포
- 바이오파이썬
- 인공지능 수학
- 결정트리
- 오류역전파
- 블록체인
- COVID
- bioinformatics
- 서열정렬
- Today
- Total
데이터 과학
캐글에서 Chi square 데이터 분석 본문
비모수 통계 분석을 할 때는 카이 스퀘어(Chi square)를 사용합니다.
이번 내용의 카이 스퀘어는 사회조사방법론의 카이스퀘어 방법으로 사용하는 이유는 카테고리 데이터를 분석할 때 사용을 하는데, 여론조사나 TV 시청률 조사를 할 때 많이 사용하는 방법입니다.
카이 스퀘어 공식은 간단합니다.

기댓값과 과 관찰값에 대한 비례 수식입니다. 카이 스퀘어에서 스퀘어가 붙는 이유는 공식에 있습니다.
다음은 챗GPT에서 설명하는 카이스퀘어에 대한 내용을 한번 읽어 봅시다.
-------------
카이 제곱(χ²) 검정은 사회과학 및 통계학에서 널리 사용되는 통계적인 방법 중 하나입니다. 이 방법은 두 범주형 변수 간의 관련성을 검증하거나 관찰된 빈도가 기대되는 빈도와 일치하는지를 판단하는 데 사용됩니다. 이를 통해 변수 간의 독립성 여부를 결정할 수 있습니다.
카이 제곱 검정에서 사용되는 공식은 다음과 같습니다:
χ² = ∑ ((O - E)² / E)
여기서,
χ²: 카이 제곱 통계량
∑: 모든 카테고리에 대한 합산
O: 관찰된 빈도
E: 기대되는 빈도
카이 제곱 공식은 관찰된 빈도와 기대되는 빈도 사이의 차이를 계산합니다. 이 차이를 제곱한 후, 기대되는 빈도로 나눠줍니다. 이러한 계산을 모든 카테고리에 대해 수행한 후, 모든 항목을 합산하여 카이 제곱 통계량을 얻을 수 있습니다.
카이 제곱 통계량은 자유도(degree of freedom)와 함께 사용됩니다. 자유도는 분석 중인 범주형 변수의 카테고리 수와 관련이 있습니다. 자유도를 계산하는 방법은 (행의 카테고리 수 - 1) * (열의 카테고리 수 - 1)입니다. 이 자유도를 사용하여 카이 제곱 분포의 임계값을 찾고, 이를 통해 귀무가설을 기각하거나 채택할 수 있습니다.
카이 제곱 검정을 통해 변수 간의 독립성을 확인할 수 있으며, 예를 들어 교육 수준과 직업 분야 간의 관련성, 성별과 투표 여부 간의 관련성 등을 분석할 때 유용합니다.
--------------
나름대로 정리가 잘 되어서 설명하는 내용입니다. 자유도를 기준으로 값을 정하고, 음수값이 나오지는 않겠죠.
ANOVA에서 사용되는 F-test와는 조금은 다른 영역이지만, AP-Stat 시험에도 자주 나오는 내용이니 캐글에서 한번 정도는 실습해 봐도 괜찮을 것 같습니다.
캐글에 있는 카이 스퀘어 소스를 한번 살펴봅시다.
# This Python 3 environment comes with many helpful analytics libraries installed
# It is defined by the kaggle/python docker image: https://github.com/kaggle/docker-python
# For example, here's several helpful packages to load in
import numpy as np # linear algebra
import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)
import scipy.stats
# Input data files are available in the "../input/" directory.
# For example, running this (by clicking run or pressing Shift+Enter) will list the files in the input directory
from subprocess import check_output
print(check_output(["ls", "../input"]).decode("utf8"))
# Any results you write to the current directory are saved as output.
survey = pd.read_csv("../input/anonymous-survey-responses.csv")
survey.head()
scipy.stats.chisquare(survey["Have you ever taken a course in statistics?"].value_counts())
scipy.stats.chisquare(survey["Do you have any previous experience with programming?"].value_counts())
cont = pd.crosstab(survey["Have you ever taken a course in statistics?"],survey["Do you have any previous experience with programming?"])
scipy.stats.chi2_contingency(cont)
간단하게 나타는 소스이며 관련 링크는 아래와 같습니다.
https://www.kaggle.com/code/omarayman/chi-square-test-in-python
데이터가 위치한 곳이며 이와 관련된 예제가 몇개 있으니 한번 실습해 보는 것도 괜찮습니다.
5-Day Data Challenge Sign-Up Survey Responses
What are folks’ backgrounds? And do they prefer cats or dogs?
www.kaggle.com
아래 소스에서는 데이터를 입력 받아서 카이 스퀘어를 처리하는 방법입니다.
https://www.kaggle.com/code/hamelg/python-for-data-25-chi-squared-tests
Python for Data 25: Chi-Squared Tests
Explore and run machine learning code with Kaggle Notebooks | Using data from Titanic - Machine Learning from Disaster
www.kaggle.com
'Kaggle 데이터 분석, 딥러닝' 카테고리의 다른 글
| 캐글에서의 회귀분석 (0) | 2023.05.25 |
|---|---|
| 캐글에서의 가설검정 (0) | 2023.05.23 |
| 판다스로 분석하는 포켓몬 (1) | 2023.05.16 |
| 디렉토리 관련 명령어 (0) | 2023.03.30 |
| 판다스 - 데이터프레임 (0) | 2023.03.23 |