공부하는 블로그

[통계학의 이해Ⅰ] 4주차 다변량 자료 기술통계 -4. 기술통계 실습 (R)-과제 본문

통계/통계학의 이해Ⅰ

[통계학의 이해Ⅰ] 4주차 다변량 자료 기술통계 -4. 기술통계 실습 (R)-과제

young_o-o 2024. 1. 15. 22:21
728x90

해당 글은 숙명여자대학교 여인권 교수님의

K-MOOC 통계학의 이해Ⅰ(2019.05.01~2019.08.03) 강의를 수강하며 복습 및 정리하기 위해 작성한 글입니다.

K-MOOC 사이트 링크 공유합니다.


과제

과제1

  • 타이타닉호 예제를 실습에서는 생존율을 분석했다.
  • 과제에서는 사망률을 분석해라

실습에서 진행한 타이타닉호 생존율
실슬에서 실행한 타이타닉호 생존율

# 과제1
# 타이타닉호 에제에서 생존율 대신 사망률을 이용해서 정리하기
titanic <- read.csv("titanic.csv"  , fileEncoding = "CP949", encoding = "UTF-8")
head(titanic)
tail(titanic)

ttn.table <- with(titanic,table(Class,Survived,Group))
ftable(ttn.table)
table3way <- ftable(ttn.table,row.vars="Class",col.vars=c("Group","Survived"))
ttn.ftable <- data.frame(table3way)
ttn.death <- ttn.ftable[ttn.ftable$Survived == "No",]

# 등실별사망률
death <- with(ttn.death,tapply(Freq,Class,sum))
total <- with(ttn.ftable,tapply(Freq,Class,sum))
round(100*death/total,1)

# 그룹별 사망률
death <- with(ttn.death,tapply(Freq,Group,sum))
total <- with(ttn.ftable,tapply(Freq,Group,sum))
round(100*death/total,1)

id <- 1:12
ttn.death$Rate <- round(100*ttn.death$Freq/(ttn.ftable$Freq[id]+ttn.ftable$Freq[id+12]),1)

par(mfrow=c(1,1))
ttnbar <- matrix(ttn.death$Rate,4,3)
row.names(ttnbar) <- c("1등급","2등급","3등급","승무원")
colnames(ttnbar) <- c("남자","어린이","여자")
barplot(ttnbar, beside = TRUE, legend = rownames(ttnbar), ylim = c(0, 100), main = "타이타닉호 사망률")
abline(h=c(20,40,60,80,100),lty=3)
abline(h=0)

과제1 타이타닉호 사망률
과제1 타이타닉호 사망률

과제2

  • 실습에서는 올림픽 육상 남자기준으로 분석했다.
  • 과제에서는 올림픽 육상 여자 100m 우승기록을 이용하여 연도와 기록의 공분산, 상관계수를 계산

올림픽 100m 남자와 여자의 육상 기록 그래프
실습에서 진행한 남자 기록 공분산과 상관계수

### Olympic 육상 100M 우승기록
olympic <- read.csv("100m.csv")
head(olympic)
tail(olympic)

with(olympic,plot(year,record))
male <- subset(olympic,gender=="M")
female <- subset(olympic,gender=="F")
with(male,plot(year,record,ylim=c(9,13),cex=1.2))
with(female,points(year,record,pch=16,cex=1.2))
legend(2000,13,legend=c("남자","여자"),pch=c(1,16),bty="n",cex=1.2)

n <- nrow(female)
Sxy <- sum(female$year*female$record)-sum(female$year)*sum(female$record)/n
Sxy/(n-1)   # 공분산
Sxx <- sum(female$year^2)-sum(female$year)^2/n
Syy <- sum(female$record^2)-sum(female$record)^2/n
Sxy/sqrt(Sxx*Syy)

with(female,cov(year,record))
with(female,cor(year,record))

과제2 여자 기록 공분산과 상관계수

 

과제3

  • 실습에서는 남자, 여자, 76명, 70명을 고정을 시켜놓고 어떤 모형을 좋아하는지 비교하는 문제를 진행했다.
  •  과제에서는 반대로 스마트폰 A 모형, B 모형, C 모형이 52개, 56개, 38개 라고 주어졌을 때, 남녀의 데이터가 얻어진다면 어떻게 비교하고, 어떻게 원도표를 그리는지 진행

실습 분할표
실습 원도표: 남녀에 따른 스마트폰 선호도 비교

# 과제3
# 스마트폰 선호도 예제에서 모델별로 data 그려보기
smart <- read.csv("smart.csv" , fileEncoding = "CP949", encoding = "UTF-8")

head(smart)
tail(smart)

smarttable <- table(smart$gender,smart$model)
smart.prop <- round(100*prop.table(smarttable,2),1)

# 원도표
par(mfrow=c(1,3))
pie(smart.prop[,1],main="model A")
pie(smart.prop[,2],main="model B")
pie(smart.prop[,3],main="model C")

과제3: 분할표

 

과제3: 스마트폰 모델에 따른 남녀의 선호도 차이 비교

 

 

※ 강좌는 청강한 것이라 과제 검토받지 못하였습니다. 학습한 내용 기반으로 작성한 것이므로 정답인지 아닌지 알 수 없습니다.