728x90

 

 

 

 

ls 함수

- 작업 공간 내 변수 출력

- []로 인덱싱 

 

plot

- 산점도로 띄우기

 

- x 라벨, y라벨, 타이틀 추가

 

-col, pch, cex: 색상 및 모양, 크기 변경

 

 

- 범위 변경 : xlim = c(최소, 최대), ylim

 

 

par 함수

- 다중 plot 함수

- mfrow로 plot 배치 설정 후 plot 함수 실행

 

 

abline

- 회귀 관련 선, 수직/수평 선

 

 

pairs

- 산점도 행렬

 

 

mycor

- pairs와 마찬가지로 산점도 행렬 plot

 

 

 

 

문북 패키지에 있는 데이터로 연습하기

 

 

- age와 height, weight, bmi 산점도

 

- 산점도 행렬

 

 

300x250

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

데이터분석 - 8. 베이즈 이론  (0) 2020.10.20
데이터분석 - 7. 시각화 2  (0) 2020.10.20
데이터분석 - 5. 확률기초  (0) 2020.10.19
데이터분석 - 4. R그래프들  (0) 2020.10.19
데이터분석 - 3. R기초 2  (0) 2020.10.19
728x90

확률의 현재

- 불확실성을 다루기 위해 학문과 생활속에서 다양히 활용

 

배워야 할것들

- 확률 정의 definition of probabliistic

- 확률 분포 probabilistic distribution 특성과 계산하기

- 표본 분포 sample distribution와 확률 과정 stochastic process

- 시뮬레이션

 

확률을 진짜 이해하기 위해선

- 프로그램으로 돌려보는게 좋다.

- 가장 가능성 높은 결과를 예측하고 의사 결정에 활용

 

 

파스칼, 페르마와 주사위 도박

- 2명은 각각 32피스톨(화폐 단위)를 가진다.

- 3판을 이기면 승리.

- A가 2, B가 1판 이긴경우 배분

 

주사위 도박 승자 확률

- 일반적인 생각 : A에는 2/3, B는 1/3 

- B는 두판을 더 이겨야 하므로 B가 이길 확률 0.5 ^2 = 0.25

- A가 이길 확률 1 - (B가 이길 확률) = 0.75

- 배분 : A는 64 x 0.75, B는 64 x 0.25가 공정

=> 기댓값 : 확률 변수 평균 개념 지표

 

확률의 적용 범위

- 생물학, 물리학, 경제학, 통계학, 경영학, 로봇 공학 등 현대 과학 모든 분야

 

 

 

 

확률의 수학적 정의

- 어떤 사건이 일어날 가능성 0 ~ 1의 실수

- 다양한 확률의 정의들 : 상대도수적 정의, 기하학적 정의, 고전적 정의, 공리적 정의

 

 

동전 앞면이 나올 확률

- 확률 = 앞면 나온 횟수/ 전체 시행 횟수

 

상대도수적 확률의 정의

- n번 시행중 사건 A가 a번 발생했을때 사건 A가 일어날 확률 P(A)

- P(A) = a/n

- 100만번 동전 던져서 앞면이 나올 확률 = 500,000/1,000,000

- 야구의 타율 타석수 250, 안타수 103 => 0.412 타율 = 103/250

- 문제점 : 같은 조건에서 통계 실험을 계속 반복하기 힘듬. => 컴퓨터 시뮬레이션으로 실험 가능해짐

 

기하학적 확률

- 일부의 길이 또는 면적 / 공간 전체의 길이 또는 면적 => 면적의 비율

 

 

확률 구분

- 주관주의 확률 subjectivism : 몇번 시행(경험)으로 구한 확률(느낀 확률, 믿음의 정도 degree of belief)

- 객관적 확률 : 많은 시행으로 구한 확률

 

 

 

정의 : 수학적 정의 확률, 상대도수적 확률, 기하학적 확률

구분 : 주관주의 확률, 객관적 확률

 

 

 

 

 

 

 

