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 데이터 탐색 mtcarsView(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 데이터로 실습
댓글
댓글 쓰기