- 탐사형 데이터 분석 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인 구간에 해당
- 중앙 안에 들어가는 범위를 알 수 있음
box plot
- 최대, 최소, 분위수 등 다양한 정보를 표현한 그래프
- upper/lower fence 밖은 outlier로 판단
줄기 잎그림
- 실제 데이터를 사용하여 정보 손실이 없음
- 적은 데이터를 표현에는 최적
히스토그램 histogram
-자료의 분포 상태를 직사각형으로 표현한 그래프
- 구간을 나누어 범주로 만들고 막대가 연결됨
* bar 차트는 막대 사이 간격 존재
산점도 scatter plot
- 두 개의 연속형 변수를 나타냄
- 두 변수간의 관계를 나타내는것 -> 상관관계
상관계수 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)
'수학 > 통계' 카테고리의 다른 글
데이터분석 - 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 |