표본 공간과 사건, 고전적/공리적/여사건 확률에 대하여

 

 

표본 공간 : 통계적 실험 모든 가능한 결과 집합

사건 : 표본 공간의 부분 집합

고전적 확률 : 사건의 원소수를 표본 공간의 원소수로 나누어 구한 확률

공리적 확률 : 고전적 확률을 일반화 시킨 확률

 

 

 

집합과 원소

- 집합 set : 명확하게 구분된 원소들의 묶임

- 원소 element : 구분 가능한 요소

 

집합의 표현

- 원소 나열법 혹은 조건 제시법으로 표현

- 원소 나열법 : A = {1, 2, 3, 4, 5}

- 조건 제시법 : A = {n은 자연수| 1<= n <= 5}

 

부분 집합

- 집합 B의 모든 원소가 집합 A에 속하는 경우 부분집합

- ex) A = {1, 2, 3}, B = {1} => B는 A의 부분 집합

 

그외 집합

- 전체 집합 U : 표본 공간

- 공집합 : 원소가 하나도 없는 집합

- 합집합 : 두 집합의 합한 집합

- 공집합 : 두 집합의 공통된 원소로 이루어진 집합

- 여집합 : 전체 집합에는 속하지만 A에 속하지 않는 집ㅎ바

- 차집합 : A - B, A에 속하나 B에 속하지 않는 집합

 

 

표본공간 S ; sample space

- 통계적 실험시 모든 가능한 결과로 이루어진 집합

- 사건 : 표본 공간의 부분 집합

 

 

동전 던지기의 표본 공간

- 앞면 H, 뒷면 T 이라 하는 경우

- S = {H, T}

 

 

 

고전적 확률

- 표본공간 : S = {e1, e2, .., ei, ..., ek} => n(S) = n

- 사건 : A = {e1, ..., ei} => n(A) = k

- 확률 P(A) = 사건(사상) A의 원소 개수/ 표본 공간 S의 원소 개수

              = k / n

 

동전 던져서 앞면이 나올 확률

- S = {H, T}

- A = {H}

- P(A) = 1/2

 

주사위 던져서 짝수가 나타날 확률(고전적 확률)

- S = {1, 2, 3, 4, 5, 6}

- A = {2, 4, 6}

- P(A) = 3/6 = 1/2

=> 고전적 확률 계산시에 사건 원소 개수가 중요

 

 

복원 추출

- n개 중에서 r개를 복원 추출 : n^r

 

비복원추출

- n개 중 r개를 비복원 추출(순서 고려) : nPr = n!/(n-r)!

- n개중 r개 비복원 추출(순서 비고려) : nCr = n!/(n-r)!r!

 

 

로또복권에서 1등에 당첨될 확률

- A = 1등 당첨

- 45C6 = 45!/6!(45-6)!

- P(A) = 1/8,145,060

 

 

공리적 확률

- 0<= P(A) <= 1

- P(S) = 1

 

300x250

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

데이터분석 - 7. 시각화 2  (0) 2020.10.20
데이터분석 - 6. R 시각화  (0) 2020.10.20
데이터분석 - 4. R그래프들  (0) 2020.10.19
데이터분석 - 3. R기초 2  (0) 2020.10.19
데이터분석 - 2.R 기초  (0) 2020.10.19
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
728x90

dplyr

- 데이터 매니퓰레이션 단계(전처리)

- select() 변수선택

- filter() 행선택

- arrange() 정렬

- mutate() 새변수 생성

- group by & summarise() 통계량 생성

- pipe, count, sample etc..

 

 

select(dataframe, 변수명)

- 변수에 해당하는 행 데이터 

 

 

starts_width(), ends_width(), contains()

- 변수 찾기

 

filter(dataframe, 비교문)

- 행 데이터 추출

- ex : filter(data_txt, age > 30)

-

 

arrange(dataframe, variable)

- 해당 변수 데이터 정렬

- 내림차순시 desc(변수명)

 

 

mutate

- 변수(열) 생성

- mutate(dataframe, variable name = function)

 

