단일변수 자료의 탐색
2024. 8. 29. 21:26ㆍ확률 통계/R 데이터 분석
자료의 종류
자료의 특성에 따른 분류
- 범주형 자료(질적 자료): 성별과 같이 범주로 구분할 수 있는 값들로 구성된 자료를 의미한다. 기본적으로 문자로 표기되고 대소 비교나 산술연산이 적용되지 않는다.
- 연속형 자료(양적 자료): 크기가 있는 숫자들로 구성된 자료를 의미한다. 연속형 자료의 경우에는 대소 비교나 평균, 최댓값, 최솟값과 같은 산술연산이 가능하다.
변수의 개수에 따른 분류
- 단일변수 자료(일변량 자료): 하나의 변수로만 이루어진 자료를 의미한다.
- 다중변수 자료(다변량 자료): 두 개 이상의 변수로 구성된 자료를 의미한다.
v<-c(21,20,24,31,25)
x<-matrix(v)
x
colnames(x)<-'age'
x
> x
age
[1,] 21
[2,] 20
[3,] 24
[4,] 31
[5,] 25
- 일변량 자료
v_age<-c(21,20,24,31,25)
v_weight<-c(62.4,67.8,56.7,72.1,67.3)
x<-cbind(v_age,v_weight)
colnames(x)<-c('age','weight')
x
> x
age weight
[1,] 21 62.4
[2,] 20 67.8
[3,] 24 56.7
[4,] 31 72.1
[5,] 25 67.3
- 다변량 자료
단일 변수 범주형 자료의 탐색
- 단일 변수에 대해서 관측값들을 종류별로 개수를 세는 것을 의미한다.
도수 분포표의 작성
x<-c('A','A','A','AB','AB','AB','AB','AB','C','C','C','C')
table(x)
table(x)/length(x)
> table(x)
x
A AB C
3 5 4
> table(x)/length(x)
x
A AB C
0.2500000 0.4166667 0.3333333
- table: 자료의 값을 종류별로 도수분포표로 계산해 주는 함수
- table(x)/length(x)의 경우 각각의 종류별 개수를 전체 데이터의 개수로 나눈 것을 의미한다.
막대그래프의 작성
x<-c('A','A','A','AB','AB','AB','AB','AB','C','C','C','C')
y<-table(x)
barplot(y,main="혈액형")

- 도수 분표포를 구한 값을 y에 저장해 주고 y를 사용하여서 막대그래프를 작성해 준다.
- barplot: 막대그래프를 작성해 주는 함수
원형 그래프
x<-c('A','A','A','AB','AB','AB','AB','AB','C','C','C','C')
y<-table(x)
pie(y,main="혈액형")

- pie: 원형 그래프를 그려주는 함수
숫자로 표현된 범주형 자료
- 숫자로 이루 이루어진 데이터도 문자형태와 동일한 방식으로 도수 분표를 계산해 준 뒤에 그래프 형식으로 출력이 가능하다.
x<-c(1,1,1,1,2,2,2,2,2,2,2,3,3,3,3,3,3)
y<-table(x)
colors<-c('green','blue','red')
names(y)<-c('A','AB','O')
barplot(y,main="혈액형", col=colors)

- colors: 색상을 벡터 형식으로 저장해 두었다가 col을 통해서 색을 지정해 준다.
- names: 범주화된 자료들의 이름을 각각 지정해준다.
단일변수 연속형 자료의 탐색
평균과 중앙값
- 평균: (전체 데이터들의 합) / (데이터의 개수)
- 중앙값: 모든 데이터를 순차적으로 일렬로 나열하였을 때 중앙에 있는 값을 의미한다.
- 절사 평균: 너무 큰 관측값 때문에 발생하는 오류를 완화하기 위해서 상하위 n%를 제외한 나머지 부분의 평균을 구하는 방법이다.
x<-c(60,61,62,64,67,68,69)
y<-c(x, 200)
mean(x)
mean(y)
median(x)
median(y)
mean(x, trim=0.2)
mean(y,trim=0.2)
> mean(x)
[1] 64.42857
> mean(y)
[1] 81.375
> median(x)
[1] 64
> median(y)
[1] 65.5
> mean(x, trim=0.2)
[1] 64.4
> mean(y,trim=0.2)
[1] 65.16667
- mean: 평균값
- median: 중앙값
- mean(벡터, trim=n%): 평균값을 구하는 과정이지만 trim을 통해서 상하위 n%를 제외한 나머지 부분을 사용하여서 평균을 구한다.
사분위수
- 사분위수는 전채 부분을 4등분 하하는 지점에 있는 값들을 의미한다.
- 자료에서 4등분을 하게 되면 3개의 점이 발생하는 이를 각각 '1 사분위수(Q1)', '2 사분위수(Q2)', '3 사분위수(Q3)'로 말할 수 있다.
- 또한 2 사분위수는 중앙값과 동일하고 자료를 4 등분하였기 때문에 25%의 자료가 존재한다.
x<-c(60,61,62,64,67,68,69,200)
quantile(x)
quantile(x,(0:10)/10)
summary(x)
> quantile(x)
0% 25% 50% 75% 100%
60.00 61.75 65.50 68.25 200.00
> quantile(x,(0:10)/10)
0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
60.0 60.7 61.4 62.2 63.6 65.5 67.2 67.9 68.6 108.3 200.0
> summary(x)
Min. 1st Qu. Median Mean 3rd Qu. Max.
60.00 61.75 65.50 81.38 68.25 200.00
- quantile: 자료를 3 등분하여서 사분위수를 구해준다.
- quantile(자료, (0:10)/10): 0~10의 정수를 10으로 나누어서 10%~100%로 세분화한다.
- summary: 사분위수, 최댓값, 최솟값, 평균을 함께 출력해 준다.
산포
- 산포: 자료에서 값들이 퍼져있는 정도를 말한다.
- 분산: (자료의 값-평균)^2의 모든 합에 자료의 개수를 나눈 값을 의미한다.
- 표준 편차: 분산의 제곱근
x<-c(60,61,62,64,67,68,69,200)
var(x)
sd(x)
range(x)
diff(range(x))
> var(x)
[1] 2308.554
> sd(x)
[1] 48.04741
> range(x)
[1] 60 200
> diff(range(x))
[1] 140
- var: 분산
- cd: 표준편차
- range: 값의 범위(최솟값, 최댓값)
- diff(range): 위에서 range는 최솟값과 최댓값이라고 하였고, diff는 값의 차이를 나타내기 때문에 최솟값과 최댓값의 차이를 의미한다.
히스토그램
- 막대그래프와 비슷한 외형을 가지고 있다.
- 연속형 자료의 분포를 나타낼 때 활용한다.
- 예를 들어서 160~170, 170~180의 키를 가진 사람으로 나눈 다음에 그 부분에 해당하는 값을 세어서 그래프를 만드는 방식이다.
x<-cars[,2]
hist(x,
main="histtogram in 제동거리",
xlab="제동거리",
ylab="빈도수",
border = "black",
col="green",
las=1,
breaks=5)

