[ 2.1 정형화된 데이터의 요소 ]
- 정형 데이터의 종류
- 수치 데이터
- 연속형 데이터 : ex) 풍속, 지속 시간 등 실수 데이터
- 이산형 데이터 : ex) 사건의 발생 빈도 등 정수 데이터
- 범주형 데이터 :
- 비순서형 (명목형) 범주 데이터 : 예) 도시명(대전, 부산, 서울), 참/거짓 등
- 순서형 범주 데이터 : 예) 평점 등
[ 2.2 테이블 데이터 ]
- 테이블 데이터
- 데이터 분석에서 가장 대표적으로 사용되는 형태
- ex) 엑셀 - 스프레드시트, 데이터베이스 - 테이블
- 열 : 피처/특징/속성/변수
- 행 : 레코드 / 관측값/사례/기록값
[ 2.3 위치 추정 - 평균 ]
- 데이터를 살펴보는 가장 기초적인 단계는 각 피쳐(변수)의 '대푯값'을 구하는 것
- 대푯값 : 대부분의 값이 어디쯤에 위치하는지 (중심경향성)을 나타내는 추정값
- 평균 : 전체 합 / 개수
- 절사 평균 : 값들을 크기 순으로 정렬한 후, 양끝에서 일정 개수의 값들을 삭제한 후 남은 값을 가지고 구한 평균 (특잇값/극단값의 영향을 제거)
- 가중 평균 : 각 데이터 값에 가중치를 곱한 값들의 총합을 다시 가중치의 총합으로 나눔 (부족한 소수 그룹에 대해 더 높은 가중치 적용)
[ 2.3 위치 추정 - 중간값 ]
- 중간값
- 데이터를 일렬로 정렬했을 때, 한 가운데에 위치하는 값
- 만약, 데이터가 짝수라면 한가운데 위치한 두개의 값의 평균
- 결과를 왜곡할 수도 있는 특잇값(극단값)들의 영향을 받지 않음
mean(state[['Population']]) // 평균
mean(state[["Population"]],trim = 0.1) // 절사평균, 각 끝의 10% 제외
median(state[["Population"]]) // 중간값
weighted.median(state[["Murder.Rate"]],w=state[['Population']]) // 가중 평균 ( 살인 비율에 주별 인구 가중 )
[ 2.3 위치 추정 - 가중평균 예제 ]
알코올 도수 9%인 와인 200ml와 알코올 도수 21%인 소주 1000ml를 섞어서 만든 와소 폭탄주의 평균 알코올 도수 ?
weighted_mean_1 <- (200*0.09 + 1000*0.21)/(200+1000) // 단순 계산
weighted_mean_1
alcohol <- data.frame(volume = c(200,1000),alcohol_rate=c(0.09,0.21))
weighted_mean2 <- weighted.mean(alcohol$alcohol_rate,alcohol$volume) //가중평균 함수 이용
weighted_mean2
[ 2.4 변이추정 ]
- 변이 : 데이터 값이 얼마나 밀집해 있는지 혹은 퍼져 있는지를 나타내는 산포도
* 가장 유명한 방법은 분산과 표준 편차. 그 외에 평균절대편차, 범위, 백분위수, 사분위수 등
-
백분위수에 기초한 추정
- 순서 통계량 - 정렬된 데이터를 나타내는 통계량.
- 범위 : 최대값과 최소값의 차이
- 백분위수 : 50% 백분위수는 중앙값과 같고, 0% 백분위수는 최소값, 100% 백분위수는 최대값과 같다.
- 사분위범위(IQR) : 25번째 백분위수와 75번째 백분위 수의 차이
- 데이터 집합의 변이를 계산
var() : 분산
sd() : 표준 편차
IQR : 사분위범위
mad : 중위절대편차
quantile : 분위수
x <-c(1,2,3,3,5,6,7,9)
mean(x)
median(x) // 짝수일 때 두값의 평균
max(x)
min(x)
summary(x)
var(x) // 분산
sd(x) // 표준 편차
IQR(x) // 사분위범위
mad(x) // 중위절대편차
quantile(x, p=c(.05, .25, .5, .75, .95))
[ 2.5 데이터 분포 탐색 ]
- 데이터가 전반적으로 어떻게 분포하고 있는지 알아보는 것
- 백분위 수, 상자그림, 도수분포표, 히스토그램, 밀도그램 등
- R 함수 이용한 백분위수 생성 예
quantile(state[["Population"]],p=c(.05,.25,.5,.75,.95))
- R 함수 이용한 상자그림 생성 예
boxplot(state[["Population"]]/1000000,ylab="Population(millions)")
- R 함수 이용한 상자그림 보는법
- 데이터 분포 탐색
도수분포표는 변수의범위를 동일한 크기로 나눈 다음, 각 구간마다 몇 개의 변수 값이 존재하는지 보여줌
히스토그램은 도수분포표를 시각화하는 방법
- R의 table 함수를 이용한 도수분포표 생성
breaks <- seq(from=min(state[["Population"]]),to=max(state[["Population"]]),length=11)
pop_freq <- cut(state[["Population"]],breaks=breaks,right =TRUE,include.lowest=TRUE)
table(pop_freq)
- R의 hist 함수를 이용한 히스토그램 생성
hist(state[["Population"]],breaks=breaks)
- 그래프에 빈 구간들이 있을 수 있음
- 구간은 동일한 크기
- 구간의 수(or 구간의 크기)는 사용자가 결정할 수 있음
- 빈구간이 없으면 막대는 서로 붙어있음
x<-c(1,2,3,3,5,6,7,9)
breaks1 <- seq(from=min(x), to=max(x), length=5)
pop_freq1 <- cut(x,breaks=breaks1,right=TRUE, include.lowest = TRUE)
table(pop_freq1) //도수분포표 생성
hist(x,breaks=breaks1) // 히스토그램
[ 2.6 이진 데이터와 범주 데이터 탐색 ]
- 막대 그래프
barplot(as.matrix(dfw)/6,cexaxis=0.8,cexnames=0.7)
cex.axis : y축 글자 크기
cex.name : x축 글자 크기
barplot(as.matrix(dfw)/6,ylim=c(0,20000),cex.axis=0.8,cex.names=0.7)
ylim : y축 최소값, 최대값 지정
[ 3. 데이터와 표본 분포 ]
모집단 : 어떤 데이터 집합을 구성하는 전체 대상 혹은 전체 집합
표본 : 모집단의 부분 집합
모집단의 특성 : 모수
표본단의 특성 ; 통계량
[ 3. 1 랜덤표본추출과 표본편향 ]
- 표본 표출의 오차는 편향과 우연성에 의해 발생
- 편향은 표본추출방법을 과학적으로 계획하여 줄일 수 있음
- 우연에 의한 오차는 표본의 크기를 증가시킴으로써 감소 시킬 수 있음
- 표본추출법의 여러가지 유형
- 랜덤표본추출
- 무작위로 추출하는 과정. 모든 원소는 동일한 확률로 뽑히게 됨.
- 결과로 얻은 샘플은 단순랜덤표본이라고 함.
- 복원 추출과 비복원 추출이 있음
- 복원 추출 : 추첨후, 다음번에도 중복 추출이 가능하도록 해당 샘플을 다시 모집단에 포함
- 비복원 추출 : 한번 뽑힌 원소는 추후 추첨에 사용하지 않는 비복원추출
- 층화표본추출
- 모집단을 여러 층으로 나누고 각 층에서 무작위로 샘플을 추출
- ex) 정치 설문에서 백인,흑인, 라틴계 유권자들로 계층을 나누어 동일한 크기 표본 추출 시, 해당 층(흑인, 라틴계)에도 동일한 표본을 얻을 수 있음 <- 표본 편향 문제 회피
[ 3.2 이산확률분포와 연속확률분포 ]
이산확률분포 : 확률 변수의 값이 이산적(정수)일 때. ex) 동전을 5번 던졌을 때 앞면이 2번 나올 확률
연속확률분포 : 확률 변수의 값이 연속적(실수)일 때. ex) 몸무게가 50~55kg 사이일 확률
[ 3.3 통계학에서의 표본 분포 ]
데이터 분포 : 개별 데이터의 도수분포
표본 분포 : 여러 표본 혹은 재표본들로 부터 얻은 표본 통계량의 도수 분포
중심 극한 정리 : 표본의 크기가 커질수록 표본 분포가 정규분포를 따르는 경향
표준 오차 : 통계에 대한 표본분포의 변동성, 여러 표본들로 부터 얻은 표본 통계량의 변량 ( 개별 데이터 값들의 변량을 뜻하는 표준 편차와 혼동하지 말것)
- 단순 랜덤 표본
samp_data <- data.frame(income=sample(loans_income, 1000),
type='data_dist')
str(samp_data)
Sample : 데이터에서 무작위로 샘플 추출 (replace=F가 default 값이기 때문에 비복원 추출이 기본)
- tapply
samp <- data.frame(name=factor(c("kim","choi","choi","lee","kim","lee")),
score=c(50,30,10,50,20,30))
tapply(samp$score, samp$name, length) // 개수
tapply(samp$score, samp$name, mean) // 평균
tapply : 요인(factor)의 수준(level)별로 특정 벡터에 함수 명령어를 동시에 적용
tapply(함수 사용할 수치, 인수의 index, 적용함수)
- 5개 표본씩 평균
samp_mean_05 <- data.frame(
income = tapply(sample(loans_income, 1000*5),
rep(1:1000, rep(5, 1000)), FUN=mean),
type = 'mean_of_5')
str(samp_mean_05)
- 데이터프레임 rbind, 타입을 facrot 변환
income <- rbind(samp_data, samp_mean_05, samp_mean_20)
str(income)
income$type = factor(income$type,
levels=c('data_dist', 'mean_of_5', 'mean_of_20'),
labels=c('Data', 'Mean of 5', 'Mean of 20'))
'Database & Bigdata > 공공 빅데이터 청년 인턴십' 카테고리의 다른 글
[DAY 5] R로 배우는 통계 이해 - 회귀와 예측 (0) | 2020.08.28 |
---|---|
[DAY 5] R로 배우는 통계 이해 - 통계적 실험과 유의성 검정 (0) | 2020.08.28 |
[DAY 3-4] R로 배우는 통계 이해 - R 프로그래밍이해 / 통계기초 (0) | 2020.08.27 |
[DAY 2] 데이터 이해 및 정형 데이터 다루기 (0) | 2020.08.25 |
2020 공공 빅데이터 청년 인턴십 서류 및 면접 합격 (4) | 2020.08.07 |
댓글