summarise()

- 통계값 산출

- summarise(dataframe, 변수명=통계함수, ...)

 

 

% (pipe 파이프)

- %>% : 흐름

- 파이프를 이용하여, 파이프 흐름을 따라 데이터프레임을 가공할 수 있다.

 

- %>%를 사용하지 않는 경우

 => 따로 변수 할당해서 여려줄 반복해서 만들어주어야 한다.

300x250

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

데이터분석 - 6. R 시각화  (0) 2020.10.20
데이터분석 - 5. 확률기초  (0) 2020.10.19
데이터분석 - 4. R그래프들  (0) 2020.10.19
데이터분석 - 2.R 기초  (0) 2020.10.19
데이터분석 - 1.개요  (0) 2020.10.19
728x90

데이터 분석을 하려면 가장 먼저 할 일은?

-> 데이터 수집, 로딩

 

 

데이터 출력

- header =T 옵션 없으면 age, gender, group을 열이 아닌 1행으로 인식

 

 

 

변수 할당시 보기

- ctrl + 변수 명 클릭

 

head 함수

- 상위 6개 행 출력

- 데이터 상당히 많으므로 일부 볼떄 자주 사용

 

 

names 함수

- 열이름 확인하기

 

summary 함수

- 데이터 정리해서 출력

 

str 함수 (structure)

- 해당 데이터의 구조 출력

- 10개의 옵셔베이션, 3개의 바리어블

 

 

 

 

is.na 함수

- 결측치인지 반환

- is.na에 sum : true 가 1, false 는 0이며 true 가 없으므로 0이

colSums 함수

- 열 별로 sum 연산

- 아래의 예시는 각 열별 결측치 sum

 

 

 

 

 

read.csv()

- "tab" 쓰면 해당 wd의 파일 자동완성

- 다음 예시는 6922 옵셔베이션에 20개 변수 가짐

 

 

 

 

 

csv 데이터 훑어보기

- str() : 구조 파악

- summary() : 기초 통계 빈도에 대한 내용 반환

- names : 변수명 확인

- is.na() : 결측값 확인

 

 

 

데이터 형태

- 데이터 프레임 : 엑셀과 같은 데이터

- 스칼라 : 1 x 1 형 데이터

- 벡터 : 1 x N 형 데이터

- matrix : M x N 형 데이터

* c() : concatenate의 약어로 스칼라 값들을 연결하여 벡터로 만듬

=> ex. c(1,2,3,4,10)

 

R 패키지

- CRAN The Comprehensive R Archive Network

- git

 

 

moonBook 설치 및 사용

- 성별을 기준으로 AGE, TEMP, AVPU 데이터 분석

 

 

유용한 R 패키지들

support.rstudio.com/hc/en-us/articles/201057987-Quick-list-of-useful-R-packages

- 배워야할 필수 패키지 4개

- Dplyr

- ggplot2

- ggvis

- caret

 

 

 

 

latex

- 논문쓸떄 많이 사용하며, html형태로 결과를 만들어줌

 

 

 

데이터 프레임 일부분 추출

- 데이터프레임명[행, 열]

 

 

데이터프레임 특정 변수 접근

- 데이터프레임명$변수

- age에서 1~4 추출

- age가 30보다 큰 추출 -> true false 반환

- age가 30보다 큰 age들 추출

- age가 30보다 큰 행 전체 출력

 

 

문제

# 나이가 30세보다 크고

# 성별이 M인 사람을 뽑자

 

300x250

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

데이터분석 - 6. R 시각화  (0) 2020.10.20
데이터분석 - 5. 확률기초  (0) 2020.10.19
데이터분석 - 4. R그래프들  (0) 2020.10.19
데이터분석 - 3. R기초 2  (0) 2020.10.19
데이터분석 - 1.개요  (0) 2020.10.19
728x90

통계를 배워야 하는 이유

- 무엇이 최선의 선택인가?

=> 데이터 주도 의사결정

 

통계학

- 실험으로 발견된 차이가 우연으로 예측된 차이보다 큰 것을 증명

