본문 바로가기
R/R Examples

[R Examples / RStudio] rnorm hist, Principal component analysis (PCA)

by Henry Cho 2023. 8. 27.
728x90

rnorm hist, Principal component analysis

포스트 난이도: HOO_Middle


# rnorm hist

확률 통계 그래프를 생성하는 데 있어서 우리는 네 가지 방식의 정규 분포 함수를 사용할 수 있다. 예를 들어서 dnorm(), pnorm(), qnorm(), rnorm() 등이 있다. 그중에서 랜덤 숫자 분포에 따른 결과를 산출할 때 사용되는 rnorm()을 활용하여 막대그래프를 아래의 R코드를 통해서 산출할 수 있다. 우선 첫 번째 줄의 경우에는 rnorm을 통해서 랜덤 변수의 분포에 대한 조건을 괄호 안에 넣어준다. 평균과 표준 편차를 각기 다리 지정하여 랜덤 한 변수인 n으로 지정이 가능하다. 두 번째 줄에 있는 hist()의 경우에는 히스토그램을 설정해 주는 함수인데, 한마디로 막대그래프를 어떻게 설정해 줄 것인지에 대한 코드이다. 괄호 안에는 마찬가지로 히스토그램을 지정해 줄 조건들을 설정해 주면 된다. 괄호 안에 설정된 조건들을 간단히 살펴보자면, 첫 번째로 그래프 안에 넣어줄 변숫값이 필요하기에 n을 설정해 주었고 50 단위로 나뉜다는 걸 break를 통해서 설정해 주었다. 다음으로 col을 통해서 히스토그램의 색을 설정하고 main을 통해서 해당 히스토그램을 rnorm이라고 지정해 줌으로써 그래프를 출력했을 때 상단 가운데에 rnorm이라는 제목이 생성된다. 아래의 Figure 1을 보면 결과가 어떻게 산출되는지 알 수 있다.


# This function is used to generate random.
n <- rnorm(10000, mean = 10, sd = 25)
hist(n, breaks = 50, col = "orange", main = "rnorm")

Figure 1. rnorm과 hist 함수로 산출된 결과


# PCA

rnorm hist 코드만 살펴보기에는 심심하니까 추가적으로 매우 간단한 pca 예제코드에 대해서 살펴보도록 하자. pca는 성분 분석 그래프라고 불리며 각 그룹별 특성을 시각적으로 비교분석하기 위해 사용하는 함수이다. 아래의 코드를 살펴보면 총 3개의 그룹으로 나뉘어져있고 각기 다른 색으로 구분하여 결과가 산출된다는 걸 예상할 수 있다. 또한 rnorm을 사용하고 있지만 seed값을 설정해 줌으로써 랜덤 변수가 변하지 않고 일정하게 산출되도록 설정해 준 것을 알 수 있다. 마지막으로 prcomp 함수와 plot 함수를 통해서 각 그룹을 구분하여 나타내고 있는 걸 확인할 수 있다. 아래의 Figure 2를 보면 결과가 어떻게 산출되었는지 알 수 있다.


# This is a kind of simple principal component analysis (PCA)
set.seed(123)
group1 <- matrix(rnorm(50*20, mean=0, sd=1), ncol=50)
group2 <- matrix(rnorm(50*20, mean=1, sd=1), ncol=50)
group3 <- matrix(rnorm(50*20, mean=2, sd=1), ncol=50)
data <- rbind(group1, group2, group3)

pca <- prcomp(data, scale.=TRUE)
plot(pca$x[,1], pca$x[,2], col=c(rep("red",20), rep("green",20), rep("blue",20)), pch=19)

Figure 2. pca을 통한 그래프 결과


 

728x90

댓글