통계적 가설 검정

13주차 수업에서는 통계 분석의 절차에 대해서 학습하였습니다. 여기서 말하는 통계 분석의 통계는 기술통계보다는 추론 통계에 더 가깝다고 할 수 있습니다.

  • 기술 통계 : 데이터를 요약해 설명. 우리가 지금까지 해 왔던 EDA도 이 통계 분석 방법 중에 하나.

  • 추론 통계 : 단순하게 숫자의 요약이 아닌 어떤 값이 발생할 확률까지도 계산하는 기법

추론 통계의 예를 들어 보자면, A그룹의 값의 평균이 B그룹의 값의 평균보다 높다 라는 것이 데이터에서 나타났을 때 이러한 차이가 막연히 우연에 의해서 나타날 확률이 있기 때문에, 그 확률을 계산하는 것이 입니다.

<통계 분석 절차>

  1. 분석 방법 선정

  2. 분석하고자 하는 목적에 따른 귀무가설과 대립가설 설정

  3. 분석도구 검정통계량 실행 및 확인

  4. 유의 수준 결정 : 0.1, 0.05, 0.01

  5. 유의 확률 확인

  6. 유의확률과 유의수준 비교

  7. 귀무가설과 대립가설 선택

  8. 분석 결론

1. 가설

가설은 모수(모집단)에 대한 예상입니다.

1) 귀무가설 (영가설) : H0

귀무가설, 혹은 영가설은 통계학에서 처음부터 버릴 것을 예상하는 가설을 말합니다. 기본 상태에서 변화가 없거나 의미없는 차이가 없는 경우이며, ~~가 맞지 않다는 것을 통계학적 증거를 통해 증명하는 가설 입니다.

예를 들어 범죄 사건에서 A라는 용의자가 있을 때 A는 무죄이다. 라는 영가설을 세울 수 있습니다.

통계에서는 이 통계 집단의 통계가 유의미하지 않다 (무의미하다.) 라는 것이 영가설 입니다. 즉, 0이 되는 값, 없다, 존재하지 않는다, 변화가 없다, 무의미한 경우에는 영가설이라 할 수 있습니다.

2) 대립가설 (연구 가설, 유지 가설) : H1

대립가설은 귀무가설에 대립되는 가설 입니다. 기본 상태에서 변화가 생기거나, 의미있는 차이가 있을 때 입니다. 모집단에서 독립변수와 결과 변수 사이에 관련이 있다. (의미있는 차이가 있다.) 라는 뜻 입니다. 귀무가설을 기각함으로써 받아들여지는 반증의 과정으로 받아들여집니다.

예를 들어 범죄 사건에서 A라는 용의자가 있을 때 A는 유죄이다. 라는 영가설을 세울 수 있습니다. 이때 A를 유죄이다를 입증하기 위해서는 A는 무죄이다를 반박하기 위한 증거를 수집해서 제시해야 합니다.

통계에서는 귀무가설보다 대립가설이 더 중요합니다. 세상에 변화를 불러일으키는 것이 대립가설이기 때문이죠. 일반적으로 통계에서는 대립가설을 맞다고 가정하여 통계 분석을 실시합니다. (영가설은 원래 상태이기 때문에)

2. 통계적 가설 검정

통계적 가설 검정은 대립가설이 맞는지 (관측한 통계치가 유의미한 결과인지) 입증하는 과정 입니다. 실제로 집단 간의 유의미한 차이가 있어 통계치에 차이가 있는지, 혹은 우연에 의해 나온 결과인지 알아보는 것 입니다.

이때 사용하는 것이 유의수준과 유의확률 입니다.

1) 유의수준

일반적으로 유의 수준은 α로 표현합니다. 95% 신뢰도 기준으로, 0.05값이 유의수준 값이 됩니다.

2) 유의확률

