59doit
[ R ] 데이터 시각화 #2 연속변수 시각화 (1) 본문
연속변수 시각화
연속변수(Continuous quantitative data): 시간, 길이 등과 같이 연속성을 가진 변수 상자 그래프, 히스토그램, 산점도
(1) 상자 그래프 시각화
상자 그래프: 요약정보를 시각화하는데 효과적
데이터의 분포 정도와 이상치 발견을 목적으로 하는 경우 사용
# VAdeaths 데이터 셋을 상자 그래프로 시각화하기
#1 “notch=FALSE”일 때
boxplot(VADeaths ,range=0)![]() |
‘range=0’ 속성에 의해 칼럼의 최소값과 최대값을 점선으로 연결
#2 “notch=TRUE”일 때
boxplot(VADeaths, range = 0, notch = T)![]() abline(h = 37, lty = 3, col = "red") # h : y 좌표, lty : 점선, col : 색상 ![]() |
‘notch = T’속성에 의해 중위수 기준으로 허리선이 추가
cf) notch : V자나 U자형으로 움푹 팬 자리.
abline()함수에 의해 지정된 y좌표(h)에 빨간색(col) 점선(lty) 적용
(2) 히스토그램 시각화
- 히스토그램(histogram): 측정값의 범위(구간)를 그래프의 x축으로 놓고, 범위에 속하는 측정값의 출현 빈도수를 y축으로 나타낸 그래프 형태
- 분포곡선: 히스토그램에 도수의 값을 선으로 연결하여 얻어지는 곡선
# iris 데이터 셋
#1 데이터 셋 가져오기
data(iris) names(iris) str(iris) head(iris) |
names() 함수: 컬럼명 보기
#2 꽃받침 길이(Sepal.Length) 컬럼으로 히스토그램 시각화
summary(iris$Sepal.Length) # Min. 1st Qu. Median Mean 3rd Qu. Max. # 4.300 5.100 5.800 5.843 6.400 7.900 hist(iris$Sepal.Length, xlab = "iris$Sepal.Length", col = "darkgreen", main = "iris 꽃받침길이 Histogram", xlim = c(4.3,7.9)) ![]() |
xlab : x축 이름
xlim : x축 레이블 범위 (summary로 확인한 min 값과 max값 기준)
#3 꽃받침 너비(Sepal.Width)컬럼으로 히스토그램 시각화
summary(iris$Sepal.Width) # Min. 1st Qu. Median Mean 3rd Qu. Max. # 2.000 2.800 3.000 3.057 3.300 4.400 hist(iris$Sepal.Width, xlab = "iris$Sepal.Width", col = "mistyrose", main = "iris 꽃받침길이 Histogram", xlim = c(2.0,4.5)) ![]() |
#4 빈도수에 의해서 히스토그램 그리기
par(mfrow = c(1, 2)) hist(iris$Sepal.Width, xlab = "iris$Sepal.Width", col = "darkgreen", main = "iris 꽃받침 너비 Histogram: 빈도수", xlim = c(2.0, 4.5)) |
#5 확률 밀도에 의해서 히스토그램 그리기
hist(iris$Sepal.Width, xlab = "iris.$Sepal.Width", col = "mistyrose", freq = F, main = "iris 꽃받침 너비 Histogram: 확률 밀도", xlim = c(2.0, 4.5)) |
freq 인수의 기본값은 NULL ,
TRUE 인 경우 히스토그램 막대가 각 구간별 데이터의 개수(빈도)로 그려진다.
FALSE 인 경우 히스토그램의 전체 면적이 1이 되도록 각 구간의 확률 밀도가 그려진다.
cf ) probability 인수는
TRUE 인 경우히스토그램의 전체 면적이 1이 되도록 각 구간의 확률 밀도가 그려진다.
FALSE 인 경우 히스토그램 막대가 각 구간별 데이터의 개수(빈도)로 그려진다.
#4,5 결과 시각화
![]() |
#6 밀도를 기준으로 line 추가하기
lines(density(iris$Sepal.Width), col = "red")![]() |
오른쪽 그래프는 ‘freq=F’속성에 의해 계급에 대한 밀도(Density)를 y축으로 표현한 결과 density()와 lines()함수에 의해서 밀도 그래프에 분포곡선이 그려짐
#7 정규분포 추정 곡선 나타내기
정규분포는 평균값을 중앙으로 좌우대칭인 종 모양(Bell-shape)을 이루고 있다
#8 계급을 밀도로 표현한 히스토그램 시각화
par(mfrow = c(1,1)) hist(iris$Sepal.Width, xlab = "iris$Sepal.Width", col = "mistyrose", freq = F , main = "iris 꽃받침 너비 Histiogram", xlim = c(2.0,4.5)) ![]() |
#9 히스토그램에 밀도를 기준으로 분포곡선 추가
lines(density(iris$Sepal.Width), col = "red")![]() |
#10 히스토그램에 정규분포 추정 곡선 추가
x <- seq(2.0, 4.5, 0.1) curve(dnorm(x, mean = mean(iris$Sepal.Width), sd = sd(iris$Sepal.Width)), col = "blue", add = T) ![]() |
curve()함수와 dnorm()함수를 이용하여 정규분포의 곡선 추가
curve() 함수 : 간격에 대해 함수에 해당하는 곡선을 그립니다.변수에도 표현식을 플로팅할 수 있습니다
dnorm() 함수 : 밀도, 분포 함수, 분위수 함수 및 랜덤 평균이 같고 표준 편차가 같은 정규 분포에 대한 생성
'Programming > R' 카테고리의 다른 글
[ R ] 다양한 시각화 #1 히스토그램 밀도ㆍ막대 그래프 (0) | 2022.12.23 |
---|---|
[ R ] 데이터 시각화 #2 연속변수 시각화 (2) (1) | 2022.12.22 |
[ R ] 데이터시각화 #1 이산변수 시각화 (0) | 2022.12.22 |
[ R ] EDA 표본추출 (0) | 2022.11.21 |
[ R ] EDA - 파생변수 (0) | 2022.11.21 |