Sprint Challenge 2


Statistics


1. 데이터 불러오기

1.1 데이터셋 업로드

import pandas as pd
import io

# colab upload
from goolge.colab import files
uploaded = files.upload()

# csv데이터 불러오기, 한글포함 decode 'cp949' or 'euc-kr'
df = pd.read_csv(io.StringIO(uploaded['sc12x_dataset.csv'].decode('cp949')))

1.2 결측치 확인, 제거

# 결측치 확인
pd.isnull(df).sum()

# 결측치 제거
df = df.dropna(axis=1)
  • dropna(axis = 1)
    • axis = 1 : 열 제거
    • axis = 0 : 행 제거

1.3 특성 추가

# 새로운 항목 열 끝에 추가
df['새로운 항목'] = df['A'] + df['B']

" import datetime "

import datetime

# 날짜 지정
my_date = datetime.datetime(2021, 11, 30)

# 'A'의 dtype을 datetime64으로 변경
df['A'] = pd.to_datetime(df['A'])

# dtype을 동일하게 해줘야 계산이 가능
df['B'] = my_date - df['A']

" boolean을 integer로 변경 "

# boolean을 integer
condition = df['A'] >= 2000 & df['B'] >= datetime.timedelta(days=365*5 + 1)

df['V'] = condition
df['V'] = df['V'].astype(int)
  • '&' 대신에 'and'로 참거짓을 판별하면 에러

    Why?


2. 가설 검정

" 수치형 & 범주형 데이터 "

분류예시
수치형(numerical)연속형(continuous)키, 몸무게
수치형(numerical)이산형(discrete)주사위 결과, 교통사고 건수
범주형(categorical)순위형(ordinal)평점, 선호도
범주형(categorical)명목형(nominal)혈액형, 성별
  • 수치형(numerical) = 양적자료(quantitative)
  • 범주형(categorical) = 질적자료(qualitative)

2.1 수치형 ( numericla/continuous )

" 수치형 데이터에 대해 t-test를 진행 "

# one-sample t-test
pv = stats.ttest_1samp(df['A'], 0.5).pvalue

2.2 범주형 ( categorical )

" 범위형 데이터에 대해 Chi-Square Test를 진행 "

# df['A']를 기준으로 B를 분류
df = pd.crosstab(df['A'], df['B'])

# chi-square test
chi = stats.chisquare(df.sum(axis=1))

3. Analysis and Interpretation

  • 귀무가설 : 기준에 맞는 가설을 설정
  • 대립가설 : 귀무가설에 대립되는 가설
  • pvalue : 0.05의 alpha 값을 기준으로 귀무가설이 기각되는지 판별

🔥 도전과제



👉 과정 한눈에 보기

profile
I believe I can fly

0개의 댓글