유의확률, 혹은 P값은 귀무가설이 맞다고 가정할 때 얻은 결과보다 극단적인 결과가 실제로 관측될 결과 입니다. 실험의 유의확률은 실험의 표본 공간에서 정의되는 확률변수로, 0에서 1 사이의 값을 가집니다.

 

p-value가 작을수록 귀무가설보다 대립가설에 가깝다 (유의미하다.) 라고 볼 수 있습니다. 특정한 값 **0.05**, 0.01 의 수보다 작을 경우 귀무가설을 기각하고 대립가설을 채택하는 것이 관례입니다.

 

 

참고자료

https://ko.wikipedia.org/wiki/%EA%B7%80%EB%AC%B4_%EA%B0%80%EC%84%A4

https://ko.wikipedia.org/wiki/%EC%9C%A0%EC%9D%98_%ED%99%95%EB%A5%A0

 

'Study > Data Mining' 카테고리의 다른 글

Do it R 분석 도전 (midwest) - 160  (0) 2019.04.17
Do it R분석 도전 (midwest) - 123  (0) 2019.04.10
Kaggle  (0) 2019.03.15
R language  (0) 2019.03.15
EDA (탐색적 데이터 분석)  (0) 2019.03.14

Do it R 에서 제공하는 분석 도전 문제 풀이 입니다. 160쪽의 문제 입니다. 이번에도 ggplot2의 midwest 데이터를 사용하여 데이터 분석을 실습하는 문제 입니다.

패키지와 문제에 필요한 데이터를 불러오고 사본을 만듭니다.

library(ggplot2)
library(dplyr)

midwest_raw <- as.data.frame(ggplot2::midwest)
midwest_new <- midwest_raw

 

View() 등으로 데이터를 파악한 뒤 바로 문제를 풀어 보았습니다.

1. popadults는 해당 지역의 성인 인구, poptotal은 전체 인구를 나타냅니다. midwest 데이터에 '전체 인구 대비 미성년 인구 백분율' 변수를 추가하세요.

#1번 문제
midwest_new <- midwest_new %>% mutate(percyouth = (poptotal - popadults)/poptotal * 100)

 

2. 미성년 인구 백분율이 가장 높은 상위 5개 county(지역)의 미성년 인구 백분율을 출력하시오.

#2번 문제
midwest_new %>% arrange(desc(percyouth)) %>% 
  select(county, percyouth) %>% 
  head(5)

## county percyouth
## 1  ISABELLA  51.50117
## 2 MENOMINEE  50.59126
## 3    ATHENS  49.32073
## 4   MECOSTA  49.05918
## 5    MONROE  47.35818

 

3. 다음과 같은 분류표의 기준에 따라 미성년 비율 등급 변수를 추가하고, 각 등급에 몇 개의 지역이 있는지 알아보세요.

분류 기준
large 40% 이상
middle 30 ~ 40% 미만
small 30% 미만
#3번 문제
midwest_new <- midwest_new %>% 
  mutate(gradeyouth = ifelse(percyouth >= 40 ,"large",
                             ifelse(percyouth >= 30,"middle","small")))
table(midwest_new$gradeyouth)

## large middle  small 
##    32    396      9 

 

4. popasian은 해당 지역의 아시아인 인구를 나타냅니다. '전체 인구 대비 아시아인 인구 백분율' 변수를 추가하고 하위 10개 지역의 state(주), county(지역), 아시아인 인구 백분율을 출력하세요.

#4번 문제
midwest_new <- midwest_new %>% 
  mutate(ratio_asian = popasian/poptotal*100)

midwest_new %>% arrange(ratio_asian) %>% 
  select(state, county, ratio_asian) %>% 
  head(10)

##   state    county ratio_asian
## 1     WI MENOMINEE  0.00000000
## 2     IN    BENTON  0.01059210
## 3     IN   CARROLL  0.01594981
## 4      OH    VINTON  0.02703190
## 5     WI      IRON  0.03250447
## 6     IL     SCOTT  0.05315379
## 7     IN      CLAY  0.06071645
## 8     MI    OSCODA  0.06375925
## 9     OH     PERRY  0.06654625
## 10    IL     PIATT  0.07074865

