#문제1. MASS패키지에 있는 Animals 데이터 셋에 대해
# R의 기본 함수를 이용하여 BODY컬럼 대상 기술통계량 구하기
library(MASS)
###1-1 Animals 데이터 셋 구조 보기
#구조
str(Animals)
''''data.frame': 28 obs. of 2 variables:
$ body : num 1.35 465 36.33 27.66 1.04 ...
$ brain: num 8.1 423 119.5 115 5.5 ...'''
#내용 확인
head(Animals)
###1-2 요약통계량
summary(Animals$body)
''' Min. 1st Qu. Median Mean 3rd Qu. Max.
0.02 3.10 53.83 4278.44 479.00 87000.00 '''
###1-3 평균
mean(Animals$body)
#4278.439
###1-4 표준편차
sd(Animals$body)
#16480.49
###1-5 Animals 데이터 셋의 빈도수 구하기
table(Animals$body, Animals$brain)
#문제 2. iris데이터를 이용하여 5겹 3회 반복하는 교차검정 데이터 샘플링
library(cvTools)
###교차 데이터 셋 생성
cross <- cvFolds(nrow(iris), K = 5, R = 3, type="random")
###교차 데이터 셋 구조 보기
str(cross)
table(cross$which)
###subset 데이터 참조하기
cross$subset[cross$which == 1, 3]
cross$subset[cross$which == 2, 2]
cross$subset[cross$which == 5, 3]
###데이터프레임 관측치 적용
R = 1:3
K = 1:5
for(r in R){
cat('R=', r, '\n')
for(i in K){
datas_idx <- cross$subsets[cross$which == i, r]
cat('K = ', i, '검정데이터 \n')
print(iris[datas_idx, ])
cat('K = ', i, '훈련데이터 \n')
print(iris[-datas_idx, ])
}
}
#문제3. descriptive.csv파일내 데이터 data변수에 담고 기술통계량
data <- read.csv("descriptive.csv")
#3-1 cost컬럼 내 데이터에서 1이상 11이하의 데이터만 추출,평균
data <- subset(data, data$cost >= 1 & data$cost <= 11)
x <- data$cost
mean(x)
#5.360558
#3-2 1번에서 추출한 데이터를 내림차순 정렬 후 첫 10줄 데이터 보이기
head(sort(x, decreasing = TRUE), 10)
#7.9 7.9 7.7 7.7 7.7 7.7 7.2 7.2 7.1 7.1
#3-3 1번에서 추출한 데이터에서 3사분위수 구하기
quantile(x, 3/4)
#6.2
#3-4 cost2 컬럼 생성하여 1이상 4미만 데이터는 1,
# 4이상 8미만 데이터는2, 8이상 데이터는 3으로 범주화
# 첫 10줄 데이터 보이기
#범주화
data$cost2[data$cost >= 1 & data$cost < 4] <-1
data$cost2[data$cost >= 4 & data$cost < 8] <-2
data$cost2[data$cost >= 8] <- 3
#첫 10줄 데이터
head(data, 10)
#3-5 4번의 cost2 컬럼 데이터 파이 그래프로 시각화
pie(table(data$cost2))
#문항 4. twomethod2.csv 내 데이터 셋 이용하여
# 교육방법에 따른 시험성적에 차이 있는지 검정
#귀무가설 : 교육방법에 따른 시험성적에 차이가 없다.
#대립가설 : 교육방법에 따른 시험성적에 차이가 있다.
#검정 방법: 방법(명목) -> 시험 성적(비율)
#가설 검정(아래)
#p-value가 0.05보다 작다. (대립가설 채택)
#검정 결과: 교육 방법에 따라 시험 성적에 차이가 있다.
#파일 가져오기
setwd("C:/R work/")
data2 <- read.csv("twomethod2.csv", header = TRUE)
head(data2)
summary(data2)
#subset 작성 및 데이터 전처리
x1 <- subset(data2, !is.na(data2$score))
x1
#데이터 분리
m1 <- subset(x1, x1$method == 1)
m2 <- subset(x1, x1$method == 2)
#방법에서 성적 추출
s1 <- m1$score
s2 <- m2$score
#기술 통계량
summary(s1)
summary(s2)
#t.test 함수 사용
t.test(s1, s2)
#p-value가 0.05보다 작다. (대립가설 채택)
#검정 결과: 교육 방법에 따라 시험 성적에 차이가 있다.
##단측 검정까지 해 줘야 어떤게 더 큰지 확인할 수 있음!
t.test(s1, s2, paired = TRUE,
alter = "greater",
conf.int = TRUE, conf.level = 0.95)
'R > 연습문제 풀이' 카테고리의 다른 글
[R] 다중 회귀분석 (0) | 2023.01.17 |
---|---|
[R] 요인 분석 (0) | 2023.01.17 |
[R] 교차 분할표 / 카이제곱 분포 / 독립성 검정 (0) | 2023.01.17 |
[R] 독립 표본 T 검정 / 두 집단 비율 검정 / 비모수 검정 / 단일 표본 대상 기술통계량(단측 가설 검정) (0) | 2023.01.17 |
[연습문제] smoke.xlsx (0) | 2022.10.24 |
댓글