빅데이터분석준전문가자격증

ADsP. PART.3 - 데이터 분석 - R의 기초 - 2

theblack0 2022. 6. 24. 18:31
반응형

그래프의 종류

  • 산점도 plot(x,y)
  • 산점도 행렬 pairs()
  • 상자그림(boxplot())
  • 히스토그램(hist())
  • 막대그래프(barplot())

 

그래프 종류 - Boxplot

  -데이터의 분포를 파악하는 도구이다

**********************************************************매우 중요  시험에 자주 출제*******************************************

Q1값과 Q3값은 시험 문제에 주어짐(공식을 외울 것)

이상값 판단 기준 : Q1-1.5*IQR < x < Q3+1.5*IQR

IQR : Q3-Q1

Minnum : Q1-1.5*IQR

Maxinum : Q3+1.5*IQR

 

그래프의 종류  - Histogram

  -히스토그램

  • 도수분포표의 각 꼐급을 가로축에 나타내고, 해당 계급에 속하는 측정값의 도수를 세로축에 표시하여 직사각형 모양으로 그림
  • 왼쪽으로 치우친 모양이라면 데이터가 전체 범위에서 수치가 낮은 쪽에 몰려 있음을 의미, 오른쪽에 치우쳐 있다면 높은쪽에 몰려 있음을 의미
  • 한 쪽으로 치우치는 것 없이 비슷한 높이로 그려진다면 균일한 분포
  • 막대 높이는 빈도를 나타내며, 폭은 의미가 없음
  • 가로,세로축 모두 연속적임, 범주형에는 막대그래프를 사용함
  • 많은 데이터를 가지고 있는 경우 보다 정확한 관계 파악을 할 수 있음

 

apply계열함수

 - 데이터 조작에 편리한 기능 제공, apply함수가 가장 많이 사용됨

 - for문 없이 miti-core사용으로 빠르게 연산가능

 - split -> apply -> combine기능 제공,(데이터 분할 -> 함수 적용 -> 재결합)

apply

  • apply(input:array, output:array)
  • array에 행 또는 열별로 함수를 적용한 다음 그 결과를 vector 또는 array로 변환

lapply

  • lapply(input:vector/list, output:list)
  • vector, list에 함수를 원소별 적용하여 결과를 list로 반환
  • vector로 변환을 위해 unlist사용

sapply

  • sapply(input:list or vector, output:vector or array)
  • lapply와 유사하지만 결과물,vector,matrix 또는 array로 반환

tapply

  • tapply(input:list or vector and factor, output:vector or array)
  • 입력 데이터를 특정기준으로 묶은 다음 각 그룹마다 주어진 함수를 적용하고 그 결과를 반환

패키지 설지, 대표적인 패키지

 - 패키지 설치와 로딩

패키지 설치 install.packages("패키지 이름") #패키지 이름은 문자열로
패키지 로딩 library("패키지 이름"), library(패키지 이름) #패키지 이름은 문자열 / 이름 자체

 

주요 패키지