Source code

https://github.com/ark1st/Doit_R_ARKS_CODE/blob/master/midwest_160p%EF%BB%BF

 

// 참고자료

영우, 『쉽게 배우는 R 데이터 분석』, 이지스 퍼블리싱, 2019

이영호, "확률과통계"  가천대학교, 2019

'Study > Data Mining' 카테고리의 다른 글

통계적 가설 검정  (0) 2019.05.31
Do it R분석 도전 (midwest) - 123  (0) 2019.04.10
Kaggle  (0) 2019.03.15
R language  (0) 2019.03.15
EDA (탐색적 데이터 분석)  (0) 2019.03.14

Do it R 에서 제공하는 분석 도전 문제 풀이 입니다. 123쪽의 문제 입니다. ggplot2의 midwest 데이터를 사용하여 데이터 분석을 실습하는 문제 입니다. midwest는 미국 동북중부 437개 지역의 인구 통계 정보를 담고 있습니다.

 

먼저 문제를 풀기 전에 필요한 패키지를 불러오겠습니다. 우리는 변수의 이름을 바꿔야 하므로 dplyr 패키지를 불러와야 하고 ggplot2 패키지 내의 데이터를 사용하기 때문에 ggplot2 패키지를 불러옵니다. 그 후 데이터 프레임을 만듭니다.

library(dplyr)
library(ggplot2)
#데이터 프레임 불러오기
midwest_raw<-as.data.frame(ggplot2::midwest)

 

1. ggplot2의 midwest 데이터를 데이터 프레임 형태로 불러온 다음 데이터의 특징을 파악하세요.

데이터를 불러왔으면 가장 먼저 데이터 프레임의 복사본을 생성하는 것이 좋습니다. 변수를 가공하면서 실수 등으로 데이터가 손실될 수 있기 때문입니다. 1번 문제는 데이터의 특징을 파악하는 문제 입니다. str() 함수와 View() 함수로 데이터를 간략히 파악하여 보았습니다. summrary() 함수나 head() 함수 등을 사용하여 파악할 수도 있습니다.

#데이터 프레임의 복사본 생성하기
midwest_new<-midwest_raw

#1번 문제
str(midwest_new)
View(midwest_new)

 

2. poptotal(전체인구) 변수를 total로, popasian(아시안 인구) 변수를 asian으로 수정하세요.

rename() 함수를 사용해서 변수의 이름을 바꿀 수 있습니다.

#2번 문제
midwest_new <- rename(midwest_new, total=poptotal)
midwest_new <- rename(midwest_new, asian=popasian)

 

3. total, asian 변수를 이용해 '전체 인구 대비 아시아 인구 백분율' 파생변수를 만들고, 히스토그램을 만들어 도시들이 어떻게 분포하는지 살펴보세요.

파생 변수를 만들고 hist() 함수를 이용하여 히스토그램을 출력합니다.

#3번 문제
midwest_new$percasian <- (midwest_new$asian / midwest_new$total) * 100
hist(midwest_new$percasian)

 

4. 아시아 인구 백분율 전체 평균을 구하고, 평균을 초과하면 "large", 그 외에는 "small"을 부여하는 파생변수를 만들어 보세요.

평균을 구하고 ifelse() 함수를 이용하여 파생변수를 만듭니다.

#4번 문제
percasian_mean <- mean(midwest_new$percasian)
percasian_mean
## [1] 0.4872462
midwest_new$mean <- ifelse(midwest_new$percasian > percasian_mean, "large", "small")

5. "large"와 "small"에 해당하는 지역이 얼마나 되는지 빈도표와 빈도 막대 그래프를 만들어 확인해 보세요.

