21년 3월 12일 

코드스테이츠 부트캠프 8일차

Week2 Statistics


오늘의 나를 뒤돌아보며,

작년 20년 4회차 기사 시험으로 사회조사분석사 필기를 준비하며 통계를 공부했었다. 고3 수학 이후로 통계를 접해본 적이 없어서 초반에 공부하다가 과부하 걸린 적이 많았지만 차근차근 이해하며 준비하다보니 재미를 붙이기 시작했었다. 필기 시험 결과 통계 파트에서는 고득점을 받았으며 필기 시험은 합격했다. 그래서 통계 공부가 즐거울거라 생각했는데 수업 듣다보니 무슨 말을 하는가 싶었다. 분명 글인데 글을 읽어도 무슨 소린가 싶었음.

 

귀무가설 / 대안가설(대립가설) / 정규분포표 / t-test / ANOVA  등등 오랜만에 들으니까 낯설게 들렸다. 

 

필기 공부하면서 정리했던 노트를 펼쳐보니까 무슨 말인지 바로 이해가 가서 다행이지 ..... 용어와 설명하는 방식의 차이로 잠깐 혼동했었는데 정리했던 노트를 보면서 다시 이전에 공부했던 기억을 떠올렸고 중요하다고 생각드는 개념들을 블로그에 정리하려고 한다. 

 


8일차 주제 

Statistics

 

키워드

 

  • Hypothesis Test의 의미
  • T-test
  • P-value

 

 


꼭 정리해야 할 개념

 

 

 

우선, 가설이란! 가정된 설계이다. 실험 할 수 있는 아이디어

 

오늘 수업에서 가장 중요한 핵심 개념!!!!! 

 

귀무가설 (H0 )

'기존과 동일하다'를 조건으로 한다. '

'차이가 없다' 

'>=', '<=' (크거나 같다, 작거나 같다)

 

대립가설 (H1,Ha)

'기존과 동일하지 않다'를 조건으로 한다.'

'차이가 있다'

'>', '<' (크다, 작다)

 

예를 들어, 고등학교 1,2학년 남학생들의 키 평균을 비교한다고 하면

귀무가설  :  1,2학년 남학생들의 키 평균은 같다.

대립가설  :  1,2학년 남학생들의 키 평균은 같지않다.

 

정규분포표를 보면 평균을 기준으로 대칭되어있다. 

대체적으로 임계값은 0.05를 사용 (아무말 없으면 암묵적으로 0.05라고 생각하면 됨)

 

 -2σ ~ 2σ 사이의 값은 귀무가설을 채택한다는 것을 의미하는데 이는 옳다!는게 아니라 유의하다는거다. 

그렇다는건 2σ를 벗어나는 영역은 귀무가설 기각! 이라는 의미로 대립가설이 채택된다는 건데 무조건적으로 옳다는게 아니라 유의하다를 의미한다.

사회조사분석사 공부할 때 정리한 내용

 

 

검정통계량 > 임계값                  귀무가설 기각

p-value는 귀무가설이 맞다는 전제 하에, p-값(p-value)은 귀무 가설(null hypothesis)이 맞다는 전제 하에, 표본에서 실제로 관측된 통계치와 '같거나 더 극단적인' 통계치가 관측될 확률이다. 여기서 말하는 확률은 '빈도주의' (frequentist) 확률

 

 

유의수준 0.05

P-Value >= 0.05 : 귀무가설 채택

P-Value < 0.05 : 대립가설 채택

 


꼭 기억하자. 꿀팁

 

 

SciPy는 파이썬을 기반으로 하여 과학, 분석, 그리고 엔지니어링을 위한 과학(계산)적 컴퓨팅 영역의 여러 기본적인 작업을 위한 라이브러리(패키지 모음)

 

 

 

T-test

 

귀무가설과 대안가설을 설정하여 P-value를 확인하여 가설검증을 하는 것!

1.평균값을 구하기 위한 mean() 을 구한다.

2. stats.ttest_1samp(A, B)  ==> 코드 작성하면 가설검정 결과의 P-value값이 나온다.

 