reshape melt(data,id=..........):id에 정한 변수를 기준(=고정)으로 데이터 구조를 변경함
cat(data,fornula=..................,([function)] : 데이터를 fornula에 있는 형태로 변환하고 func 적용
formula=행변수(고정) ~ 열번수(변경), 여러개 변수는 +로 묶음
reshape2 cast대신 acast,dcast사용
sqldf sqldf('sql 문자열')
plyr ??ply,adply().ddply(),.....................

 

plyr패키지

 - plyr패키지의 함수들

   - (입력 데이터)(출력 데이터)ply$글자의 함수명으로 이름이 지어짐

데이터 타입 array data.frame list nothimg
array aaply adply alply a_ply
data.frame daply ddply dlply d_ply
list laply ldply llply l_ply
n replicates raply rdply rlply r_ply
function arguments maply mdply mlply m_ply

-apply함수처럼 split-apply - combine처리하는 함수가 제공됨

-apply(데이터, margin=1(행),2(열),적용할 함수):

    배열,행렬,데이터프레임을 입력으로 받아 데이터프레임을 출력하는 함수

-ddply(데이터,(그룹 지울 변수명),적용할 함수):

    데이터프레임을 분할하고 함수에 적용 후 결과를 데이터 프레임으로 변환

 

유용한 함수들

paste()

  • 입력받은 객체들의 같은 위치 요소를 하나의 문자열로 붙임
  • number <- 1:5
  • alphabst <-c('a','b','c')
  • paste(number,alphaet)

substr()

  • 주어진 문자열에서 특정 문자열 추출, substr(대상,시작위치,끝위치)
  • fruit <--c('apple','banana','orange')
  • substtr(fruit,1,2)   <--'ap','ba','or'

split()

  • 데이터를 분리할 때 사용, split(데이터 분리조건)
  • split(iris,iris$Species)   <--3개 data.frame을 갖는 List로 생성됨

subset()

  • 특정 부분만 추출하는 용도
  • subset(iris,Species == 'setosa' & Sepal.Length >5.0
  • subset에 select인자를 지정하면 특전 열을 선택하거나 제외용도로 사용
  • subset(iris,select =c(Sepal.Length,Species))

객체의 속성 관련 함수

is.numeric(x) 객체유형이 numeric인지 판단 TRUE/FALSE 반환
is.logical(x) 객체유형이 logical인지 판단
is.character(x) 객체유형이 character인지 판단
is.integer(x) 객체유형이 정수인지 판단
is.double(x) 객체유형이 실수인지 판단
is.factor(x) 객체유형이 factor인지 판단
is.null(x), is.na(x) 객체가 NULL/NA인지 판단
length(x) 객체 원소의 개수 반환,matrix의 경우 행 * 열의 수
nrow(x) 행의 개수 반환(백터, 스칼라등에서 사용 못함)
NROW(x) 백터의 행의 개수 반환(스칼라에서도 사용가능)

결측치 대치법

  -단순 대치법(Single Imputation)

완전히 응답한 개체분석

  • completes analysis, 불완전한 자료는 모두 무시
  • 부분적으로 관측된 자료를 무시하므로 생기는 효율성 살실, 통계적 추론의 타당성 문제 존제

평균데치법

  • 관측 또는 실험을 통해 얻어진 데이터의 평균으로 결측값 대치
  • 비조건부 평균 데치법 : 관측 데이터의 평균값으로 대치
  • 조건부 평균대치법 : 회귀분석을 활용한 대치법

단순확률 대치법

  • 평균데치법에서 추정한 표준오차의 과소추정문제를 보완하고자 고안됨
  • Hot-dock, nearest neighbor방법 등이 있음

다중대치법

  • 단순대치법을 한번이 아닌 m번 수행하여 m개의 가상적 완전 자료를 만듦
  • 추정량 표준오차의 과소추정 또는 계산의 난해성 문제를 가지고 있음

 

결측치 인식, 선택, 삭제

is.na(x)

  • x의 포함된 값이 NA인지 아닌지 각각에 대해 TRUE, FALUE 값을 반환함
  • logical을 산술 연산이 가능하기 때문에 is.na함수 적용 후, sum 함수를 사용해 결측치 개수를 파악할 수 있음                 sum(is.na(x))

complete.cases(x)

  • x가 결측치를 가지고 있지 않은 완전한 데이터인지 확인하는 함수
  • 행 별로 결측치가 없으면 TRUE, 있으면 FALSE를 반환함

x[!complete.cases(x),]

  • indexing을 사용하여 결측치(NA)행만 추출

x[(complete.cases(x),]

  • indexing을 사용하여 결측치(NA)를 포함하지 않은 행 추출

na.omit(x)

  • 결측치(NA)가 있는 행 전체 삭제

 

이상값 검색

-이상값(Outlier)

  • 의도하지 않게 잘못 입력된 경우(bad data)
  • 분석 목적에 부합되지 않아 제거해야 하는 경우
  • 의도하디 않은 현상이지만 분석에 포함해야 하는 경우

-이상값 판단

  • ESD : 평균으로 부터 3*표준편차 밖의 값
  • boxplot 사용 : IQR*1.5밖의 값
  • summary() 사용 : 평균,중앙값,IQR를 보고 판단함  

이상값 처리

  • 이상값도 분석 대상이 될 수 있어 무조건 삭제는 안됨

 

반응형