#5번 문제
table(midwest_new$mean)
## large small 
##  119   318 
qplot(midwest_new$mean)

Source code

https://github.com/ark1st/Doit_R_ARKS_CODE/blob/master/midwest_123p

 

 

// 참고자료

영우, 『쉽게 배우는 R 데이터 분석』, 이지스 퍼블리싱, 2019

이영호, "확률과통계"  가천대학교, 2019.03.21

'Study > Data Mining' 카테고리의 다른 글

통계적 가설 검정  (0) 2019.05.31
Do it R 분석 도전 (midwest) - 160  (0) 2019.04.17
Kaggle  (0) 2019.03.15
R language  (0) 2019.03.15
EDA (탐색적 데이터 분석)  (0) 2019.03.14

Kaggle은 Google LLC 소유의 데이터 사이언티스트 및 머신러닝 개발자들의 온라인 커뮤니티 입니다. 케글은 사용자가 데이터 집합을 찾을 수 있게 하고 웹 기반의 데이터 사이언스 환경 모델을 탐색 및 구축합니다. 또한 다른 데이터 사이언티스트 및 머신러닝 엔지니어와 협력하고, 데이터 사이언스 과제를 해결할 수 있도록 경쟁할 수 있게 합니다.


https://www.kaggle.com/


 

Kaggle 커뮤니티

케글 커뮤니티는 100만 이상의 사용자를 가진 세계에서 갖아 크고 다양한 데이터 커뮤니티 입니다. 케글 커뮤니티에는 수천 개의 공개 데이터셋(public datasets)과 코드 스니펫(code snippets), kernels 를 가지고 있습니다. 




케글에서는 머신러닝 대회, Kaggle Kernels, 공개 데이터셋 플랫폼, Kaggle Learn,  채용 보드를 운영하고 있습니다.



  • 머신러닝 대회

케글의 첫번째 산물로 케글을 전 세계에 알렸다고 볼 수 있습니다. 회사들은 어려운 문제를 제시하고, 많은 사람들, 연구자들은 그 문제를 해결하기 위한 최고의 알고리즘을 만들기 위해 경쟁합니다.


  • Kaggle Kernels

데이터 사이언스 및 머신러닝을 위한 클라우드 기반의 워크벤치(workbench) 입니다. 파이썬 혹은 R로 작성된 코드들을 데이터 사이언티스트들이 공유할 수 있으며 150만개 의상의 코드 스니펫(code snippets)들이 공유되고 있습니다.


  • 공개 데이터셋 플랫폼

케글 커뮤니티의 회원은 뼈 x-ray 결과나 권투 시합의 결과와 같은 것에 이르기까지 많은 데이터 셋을 공유합니다. 


  • Kaggle Learn

실용적인 데이터 사이언스 기술을 무료로 배울 수 있도록 강의를 제공합니다. 파이썬, 머신러닝, 판다, 딥러닝, 데이터 시각화, SQL과 같은 강좌가 개설되어 있습니다.



//

Kaggle, Wikipedia, updated 2019.03.04, accessed 2019.03.15, https://en.wikipedia.org/wiki/Kaggle

'Study > Data Mining' 카테고리의 다른 글

통계적 가설 검정  (0) 2019.05.31
Do it R 분석 도전 (midwest) - 160  (0) 2019.04.17
Do it R분석 도전 (midwest) - 123  (0) 2019.04.10
R language  (0) 2019.03.15
EDA (탐색적 데이터 분석)  (0) 2019.03.14

R은 통계 컴퓨팅과 그래픽을 위한 프로그래밍 언어 및 무료 소프트웨어 입니다.



https://www.r-project.org/


R은 통계학, 데이터 마이닝, 데이터 분석, 여론조사등에 대한 연구에 널리 사용되고 있습니다 . R은 광범위한 통계와 그래픽 기법을 지원하며 확장성이 매우 높습니다. 


