-
Notifications
You must be signed in to change notification settings - Fork 1
/
9강_실습코드.R
68 lines (56 loc) · 2.08 KB
/
9강_실습코드.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#0.패키지 로딩####
require('tidyverse')
if(!require('data.table')){ #데이터 빠르게 읽어 오는 패키지
install.packages("data.table")
require('data.table')
}
#.1. 파일 경로 확인####
getwd() #현재 파일 경로 확인
dir() #현재 경로 폴더에 저장된 파일 확인인
#setwd() 경로 설정시 사용
#2. 파일 불러오기####
accidents = read_csv("Accidents0515.csv")
casualties= read_csv("Casualties0515.csv")
vehicles = read_csv("Vehicles0515.csv")
#3. 데이터 시각화
colnames(accidents)
hist(accidents$Age_of_Driver,freq = FALSE)#확률 밀도 함수 그래프 그릴 때는 빈도 사용 않함
lines(density(accidents$Age_of_Driver))
hist(accidents$Age_of_Driver)#빈도를 나타내는 그래프
lines(density(accidents$Age_of_Driver))#빈도로 표현하면 적용 안됨
ggpairs(accidents$Age_of_Driver)
#4. 로지스틱 회귀분석 코드 참조: https://bioinformaticsandme.tistory.com/296
result <- glm(Accident_Severity ~ Speed_limit + Weather_Conditions + Carriageway_Hazards + Sex_of_Driver +
Age_of_Driver+Journey_Purpose_of_Driver, data = accidents)
summary(result)
#5. 오즈비 계산
ORtable = function(x, digits=2){
suppressMessages(a<-confint(x))
result = data.frame(exp(coef(x)),exp(a))
result = round(result,digits)
result = cbind(result, round(summary(x)$coefficient[,4],3))
colnames(result) = c("OR", "2.5%","97.5%","p")
result
}
ORtable(result)
#6.의사결정 나무
if(!require('caret')){
install.packages('caret')
require('caret')
}
if(!require('tree')){
install.packages('tree')
require('tree')
}
if(!require('rpart')){
install.packages('rpart')
require('rpart')
}
treemod <- tree(Accident_Severity ~ Speed_limit + Weather_Conditions + Carriageway_Hazards + Sex_of_Driver +
Age_of_Driver+Journey_Purpose_of_Driver, data = accidents_sam)
plot(treemod)
text(treemod)
rpartmod <- rpart(Accident_Severity ~ Speed_limit + Weather_Conditions + Carriageway_Hazards + Sex_of_Driver +
Age_of_Driver+Journey_Purpose_of_Driver, data = accidents_sam)
plot(rpartmod)
text(rpartmod)