[AIVLE AI 6기] 무엇을 배우나요? 2주차-데이터 분석

·2024년 10월 29일
0

AIVLE

목록 보기
5/9
post-thumbnail

가설검정이란?

모집단과 표본

모집단: 우리가 알고 싶은 대상 전체
표본: 그 대상의 일부 영역
-> 표본을 가지고 모집단을 알고 싶은것!

  • 우리는 표본을 통해 모집단을 추정한다!

귀무가설 vs 대립가설

  • 귀무가설: 기존에 알고있는 가설, 버릴 가설
  • 대립가설: 귀무가설에 대립하는 명제

    바이러스 치료제인 A는 효과가 있을까?
    귀무가설: A는 효과가 없다.
    대립가설: A는 효과가 있다.

그래서 가설 검정이란?

  1. 가설을 설립한다.
  2. 표본을 통해 P-value를 구한다.
  3. P-value의 값이 기준보다 작다면 가설을 수립한다.

-> 이러한 절차를 가설 검정이라 부름

이변량 분석

Case1: 연속 -> 연속

시각화(산점도)

  • 두 숫자형 변수의 관계를 나타내는 그래프
  • 중요한 관점은 직선인가?
plt.scatter( x축 값, y축 값 )
plt.scatter( ‘x변수’, ‘y변수’, data = df) 

sns.scatterplot( ‘x변수’, ‘y변수’, data = df)
sns.pairplot(dataframe) # 산점도 한번에 그리기

수치비교

  • 상관계수: 관계를 수치화한것
  • 상관분석: 상관계수가 유의미한 지를 검정(test)
import scipy.stats as spst
spst.pearsonr(air['Temp'], air['Ozone'])
# 결과: (상관계수, p-value)

df.corr() # 한번에 상관계수 구하기

-> P-value < 0.05 이면, 두 변수 간에 관계가 있다!

Case2: 범주 -> 연속

시각화

sns.barplot(x="Survived", y="Age", data=titanic)
plt.grid()
plt.show()

  • 두 평균에 차이가 크고, 신뢰구간이 겹치지 않을 때
    -> 대립가설이 맞다!

수치화(t-test, anova(분산분석))

  • 범주가 2개 -> t-test
  • 범주가 3개 이상 -> anova(분산분석)
# t-test
# 1) t-test를 위한 데이터 준비
# NaN 행 제외
temp = titanic.loc[titanic['Age'].notnull()]
# 두 그룹으로 데이터 저장
died = temp.loc[temp['Survived']==0, 'Age']
survived = temp.loc[temp['Survived']==1, 'Age']
# 2) t-test
spst.ttest_ind(died, survived)


# anova
# 1) 분산 분석을 위한 데이터 만들기
# NaN 행 제외
temp = titanic.loc[titanic['Age'].notnull()]
# 그룹별 저장
P_1 = temp.loc[temp.Pclass == 1, 'Age']
P_2 = temp.loc[temp.Pclass == 2, 'Age']
P_3 = temp.loc[temp.Pclass == 3, 'Age']
# 2) 분산분석
spst.f_oneway(P_1, P_2, P_3)
  • p-value가 0.05보다 작으면 차이가 있다.
  • t 통계량이 -2보다 작거나, 2보다 크면, 차이가 있다.

Case3: 범주 -> 범주

교차표 사용

# option: columns, index, all
pd.crosstab(,, normalize = option)

시각화(mosaic plot)

mosaic(titanic, [ 'Pclass','Survived'])
plt.axhline(1- titanic['Survived'].mean(),
color = 'r')
plt.show()

수치화(카이제곱검정)

  • 기대빈도와 실제의 차이를 값으로 나타낸것
# 1) 먼저 교차표 집계
table = pd.crosstab(titanic['Survived’],
titanic['Pclass'])
print(table)
print('-' * 50)
# 2) 카이제곱검정
spst.chi2_contingency(table)

# 결과
# 카이제곱 통계랑, p-value, 자유도, 기대빈도

Case4: 연속 -> 범주

시각화

sns.kdeplot( )

업로드중..

profile
백엔드 개발자가 꿈인 컴공과

0개의 댓글

관련 채용 정보