R-Studio hist, skewness, kurtosis 이용한 왜첨도 그래프 그리기 Part.1

R-Studio의 hist, skewness, kurtosis

Featured image

파일 소스

우클릭 -> 다른이름으로 링크저장 이용해 주세요
S20191029.zip

사용 예시 소스코드 1

# 풀어 봅시다.
# ############################################################
# # 쿠폰 01.기본 기술 통계
# ############################################################
# 앞 6행만 보여 주세요.
# 뒷 6행만 보여 주세요.
# View 함수를 이용하여 데이터를 조회해 보세요.
# 데이터의 구조(structure)를 확인하세요.
# 기초 요약 통계량 정보를 확인해보세요.
df <- read.csv("mycoupon.csv")
df

head(df, 6)
tail(df, 6)
View(df, "Coupon")
str(df)
summary(df)

# ############################################################
# # 쿠폰 02.쿠폰 유형 기술 통계
# ############################################################
# coupon 정보를 조회해보세요.
# factor() 함수를 이용하여 할인 쿠폰/적립 쿠폰이라는 레이블을 새롭게 만들어 보세요.
unique(df$coupon)
df$coupon <- factor(x=df$coupon, levels = c(1, 2), labels = c("할인 쿠폰", "적립 쿠폰"))
unique(df$coupon)
# 쿠폰 유형별 분할표를 만들어 보세요.
tableCou <- table(df$coupon)
tableCou
# 분할표에 있는 쿠폰들의 유형에 대한 비율을 구해보세요.(prop.table)
tableCou <- prop.table(tableCou)
tableCou
# 쿠폰 유형별 갯수에 대한 막대 그래프를 그려 보세요.
barplot(tableCou, col = rainbow(2), main = "쿠폰 유형별 분할표")

# ############################################################
# # 쿠폰 03.쿠폰 사용 분야 기술 통계
# ############################################################
# # category 컬럼 정보를 조회해보세요.
# factor() 함수를 이용하여 category2 컬럼을 생성하시오.
unique(df$category)
df$category2 <- factor(x=df$category, levels = c(1, 2, 3, 4), labels = c("food", "beauty", "travel", "park"))
unique(df$category2)
# # 1 : food, 2 : beauty, 3 : travel, 4 : park라고 가정한다.
# category 유형별 분할표를 만들어 보세요.
tableCa <- table(df$category2)
tableCa
# addmargins() 함수를 이용하여 소계 컬럼을 추가해 보세요.
sumTable <- addmargins(tableCa)
sumTable
# 분할표에 있는 항목들에 대한 비율을 구해보세요.(prop.table)
tableCa2 <- prop.table(tableCa)
tableCa2
# 쿠폰 사용처에 대한 막대 그래프를 그려 보세요.
barplot(tableCa, col = rainbow(length(tableCa)), main = "쿠폰 사용처")
# ############################################################
# 참조 그림 : 쿠폰 사용처.png / 쿠폰 유형별 갯수.png

##################################################
# 기본 통계량 조회
##################################################
df <- read.csv("mycf.csv")
df

사용 예시 소스코드 2

# 앞 6줄만 조회해보세요.
head(df, 6)
# 뒷 6줄만 조회해보세요.
tail(df, 6)
# View 함수를 이용하여 전체 목록을 조회해보세요.
View(df)
# 구조를 확인하세요.
str(df)
# 요약 통계량을 조회해보세요.
summary(df)
##################################################
# 광고 집단 유형에 대한 기술 통계 분석
##################################################
# group 컬럼은 1이면 연예인을 내세운 광고이고, 
# 2이면, 일반인을 내세운 광고이다.
# factor 함수를 이용하여 요인형으로 변환하세요.
# 숫자 1("연예인 CF", 2("일반인 CF")으로 라벨을 붙이세요.
unique(df$group)
df$group <- factor(x = df$group, levels = c(1, 2), labels = c("연예인CF", "일반인CF"))
unique(df$group)
# 이 자료에 대한 빈도 및 비율을 출력하세요.
ta <- table(df$group)
perTable <- prop.table(ta)
perTable
# 해당 요인에 대한 그래프를 그리시오.
barplot(ta, col = rainbow(2))
##################################################
# 광고의 관심 유무에 따른 기술 통계 분석
##################################################
# interest 컬럼은 광고의 관심도이다.
# 1이면 관심이 있고, 0이면 관심이 없다.는 의미이다.
# factor 함수를 이용하여 요인형으로 변환하세요.
unique(df$interest)
df$interest <- factor(x = df$interest, levels = c(1, 0), labels = c("관심 있음", "관심 없음"))
unique(df$interest)
# 이 자료에 대한 빈도 및 비율을 출력하세요.
taInter <- table(df$interest)
taInter
perTableInter <- prop.table(taInter) 
perTableInter
# 해당 요인에 대한 그래프를 그리시오.
barplot(taInter, col = rainbow(length(taInter)))