- 통계 분석 : 그 결과가 우연인지 아닌지, 의미잇는 것은지 아닌지 분석하는 과정

 

통계학 배워서 할것들

- 데이터 시각화

- 통계적 시험

- 통계 개념 이해

- 여러 방법론 사용

 

 

 

고전과 현대 통계학

- 고전 통계학 : 수식과 알고리즘으로 소통

- 현대 통계학 : 데이터 기반

 

 

빅데이터 정의

- 4v도 있지만.

- 타임 스탬프(이 데이터가 언재)와 로케이션(어디서 생성되었는가)을 갖는 데이터

 

 

데이터 분석시 고려사항들

- 보정 adjust 

- 쪼개기 faceting

- 아웃라이어

- 결측치 

 

보정

- 해당 변수의 영향을 고려하는 것

ex) 폐암과 연관성이 높은 요소라고해서 무조건 암의 원인이라고 판단할수는 없음

 

보정의 예시

- 교회가 많아지면 범죄율도 증가한다

 => 인구가 늘면 교회도 늘고 범죄율도 증가

- 냉장고 보급률과 위암 환자에는 큰 관계가 있다

 => 사실 소득이 늘면서 냉장고 보급과 의료 서비스가 좋아짐. 위암 환자수가 증가

 

 

심슨의 역설

- 쪼개서 보아야 함. => 하위 그룹 분석

 

아웃라이어의 문제점

- 이상치로 인해 추정 값이 너무 심하게 변함

=> 평균, 회귀계수

 

 

결측치 NA Not Available

- 데이터에 결측치가 있는경우 분석되지 않을수도 있다.

- 데이터에 결측치가 포함된 경우 모든 통계값은 NA를 리턴하게되어 없애주도록 해야함

 

 

 

 

 

 

 

 

 

통계 분류

- 기술 통계 descriptive statistics : 수집한 데이터를 요약, 묘사

- 추론 통계 inference statistics : 모집단(알려고하는집단, 전체 집단)을 대표할수 있는 표본집합(모집단을 샘플링)으로 추론

 

기술 통계

- 수집된 데이터를 요약, 묘사(수치적, 시각화 등)

- 수치적 묘사 : centering 지표 ( 평균, 중앙값, 최빈값), spread 지표(분산, 표준편차), 웨도, 첨도 등

 

centering 지표

- 평균mean : 데이터의 합/ 데이터 갯수

- 중앙값 median : 데이터 정렬 후 가운데 값

- 절삭 평균 truncated mean : 양끝값을 제거 후 평균

=> 자료의 중심 측도 만으로 내용을 설명하기에는 부족함. spread 지표로 묘사

 

 

spread 지표

- 분산 variance : 평균에서 얼마나 멀어지는지. 데이터가 퍼진 정도

 

그 외 지표

- 왜도 skewness : 자료의 치우친 정도. 자료 대칭성 측도.

- 첨도 kurtosis : 얼마나 뾰족한가. 봉오리 높이 측도

 

 

 

 

 

추론 통계 inference statistics

- 수집 데이터로 추론, 예측하는 기법

- 전체 집단을 알수없기 때문 ->제한된 데이터 표본

- 모집단 population : 알고자 하는 전체 집단

- 표본집합 sampling : 모집단으로부터 추출한 집단

 

 

 

다양한 표본 추출 방법

- SRS Simple Random Sampling : 단순 랜덤 샘플링

- 층화

- 집락

- 계통

- PPS Proportional to Population Size : 모집단 크기에 비례하도록 추출

 

구간 추정

- 신뢰 구간

 

 

 

 

300x250

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

데이터분석 - 6. R 시각화  (0) 2020.10.20
데이터분석 - 5. 확률기초  (0) 2020.10.19
데이터분석 - 4. R그래프들  (0) 2020.10.19
데이터분석 - 3. R기초 2  (0) 2020.10.19
데이터분석 - 2.R 기초  (0) 2020.10.19

+ Recent posts