728x90
Python을 사용한 통계 분석은 데이터 과학과 머신 러닝 분야에서 매우 중요합니다. Python의 여러 라이브러리를 활용하면 다양한 통계 분석을 쉽게 수행할 수 있습니다. 여기서는 Python에서 통계 분석을 수행하는 방법과 관련 라이브러리를 소개하고, 간단한 예제를 통해 실습해 보겠습니다.
Python에서 통계 분석을 위한 주요 라이브러리
NumPy:
- 기본적인 수학적 연산 및 다차원 배열을 다루기 위한 라이브러리입니다.
- 평균, 표준 편차, 분산 등의 기본 통계 함수를 제공합니다.
Pandas:
- 데이터 프레임 구조를 제공하여 데이터 조작과 분석에 유용합니다.
- 다양한 데이터 전처리 기능과 함께 기술 통계(descriptive statistics)를 쉽게 계산할 수 있습니다.
SciPy:
- 과학 계산을 위한 라이브러리로, 다양한 고급 통계 기능을 제공합니다.
- 통계적 검정, 확률 분포, 회귀 분석 등의 기능을 포함하고 있습니다.
StatsModels:
- 통계 모델을 위한 라이브러리로, 회귀 분석, 시계열 분석, 분산 분석(ANOVA) 등을 제공합니다.
- 상세한 통계 분석과 함께 다양한 시각화 기능을 지원합니다.
Matplotlib 및 Seaborn:
- 데이터 시각화를 위한 라이브러리로, 통계적 데이터의 패턴과 경향을 파악하는 데 유용합니다.
- Seaborn은 Matplotlib 위에서 작동하며, 통계 그래프를 그리기 쉽게 만듭니다.
Python에서의 통계 분석 예제
다음은 Python을 사용하여 간단한 통계 분석을 수행하는 예제입니다. 이 예제에서는 Pandas와 SciPy를 사용하여 데이터셋을 탐색하고, t-검정을 수행합니다.
예제: 학생 성적 데이터 분석
아래 코드는 두 그룹의 학생 성적 데이터를 비교하는 t-검정(t-test)을 수행합니다.
import pandas as pd
import numpy as np
from scipy import stats
# 두 그룹의 학생 성적 데이터 생성
np.random.seed(42) # 재현성을 위해 난수 시드 설정
group1_scores = np.random.normal(loc=75, scale=10, size=30) # 평균 75, 표준편차 10
group2_scores = np.random.normal(loc=70, scale=10, size=30) # 평균 70, 표준편차 10
# 데이터 프레임으로 변환
data = pd.DataFrame({
'Group1': group1_scores,
'Group2': group2_scores
})
# 기술 통계 출력
print("기술 통계")
print(data.describe())
# t-검정 수행
t_stat, p_value = stats.ttest_ind(group1_scores, group2_scores)
# 결과 출력
print("\nT-검정 결과")
print(f"T-통계량: {t_stat:.2f}")
print(f"P-값: {p_value:.4f}")
# P-값 해석
alpha = 0.05
if p_value < alpha:
print("유의미한 차이가 있습니다. (귀무 가설 기각)")
else:
print("유의미한 차이가 없습니다. (귀무 가설 채택)")
코드 설명
데이터 생성:
numpy.random.normal
을 사용하여 두 그룹의 성적 데이터를 생성합니다.- 각 그룹은 평균과 표준편차가 다른 정규 분포를 따릅니다.
데이터 프레임 생성:
pandas.DataFrame
을 사용하여 데이터를 표 형식으로 정리합니다.
기술 통계 출력:
data.describe()
를 통해 데이터의 기술 통계를 요약합니다(평균, 표준편차, 최소/최대값 등).
t-검정 수행:
scipy.stats.ttest_ind
를 사용하여 두 그룹 간의 평균 차이를 검정합니다.- T-검정은 두 독립 표본의 평균 차이가 유의미한지 판단하는 데 사용됩니다.
결과 해석:
- P-값이 0.05보다 작으면 귀무 가설을 기각하고, 유의미한 차이가 있다고 결론 내립니다.
- 그렇지 않으면 귀무 가설을 채택합니다.
추가 통계 분석
위 예제 외에도 Python을 사용하여 다양한 통계 분석을 수행할 수 있습니다:
- 회귀 분석: 데이터의 선형 관계를 분석하고 예측 모델을 구축합니다.
- 카이제곱 검정: 범주형 데이터의 독립성을 검정합니다.
- ANOVA: 여러 그룹 간의 평균 차이를 검정합니다.
- 시계열 분석: 시간에 따른 데이터의 경향성과 계절성을 분석합니다.
예제: 회귀 분석
아래는 StatsModels를 사용하여 간단한 회귀 분석을 수행하는 예제입니다.
import statsmodels.api as sm
# 예제 데이터 생성
np.random.seed(42)
X = np.random.rand(100) * 10 # 독립 변수
y = 3 * X + np.random.normal(0, 1, 100) # 종속 변수 (노이즈 추가)
# 상수항 추가
X = sm.add_constant(X)
# 회귀 모델 적합
model = sm.OLS(y, X)
results = model.fit()
# 회귀 분석 결과 출력
print("회귀 분석 결과")
print(results.summary())
코드 설명
데이터 생성:
- 임의의 X 값을 생성하고, y 값은 X에 대한 선형 관계를 따릅니다.
- 노이즈를 추가하여 실제 데이터를 시뮬레이션합니다.
상수항 추가:
statsmodels.api.add_constant
를 사용하여 회귀 분석에 필요한 상수항을 추가합니다.
회귀 모델 적합:
sm.OLS
를 사용하여 선형 회귀 모델을 적합하고,fit
메서드로 모델을 학습시킵니다.
결과 출력:
results.summary()
를 통해 회귀 분석 결과를 요약합니다.
이렇게 Python을 사용하면 다양한 통계 분석을 손쉽게 수행할 수 있습니다.
728x90
반응형
'Software > Python' 카테고리의 다른 글
Python 시작하기 - YOLO객체 감지 (1) | 2024.09.09 |
---|---|
Python 시작하기 - 수식편집기 (0) | 2024.08.22 |
Python 시작하기 - AI 모델 (0) | 2024.07.31 |
Python시작하기 - QRcode (0) | 2024.07.30 |
파이선 소개(chatGPT작성) (1) | 2024.07.23 |