##################################################
# 변수 리코딩을 이용하여 성별을 한글로 보여 주도록 하시오.
df$gender <- factor(x = df$gender, levels = c("M", "F"), labels = c("남", "녀"))
df
genTable <- table(df$gender)
genTable
perTable <- prop.table(genTable)
perTable
# 나이가 40 이하이면 '청년층', 40 초과이면 '중년층'으로 리코딩하시오.
df$age <- ifelse(df$age<=40, "청년층", "중년층")
unique(df$age)
##################################################
# 기술 통계량 보고서를 작성하세요.
describe(df)
##################################################
# 참조 그림 : 집단 유형별 샘플수.png / 광고 관심 유무 사용자수.png

사용 예시 소스코드 3

# descriptive.csv 데이터 셋을 대상으로 다음 조건에 맞게 빈도 분석 및 기술 통계량 분석을 수행하시오.
df <- read.csv("descriptive.csv")
df

# 조건1) 명목 척도 변수인 학교 유형(type), 합격 여부(pass) 변수에 대해 빈도 분석을 수행하고 결과를 
# 막대 그래프와 파이 차트로 시각화하세요.
library(plotrix)
schoolType <- table(df$type)
passVal <- table(df$pass)

schoolType
barplot(schoolType, col = rainbow(length(schoolType)), main = "학교 유형")
pie01 <- pie3D(x = schoolType, main = "학교 유형", col = rainbow(length(schoolType)))
pie3D.labels(pie01, labels = c(1, 2))

passVal
barplot(passVal, col = rainbow(length(passVal)), main = "합격 여부")
pie02 <- pie3D(x = passVal, main = "합격 여부", col = rainbow(length(passVal)))
pie3D.labels(pie02, labels = c(1, 2))

# 조건2) 비율 척도 변수인 나이 변수에 대해 요약치(평균, 표준 편차 등)을 구하시오.
ta <- table(df$age)
cost <- df$age
dnorm(x, mean(cost), sd(cost)) # mean평균, sd표준편차# 왜도 통계량을 출력한다.
library(moments)
# 왜도
skewness(cost)
# 첨도
kurtosis(cost)
# 히스토그램을 작성한다.
hist(cost, freq = F)
# 비대칭도 통계량을 설명한다.
# 밀도 분포 곡선
lines(density(cost), col="blue")
dnorm(x, mean(cost), sd(cost)) # mean평균, sd표준편차
curve(dnorm(x, mean(cost), sd(cost)), col="red", add=T)
# 정규 분포 곡선도 같이 그려서 정규 분포 검정을 수행한다.

# 조건3) 나이 변수에 대해 다음과 같은 함수(이름 : show_info)를 구현하시오.
show_info <- function(cost) {
  # 왜도 통계량을 출력한다.
  library(moments)
  # 왜도
  skewness(cost)
  # 첨도
  kurtosis(cost)
  # 히스토그램을 작성한다.
  hist(cost, freq = F)
  # 비대칭도 통계량을 설명한다.
  # 밀도 분포 곡선
  lines(density(cost), col="blue")
  curve(dnorm(x, mean(cost), sd(cost)), col="red", add=T)
  # 정규 분포 곡선도 같이 그려서 정규 분포 검정을 수행한다.
}

show_info(cost)