2020.02.10(월) 기초 통계학 세션 (~ 가설검정 전까지)

Ch01 데이터로 보는 기초통계학


1.1 주요 통계치


#자료의 집중도 (중심화 경향 central tendency)
#mean
#median
#mode

자료의 분산도  (퍼짐정도 dispersion)
#standard deviation
#variance
#maximum value
#minimum value
#range


분포형태와 대칭정도
#skewness
#kurtosis


그외
#sum #number of observations

1.1.1 자동차 데이터(mtcars)

1.1.1.1 데이터 탐색 mtcars
View(mtcars)
#View는데이터가 어떻게 생겼는지 보는 명령어인데 매번 쓰기 번거로으니 data프레임으로 적재한다.

mt<-mtcars
#data프레임에 적재

help(mtcars)
#변수에 대한 설명
#[1] mpg : 연비-Miles/(US) gallon 
#[2] cyl : 배기통-Number of cylinders
#[3] disp: Displacement (cu.in.)
#[4] hp : 마력-Gross horsepower
#[5] drat: Rear axle ratio
#[6] wt  : Weight (1000 lbs)
#[7] qsec: 1/4 mile time
#[8] vs : Engine (0 = V-shaped, 1 = straight)
#[9] am : Transmission (0 = automatic, 1 = manual)
#[10]gear: Number of forward gears
#[11]carb: Number of carburetors

summary(mtcars)
#summary는 기초통계량을 보여주는 함수
summary(mtcars$mpg)
#데이터 셑 다음에 "$"를 이용해 각변수의 통계량도 볼수 있다.

summary(mt)
#믈론 이렇게 볼수도 있다.


summary(mt$mpg)

plot(mtcars$hp, mtcars$mpg)
plot(mtcars$hp, mtcars$qsec)
#plot함수로 간단하게 두변수의 관계를 볼 수 있다. 첫번째가 x축, 두번째가 y축
#마력이 높을 수록 연비는 않좋고, 또 qsec도 나쁘다.


<퀴즈1> 왜 그럴까? 데이터로 증명하시오 

1.1.1.2 집중도의 변수 

#mean : 컬럼 한개의 평균 값을 계산한다.

mean(mtcars$mpg) #단순 평균치 계산 
mean(mtcars$mpg, trim=0.05) #상위 5%, 하위 5%를 각각 제거하고 평균 계산   
mean(mtcars$mpg, trim=0.15) #상위 15%, 하위 15%를 각각 제거하고 평균 계산

#주요 변수만 뽑아서 평균 값을 계산
vvar<-c("mpg","hp","wt") #mpg, hp, wt를 벡터로 설정, 아직 까지는 값이 없음  
colMeans(mtcars[vvar]) #mtcar에서 mpg, hp, wt에 대한 평균을 구하고 이를 저장 
View(vvar)


                 "센터는 나야 나"
                   :우리는 함수로 공정하게..

센터는 나야 나 이미지 검색결과


#median :컬럼 한개의 중위 수를 계산한다. (feat, quantile)
#어떤 주어진 값들을 크기의 순서대로 정렬했을 때 가장 중앙에 위치하는 값을 의미한다

#"센터 짤" "센터는 나"


median(mtcars$mpg) #단순 중위수 계산 

##중간 값 말고 10%, 20%, 40%에 해당하는 값을 구하고 싶다.

quantile(mtcars$mpg, probs=c(0.1,0.2,0.4)) #오름차순임
quantile(mtcars$mpg) #probs를 지정한하면 4분위 25, 50, 75, 100% 순으로 배치됨 



(퀴즈2) 갑자기 팀장이 mpg, ht, wt의 4분위 수를 구해서 테이블로 만들라고 한다. 

     
     
##(참고) 고급 명령어 apply : apply(object, direction, fuction to apply)

### 예시 행렬 입력
a<-array(1:12, dim=c(3,4))  # 1부터 12까지값을 3x4 행렬 에 넣는다. 
b<-matrix(1:12, nrow=3, ncol=4)
a==b

## apply문을 이용한 함수(max)
View(a)
apply(a,2,max) #2번째 열부터  

#mode : 최빈값

mode(mtcars$mpg) #자료의 형태가 표시된다. 

#패키지 필요
install.packages("prettyR")
library("prettyR")
Mode(mtcars$cyl) #Mode,앞이 대문자다
Mode(mtcars$) #Mode,앞이 대문자다


#1.1.1.3 퍼짐정도(disperstion)의 통계치 


#분산
var(mtcars$mpg)
vvar3<-c("mpg","hp","wt")
var(mtcars[vvar3]) #공분산까지 계산함 

#표준편차
sd(mtcars$mpg)

#범위
range(mtcars$mpg) #최소값 ~ 최대값
max(mtcars$mpg)-min(mtcars$mpg)

#최대값 #최소값
max(mtcars$mpg)


#변동계수 : 표준편차를 산술평균으로 나눈 값 / 측정단위가 서로다른 자료를 비교
sd(mtcars$mpg)/mean(mtcars$mpg)
sd(mtcars$wt)/mean(mtcars$wt)

c1<-sd(mtcars$mpg)/mean(mtcars$mpg)
c2<-sd(mtcars$wt)/mean(mtcars$wt)
c3<-sd(mtcars$hp)/mean(mtcars$hp)

cm<-c(c1,c2,c3)
View(cm)

vvar4<-c("mpg","hp","wt")

퀴즈3 colmax(mtcars[vvar4]) # 욕심을 부린걸까? 혹시 가능할까?

#(퀴즈3)
## apply(mtcars[vvar4],2,max) 데헷!

## vvar5<-c("mpg","hp","wt")
## apply(mtcars[vvar5],2,min) #데헷


#1.1.1.4 분포형태와 대칭정도


#확률분포의 대칭도 및 뾰족한 정도
#패키지 없이 할 경우

라떼는 말이야 이미지 검색결과


attach(mtcars)
n<-length(mpg)
m<-mean(mpg)
s<-sd(mpg)
skew<-sum((mpg-m)^3/s^3)/n 
kurt<-sum((mpg-m)^4/s^4)/n-3
detach(mtcars)

#skew #왜도가 >0 : 오른쪽 부분이 긴꼬리--자료가 왼쪽에 더 많이 분포
     #왜도가 <0 : 왼쪽 부분이 긴꼬리 - 자료가 오른쪽에 더 많이 분포
     #왜도가 0 : 평균값과 중앙값이 같다

#kurt #0을 기준 정규분포




##패키지 설치
install.packages("psych")
library(psych)

skew(mtcars$mpg)
kurtosi(mtcars$mpg)


##종합
describe(mtcars$mpg)
summary(mtcars$mpg)

1.1.1.5 상관분석 (두변수 사이의의 관계)


cor(mtcars$wt, mtcars$mpg)
cov(mtcars$wt,mtcars$mpg)/(sd(mtcars$wt)*sd(mtcars$mpg)) #이렇게도 구할 수 있음 


cor(mtcars$hp, mtcars$mpg)
cor(mtcars$wt, mtcars$hp)


1.1.1.6 DIRECT MARKERTING 데이터로 실습

1.1.1.7 BANK 데이터로 실습 

댓글