- hist: 히스토그램을 출력하기 위한 함수
- xlab: x축의 제목
- ylab: y축의 제목
- border: 테두리의 색상 지정
- las: 1인 경우에는 가로로 글씨를 배치하고 2인 경우에는 세로로 글씨를 배치한다.
- breaks: 구간을 몇 개로 나눌지를 조절한다. 즉 숫자가 클수록 구간의 개수가 증가한다.
ex) iris를 사용한 꽃잎의 길이 히스토그램으로 표현하기
x<-iris[,3]
hist(x,
main="꽃잎의 길이",
xlab="꽃잎의 길이",
ylab="개수",
border="black",
col="blue",
las=1,
breaks=7)

상자 그림
- 상자 수염 그림이라고도 하고 사분위수를 시각화하여서 그래프의 형태로 나타낸 것이다.
- 상자 그림은 하나의 그래프로 데이터의 분포 형태를 포함한 다양한 정보를 전달하기 때문에 단일 변수 수치형 자료를 파악하는 데 많이 사용된다.

- 보통 동그라미로 표시된 부분을 특이값, 즉 이상치라고 표현한다.
- 박스 안의 부분은 보통 전체 자료의 50%가 위치하는 부분이다.
x<-iris[,3]
boxplot(x,main="꽃잎의 길이")

- boxplot: 상자그림을 출력해 주는 함수
x<-iris[,3]
boxplot.stats(y)
$stats
[1] 60.0 61.5 65.5 68.5 69.0
$n
[1] 8
$conf
[1] 61.5897 69.4103
$out
[1] 200
- 정확한 정보에 대해서 확인하기 위해서는 boxplot.stats를 사용한다.
- $stats: 4분 위수에 해당하는 값을 출력한다. 차례대로 최솟값, 1 사분위수, 중앙값(2 사분위수), 3 사분위수, 최댓값이 있다.
- $n: 자료에 있는 관측값들의 총개수를 의미한다.
- $conf: 신뢰구간을 의미한다.
- $out: 이상치 값을 보여준다.
그룹이 있는 자료형
boxplot(Petal.Length~Species, data=iris, main="품종별 꽃잎의 길이")

- Petal.Length~Species는 꽃잎의 길이 자료를 품종에 따라 나누어 상자그림을 그리라는 의미이다.
- 매개변수 data를 통해서 iris 자료를 불러온다.
cf) 한 화면에 여러 가지 그래프 출력하기
R에서는 화면을 여러 개로 분할하여 각각의 화면에 그래프를 출력할 수 있다.
par(mfrow=c(1,3))
hist(iris[,1],
main="Histogram of Sepal.Length",
xlab="Sepal.Length",
ylab="Frequency",
col="blue",
las=1,
breaks=5)
hist(iris[,2],
main="Histogram of Sepal.Width",
xlab="Sepal.Width",
ylab="Frequency",
col="green",
las=1,
breaks=5)
hist(iris[,3],
main="Histogram of Petal.Length",
xlab="Petal.Length",
ylab="Frequency",
col="red",
las=1,
breaks=5)

'확률 통계 > R 데이터 분석' 카테고리의 다른 글
| 자료의 탐색 (0) | 2024.09.01 |
|---|---|
| 다중변수 자료의 탐색 (0) | 2024.08.30 |
| (Ch8) 조건에 맞는 데이터의 위치 찾기 (1) | 2024.08.26 |
| (Ch 7) apply함수&사용자 정의 함수 (1) | 2024.08.26 |
| (Ch 6) 반복문 (2) | 2024.08.25 |