docs.scipy.org/doc/scipy/reference/generated/scipy.stats.ttest_1samp.html

 

scipy.stats.ttest_1samp — SciPy v1.6.1 Reference Guide

Expected value in null hypothesis. If array_like, then it must have the same shape as a excluding the axis dimension.

docs.scipy.org

Two Sample T-test

 

2개의 sample 값들의 평균 서로 동일한지 비교.

1. 평균을 비교하기 위해 sample의 평균값을 구하기 위한 mean() 을 구한다.

2. stats.ttest_ind(A, B) 코드를 사용하여 가설 검증을 한다.

 

 

One-tailed test

 

1. 평균을 비교하기 위해 sample의 평균값을 구하기 위한 mean() 을 구한다.

2. t.test(A, B, alternative="greater")     #크다라는 가설에 대한 가설검정을 시행

 

stackoverflow.com/questions/15984221/how-to-perform-two-sample-one-tailed-t-test-with-numpy-scipy

 

How to perform two-sample one-tailed t-test with numpy/scipy

In R, it is possible to perform two-sample one-tailed t-test simply by using > A = c(0.19826790, 1.36836629, 1.37950911, 1.46951540, 1.48197798, 0.07532846) > B = c(0.6383447, 0.5271385, 1.7...

stackoverflow.com

 

분산이 크다라면 실제 예측한 0.5보다 멀 것이고 이 뜻은 에러가 크다.  (분산의 값과 에러는 비례한다)대신 샘플의 수가 클 수록 분산이 작아진다.결론: 표본의 수(샘플의 수)가 더욱 많아질수록, 추측은 더 정확해지고 (평균) 높은 신뢰도를 바탕으로 모집단에 대해 예측 할 수 있도록 함. =표본이 많아 질 수록 에러가 적어진다.

 

 


 

메모

 

 

분산분석할 때 참고할 링크

partrita.github.io/posts/ANOVA-python/

 

파이썬으로 분산분석(ANOVA)

ANOVA by python

partrita.github.io

no17.tistory.com/189

 

파이썬으로 데이터분석하기 t-test 평균검정

안녕하세요. 오늘은 파이썬으로 t-test 즉, 평균검정을 해보도록 하겠습니다. 개요 평균 검정은 단일집단 혹은 독립된 집단 사이의 가설을 검정하기 위한 수단으로 수치형 변수에 대해 집단의 평

no17.tistory.com

www.statology.org/cluster-sampling-in-pandas/


꼭 기억하고 넘어가야 하는 것

 

★ colab의 scipy가 (구)버전이라서 간혹 오류가 발생할 경우가 있는데 미리 아래 코드를 실행해두자!

실행하고 난 후에 런타임을 재시작해야한다.

 

1
2
#colab의 scipy가 (구)버전이라서 아래의 코드를 실행해주시고 런타임을 재시작해야 함.
!pip install --upgrade scipy  
cs

★ 파이썬 분산분석을 사용하기 위해 불러와야 하는 라이브러리

1
2
3
4
5
6
7
8
9
10
11
12
파이썬에서 분산분석을 사용하기 위한 라이브러리를 불러오는 코드부터 실행
 
import pandas as pd
import numpy as np
import scipy.stats as stats
import urllib
from statsmodels.formula.api import ols
from statsmodels.stats.anova import anova_lm
import matplotlib.pyplot as plt
%matplotlib inline
 
 
cs

특정 행 추출 방법 및 특정 열 추출 방법

 

1
2
3
4
5
6
7
#axis = 1 은 각 column에 값을 가져옵니다.
 
#axis = 0 은 각 row값을 가져옵니다.
 
#drop("A", axis=1) == drop(columns="A")와 동일합니다.
 
#axis=1은 column이니 drop("A", axis=1)은 "A" column 값을 제거하겠다는 의미입니다

cs
</div
1
2
3
4
df.sum(axis=0)을 실행하면 '행 방향'으로 성분들의 합
 
 
df.sum(axis=1)을 실행하면 '열 방향'으로 성분들의 합
cs

 

+ Recent posts