728x90

- 탐사형 데이터 분석 eda Exploratory Data Analysis

- 데이터 종류에 따른 분석 방법

- 시각화

 

데이터를 다룰떄 전처리 한다고함..

전처리 + 탐사형 데이터분석 => 분석 용도에 맞게 만들어가는 과정

* 데이터 탐색이 매우 중요해짐

 

 

전처리시 확인사항

1. 중복되는 행

2. 간단히 범주화 할수 있는것 없는지 고려

 ex. 학교 계단, 학교 복도, 학교 교실 -> 모두 학교 내부로 변경 가능한지

3. 이상치 확인 

 ex. 키 554cm, 몸무게 654kg

 

 

입력된 데이터 형테에 따른 구분

- 문자형 데이터

- 숫자형 데이터

 

변수 갯수에 따른 구분

- 단변수 univariable

- 양변수 bivariate

- 다변수 multivariate

=> 데이터 구분에 따라 사용가능한 통계/EDA 방법이 달라짐

 

2개 집단

- 앞/뒤, 좌/우

 

2개 이상의 집단

- nomial 명목형 : 인사팀, 마케팅팀, 회계팀, 개발팀

- ordinal 순서형 : 저체중, 정상, 비만, 고도비만

* 순서형이 명목형보다 더많은 정보 가짐

 

 

숫자 형태에 따른 분류

- 연속형 : 측정 가능 ( ex. 온도, 몸무게 등)

- 이산형 : 카운팅하여 얻는 값 ( ex. 입장자 수)

 

open question의 목적

- 빈도 확인

- 새로운 범주 탐색

 

 

차트 

- 파이차트 : 전체적인 분포와 비율 확인 가능

- 바 차트 : 빈도 비교와 범주 간 차이를 비교 할 수 있음

- 파레토 차트 : 단순 정렬 및 누적 퍼센트 그래프

 

 

 

측도 measure

- mean 평균 , median 중앙값, truncated mean 절삭 평균

- var, IQR

- 왜도 첨도

 

Quantile 분위수

- 25%(Q1), 50%(Q2), 75%(Q3)

- 구간을 4개로 나눔

 

 

5가지 수

- min, q1, median(q2), q3, max

 

IQR InterQuantile Range

- Q3- Q1인 구간에 해당

- 중앙 안에 들어가는 범위를 알 수 있음

 

https://online.stat.psu.edu/stat200/lesson/3/3.2

 

 

 

 

box plot

- 최대, 최소, 분위수 등 다양한 정보를 표현한 그래프

- upper/lower fence 밖은 outlier로 판단

 

http://www.scielo.org.mx/img/revistas/eq/v27n3//0187-893X-eq-27-03-00209-gf1.jpg

 

줄기 잎그림

- 실제 데이터를 사용하여 정보 손실이 없음

- 적은 데이터를 표현에는 최적

https://ko.wikipedia.org/wiki/%EC%A4%84%EA%B8%B0_%EC%9E%8E_%EA%B7%B8%EB%A6%BC

 

 

히스토그램 histogram

-자료의 분포 상태를 직사각형으로 표현한 그래프

- 구간을 나누어 범주로 만들고 막대가 연결됨

* bar 차트는 막대 사이 간격 존재

https://ko.wikipedia.org/wiki/%ED%9E%88%EC%8A%A4%ED%86%A0%EA%B7%B8%EB%9E%A8#/media/%ED%8C%8C%EC%9D%BC:Histogram_of_arrivals_per_minute.svg

 

 

 

산점도 scatter plot

- 두 개의 연속형 변수를 나타냄

- 두 변수간의 관계를 나타내는것 -> 상관관계

https://ko.wikipedia.org/wiki/%EC%82%B0%EC%A0%90%EB%8F%84#/media/%ED%8C%8C%EC%9D%BC:Scatter_plot.png

 

 

상관계수 correlation

- -1 ~ 1사이의 수

- 0보다 크면 양의 상관, 0보다 작으면 음의 상관관계

 

 

상관 계수 = 0의 의미

- 선형 적인 관계가 없다

- 비선형 적인 관계는 존재할 수도 있음

 

 

 

 

 

a <- c(1, 2, 3, 10)

# ctrl shift c 로 여러줄 주석, 취소
# mean(a)
# max(a)

# F1으로 도움말 열기
var(a)

# Visualization -----------------------------------------------------------
boxplot(a, horizontal=TRUE)
# ctrl + shfit + r로 insert section 사용 가능

getwd()




data_txt <- read.table("txt_data.txt", header=T)


head(data_txt)

names(data_txt)

summary(data_txt)

str(data_txt)

is.na(data_txt)
sum(is.na(data_txt))
colSums(is.na(data_txt))


ER_data <- read.csv("ER_exam.csv")
head(ER_data)
names(ER_data)
str(ER_data)
summary(ER_data)
colSums(is.na(ER_data))
# 데이터 전처리 필요 여부 판단 가능

install.packages("moonBook")
library(moonBook)
mytable(SEX~AGE+TEMP+AVPU,data=ER_data)

table_result <- mytable(SEX~AGE+TEMP+AVPU+F_KTAS,data=ER_data)
mycsv(table_result, file="20201019_table.csv")


mylatex(table_result)


a <- c(1, 2, 3, 10)
a
a[3]
a[2:5]

data_txt
data_txt[1,]
data_txt[,1]
data_txt[1:2,]

data_txt$age
data_txt$age[1:4]
data_txt$age>30
data_txt$age[data_txt$age>30]
data_txt[data_txt$age>30,]


#1. 나이가 30세보다 크고
#2. 성별이 M
# 이름은 data_30_M
data_txt$gender=="M"
data_txt$age>30
data_txt[data_txt$age>30, ]
(data_txt$age>30) & (data_txt$gender=="M")
data_30_M = data_txt[(data_txt$age>30) & (data_txt$gender=="M"),]
data_30_M


library(dplyr)

head(select(data_txt,starts_with("a")))
head(select(data_txt,ends_with("r")))
head(select(data_txt,contains("e")))


head(filter(data_txt, age >30))

head(arrange(data_txt,age))
head(arrange(data_txt,desc(age)))


head(mutate(data_txt,new_var=ifelse(age>=30, 1, 0)))
head(mutate(data_txt,new_var2=substr(gender, 1, 0)))


summarise(ER_data,mean_AGE=mean(AGE),mean_TEMP=mean(TEMP,na.rm=T))
summarise(group_by(ER_data,SEX),mean_AGE=mean(AGE),mean_TEMP=mean(TEMP,na.rm=T))


data_txt
data_txt %>%
  filter(age > 30) %>%
  group_by(group) %>%
  summarise(mean(age,na.rm=TRUE))

data_txt_tmp <- filter(data_txt, age > 30)
data_txt_tmp <- group_by(data_txt_tmp, group) 
data_txt_tmp <- summarise(data_txt_tmp,mean(age))
data_txt_tmp

quantile(data_txt$age,na.rm=T)
300x250

'수학 > 통계' 카테고리의 다른 글

데이터분석 - 6. R 시각화  (0) 2020.10.20
데이터분석 - 5. 확률기초  (0) 2020.10.19
데이터분석 - 3. R기초 2  (0) 2020.10.19
데이터분석 - 2.R 기초  (0) 2020.10.19
데이터분석 - 1.개요  (0) 2020.10.19

+ Recent posts