2019년 8월 13일 화요일

Chp2. 통계적 추론

본론
2.1 데이터 시대의 통계적 사고
빅테이터란?
-->기술의 융합 ,측정의 혁명적 변화를 통한 의사결정의 관전, 철학이 바뀐것
-->핵심기술 -- 통계학 , 선형대구, 코딩스킬 -->데이터의 전처리 -->데이터 시각화 -->모형화

2.1.1 통계적 추론
데이터란?
-->현실세계의 과정이 남긴 흔적이며 어떤 데이터를 (흔적들)을 수집하는지는 데이터 수집과 표본추출 방안에 의해 결정된다
--->>대단히 주관적인 , 분석가의 의견이 들어간 과정이다

2.1.2 모집단과 표본
모집단
-->단지 "사람" 이 아니라 트윗 , 접속기록 , 이메일 기록등 모든것이 가능
표본
-->모집단을 N개 단위(unit)로 나눈것을 의미

2.1.3 빅데이터 시대의 모집단과 표본
빅데이터 시대에는 특정 주제가 정해지면 모든 정보를 모은다 그럼에도 표본이란 존재가 필요한가?
-->있어야한다 , 목적에 따라 데이터의 필요 양이 다르기 때문이다

새로운 유형의 data 타입
-->전통적 유형의 data 타입(숫자,text,binary)
-->기록(timestamp) 접속시간 , 체류시간
-->gis - 위치기반 GPS데이터
-->네트워크 데이터
-->센서측정값
-->이미지

빅데이터의 정의
움직이는 타겟
--> 1페타 ? 3테라?가 빅데이터라고 정의 해야 하는가? 빅의 개념을 데이터 크기로 지정하는것은 어려운일임
다수의 머신
-->하나의 기계로 처리할수 어서 다수의 머신을 연동해서 작업을 한다면 big이라고 볼수있다
문화적 현상
-->생활의 모든것을 측정하고 수치화 시키기 시작하며 나온 결과물이다
4V
-->용량(Volumn)다양한(Variety)속도(Velocity)가치(Value)적 측면에서의 혁신이 빅데이터라고 볼수있다

2.1.4 N=전체?
빅데이터 혁명의 가장큰 논재로 수집된 data는 전체 모집단을 의미하는가?
N=전체라는 논점의 문제
-표본보다 대용량 데이터의 수집과  활용에 중점
-데이터의 난접함 역시 수용
-원인파악의 포기
-->수집한 데이터가 "어떻게 수집되었는가?" 보다 이 데이터의 "활용" 에만 중점을 두고 "데이터가 말하게 두자" 라는 소리를 하는사람들이 많음 = 데이터는 객관적이라는 생각을 가진사람이 많다

데이터가 객관적이라는 사람은 "원인파악"을 포기한 상태에서 할수있는말임
-->예를들어
-->남녀의 회사 채용에서 남성은 오래다닌비율이 높고 여성은 짧게 다니며 근무에 대한 부정적인 언행을 하는 결과를 보이기 때문에 "여성 보다 남성을 채용하는게 좋다" 라는 결과가 나왔다면
-->왜 여성의 근속년수가 낮은지,회사가 여성을 충분히 대우한 상태에서 발생한 문제인지, 원인을파악하기보다 그저 "남성을 채용하자" 라는 결론에 도달하며 "인과관계(caucation)을 무시하게 된다