R은 범용 분석 툴로써 어떤 형태의 데이터이든 자유롭게 분석할 수 있습니다.

(통계 분석, 머신러닝 모델링, 텍스트 마이닝, 소셜 네트워크 분석, 지도 시각화, 주식 분석, 이미지 분석, 사운드 분석, 웹 애플리케이션 개발)


R은 세계적인 규모의 기업들이 사용하고 있으며 데이터 분석 대회 케글(Kaggle)에서 가장 많이 사용되는 데이터 분석 도구로 R을 꼽을 많큼 점유율이 점점 높아지고 있습니다.


R은 프리 소프트웨어(Free Software) 로서  GNU General Public License 의 라이센스에 의거하여 오픈소스 형태로 공개되어 있습니다. 그렇기 때문에 새로운 분석 기법이 등장하면 빠른 시일 내에 패키지가 업로드 될 수 있으며 현재 1만개 이상의 패키지가 공개되어 있습니다. 또한 이 강력한 모든 부분을 무료로 사용할 수 있어 비용이 들지 않는 점이 가장 R이 각광받는 측면으로 작용하고 있습니다.



//

R (programming language), Wikipedia, updated 2019.03.11, accessed 2019.03.15, https://en.wikipedia.org/wiki/R_(programming_language)

What is R?, R-project, accessed 2019.03.15, https://www.r-project.org/about.html

영우, 『쉽게 배우는 R 데이터 분석, 이지스 퍼블리싱, 2019, pp 17~31

이영호, "확률과통계"  가천대학교, 2019.03.14

'Study > Data Mining' 카테고리의 다른 글

통계적 가설 검정  (0) 2019.05.31
Do it R 분석 도전 (midwest) - 160  (0) 2019.04.17
Do it R분석 도전 (midwest) - 123  (0) 2019.04.10
Kaggle  (0) 2019.03.15
EDA (탐색적 데이터 분석)  (0) 2019.03.14

EDA (탐색적 데이터 분석)


탐색적 데이터 분석 (exploratory data analysis) 은 데이터의 집합(data sets)을 분석하여 그 특징을 요약하는 접근법으로 흔히 시각적 방법을 사용합니다. 통계적 모델은 사용되거나 사용되지 않을 수도 있지만, EDA는 데이터가 형식적인 모델링이나 가설의 시험 과제를 넘어서 우리에게 무엇을 말해줄 수 있는지를 보기 위한 것(for seeing what the data can tell us) 입니다.


EDA의 목적(objectives) 은 다음과 같습니다.


  • 관찰된 현상의 원인에 대한 가설을 제시합니다.
  • 통계적 추론을 기반으로 가정을 평가합니다.
  • 적절한 통계 도구 및 기법의 선정을 지원합니다.
  • 조사나 실험을 통하여 추가 데이터 수집의 근거를 제시합니다.


EDA의 과정은 다음과 같습니다.


  1. 데이터 가지고 오기
  2. 데이터 모양 확인
  3. 데이터 타입 확인
  4. 데이터 기초 분석
  5. 데이터 클린징
  6. 데이터 시각화
  7. 의사결정


EDA의 테크닉은 빅 데이터 분석과 데이터 마이닝에 채택되었습니다. 또한 학생들에게 통계적 사고를 소개하는 방법으로 가르쳐지고 있습니다.




<출처> 

Exploratory data analysis, Wikipedia, updated 2019.02.22, accessed 2019.03.14, https://en.wikipedia.org/wiki/Exploratory_data_analysis#cite_note-5


이영호, "확률과통계"  가천대학교, 2019.03.14

'Study > Data Mining' 카테고리의 다른 글

통계적 가설 검정  (0) 2019.05.31
Do it R 분석 도전 (midwest) - 160  (0) 2019.04.17
Do it R분석 도전 (midwest) - 123  (0) 2019.04.10
Kaggle  (0) 2019.03.15
R language  (0) 2019.03.15

+ Recent posts