2.1.5 모형화
확실히 짚고 넘어가야 하는 모형화
-->데이터 모형화와 통계적 모형화의 차이 (db에 데이터를 저장하는 모형화, 방식과 통계를 산정하는 방식의 모형화의 차이점

모형의 정의
-->하나의 특정한렌즈처럼 현실의 성격을 이해하고 표현하려는 기준

통계적 모형을 만드는 방안
-->반쯤은 예술 반쯤은 과학
-->시작은 "탐색적 분석" (EDA)로 시작한다
-->시작은 단순하게 , 그리고 점차 정교하게 만들어간다 (히스토그램과 산포도를 그린다)

2.2 탐색적 Data 분석 - EDA
-->존재한다고 믿는것들은 물론 존재하지 않는다고 믿는것들도 찾는태도 , 유연성 , 자발성을 내포한다
-->Exploratory Data Analysis - EDA 다수의 히스토그램과 줄기-잎 DIAGRAM(Stem-and-leaf plot)등을 이용한다



-->EDA는 가설, 모형도 생각하지않는게 대부분이고 이때 연구의 방향이 정해지게된다

2.2.1 EDA 의 철학
EDA는 다른 사람을 설득시키기 전에(분석의 논리와 쟁점을 산정하기 전에) 시작해서 목적을 잡기위해

EDA의 필요성
-->데이터의 직관을 얻기위해
-->분포도 사이의 비교를 위해
-->데이터의 온전성 검사(데이터가 내가원하는,기대하는 척도의 형태로 존재하는지)
-->결축(Missting data) 탐색
-->이상값의 탐색
-->데이터의 보완

EDA 디버깅
-->EDA디버깅을 하지않으면 자신이 맞다고 생각하는 오류에 빠져버린다

EDA 시각화 VS 데이터 시각화
-->EDA에서 = "무었을 하는지" 이해하기 위해 실시하는것
-->데이터 시각화 = 최종단계에서 결과 보고를 위해 실시하는 분석

2.2.2 EDA 실습
준비
0.파일 준비
https://github.com/oreillymedia/doing_data_science 에 공개되있는 dds_datasets.zip을 다운로드 받는다
dds_datasets.zip압축헤제 -> dds_ch2_nyt.zip 압축헤제 -> nyt1.csv ~ nyt31.csv 확인

1.R 설치
r-project.org 에서 R을 다운받아서 설치한다

2.R 실행후 Working Directory 확인



> getwd()
[1] "C:/Users/Kusee/Documents"
해당 디렉토리에 nyt1.csv ~ nyt31.csv 옮긴다

목적
1.사용자를 "<18" "18-24" "25-34" "35-44" "45-54" "55-65" "65+"로 범주화한 변수에 age_group 을 생성
2.어느 특정 날짜에 대해
2-1.6개의 나이 범주에 대한 노출횟수와 클릭율의 분포를 도표로 나타내기 (csv 파일의 #clicks , #impression column대상)



2-2.사용자들의 클릭행동에 기반하여 분할하거나 범주화하는 변수를 정의한다
2-3.데이터를 탐색하고 사용자 세부집단 , 인구통계적 집단을 시각적으로 그리고 양적으로 비교
2-4.데이터를 요약하는 지표를 산출
CTR,사분위수,평균,중앙값,분산,최대값을 뽑는다
3.분석을 다른날짜로 확장해서 여러 지표와 분포를 시간에따라 시각화
4.패턴을 분석하고 묘사한다

실행
#csv 파일 호출
csv1 <- read.csv("nyt1.csv")

#head 로 내용 확인및 범주화
head(csv1)
csv1$agecat <- cut(csv1$Age,c(-Inf,0,18,24,34,44,54,64,Inf))

#보기
summary(csv1)




#괄호로 묶기
install.packages("doBy")
-->summaryBy(), orderBy(), sampleBy() 등의 함수가 포함된 package




library("doBy")
siterange <- function(x){c(length(x), min(x), mean(x), max(x))}
summaryBy(Age~agecat, data =csv1, FUN=siterange)




#로그인한 사용자에게만 나이와 성별이 부여
summaryBy(Gender+Signed_In+Impressions+Clicks~agecat, data=csv1)



#도표제작
install.packages("ggplot2")
library(ggplot2)
ggplot(csv1, aes(x=Impressions, file=agecat)) + geom_histogram(binwidth=1)



ggplot(csv1, aes(x=agecat, y=Impressions, fill=agecat)) + geom_boxplot()



#클릭생성
#광고노출이 있다면 분석은 의미있다(광고를 클릭했을 가능성이 있으니까
#광고가 없다면 무의미한 분석이다
csv1$hasimps <- cut(csv1$Impressions,c(-Inf,0,Inf))
summaryBy(Clicks~hasimps, data=csv1, FUN=siterange)



ggplot(subset(csv1, Impressions>0), aes(x=Clicks/Impressions, colour=agecat)) + geom_density()



ggplot(subset(csv1, Clicks>0), aes(x=Clicks/Impressions, colour=agecat)) + geom_density()



ggplot(subset(csv1, Clicks>0), aes(x=agecat , y=Clicks, fill=agecat)) + geom_boxplot()



ggplot(subset(csv1, Clicks>0), aes(x=Clicks , colour=agecat)) + geom_density()



#범주화 하기
csv1$scode[csv1$Impressions==0] <- "NoImps"
csv1$scode[csv1$Impressions>0] <- "Imps"
csv1$scode[csv1$Clicks>0] <- "Clicks"

#column을 요인(factor)로 변환하기
csv1$scode <-factor(csv1$scode)
head(csv1)



#요인의 수준 확인
clen <-function(x){c(length(x))}
etable<-summaryBy(Impressions~scode+Gender+agecat, data =csv1,FUN=clen)



2.3 데이터사이언스 과정 Diagram


데이터 상품이 다시 현실세계에 반영되는 현상을 통해 예측을 넘어서 미래를 일으키게 된다!!!

데이터 과학에서 명심해야 하는것
->질문하기
--->데이터사이언스는 팀플레이다 당연히 내가 아는분야가 아니면 용어를 모를수밖에 없음, 모르면 질문해야한다 모르는건 죄가 아닌데 안물어보는건 죄다
->배경연구하기
->가설의 설정
->실험을 통한 가설 검정
->데이터의 분석및 결론도출
->결과 전달

2.5 Practice
"https://www.realdirect.com/" 의 부동산 회사의 데이터를 분석해보자

댓글 없음:

댓글 쓰기