728x90
반응형

로지스틱 회귀분석의 개념

  • 로지스틱 회귀(logistic regression)란 회귀모델에서 종속변수의 값의 형태가 연속형 숫자가 아닌 범주형 값인 경우를 다루기 위해서 만들어진 통계적 방법이다.
  • ex) irsis 데이터셋에서 4개의 측정값을 가지고 품종을 예측. 품종이 범주형 값
  • R에서 로지스틱 회귀 모델은 glm()함수 이용한다.

 

로지스틱 회귀모델 만들기

  • 로지스틱 회귀도 기본적으로 회귀 기법이기 떄문에 종속변수가 숫자로 표현되어야 한다.
  • 예를 들어서 YES와 NO는 0과1로, setosa, versicolor, virginica는 1,2,3과 같이 숫자로 바꾼 후에 로지스틱 회귀를 적용해야 한다.
# 로지스틱 회귀모델 만들기
iris.new <- iris
iris.new$Species <- as.integer(iris.new$Species) # 범주형 자료를 정수로 출력하기.
head(iris.new)
mod.iris <- glm(Species~.,data = iris.new) # 로지스틱 회귀모델 도출
summary(mod.iris) # 회귀모델의 상세 내용 확인하기.

[그림2] 기존 Species

 

 

 

[그림2] species 종 정수형으로 만들기.
[그림3] 로지스틱 회귀모델 도출 결과

 

로지스틱 회귀모델을 이용한 예측

  • 수작업으로 계산하여 품종을 예측하는 방법 대신, 구해놓은 회귀모델을 이용해 보다 편리한 방법으로 품종을 예측한다.

 

# 로지스틱 회귀모델을 이용한 예측
# 예측 대상 데이터 생성하기(데이터 프레임)

uk <- data.frame(rbind(c(5.1,3.5,1.4,0.2)))  # 데이터 프레임 생성
names(uk) <- names(iris)[1:4] # 열 이름넣기.
head(uk) # 데이터 열 이름 넣은거 확인

pred <- predict(mod.iris,uk) # 품종 예측
pred
round(pred,0) # 예측 결과 출력(소수점 첫째 자리에서 반올림)

# 실제 품종명 알아보기
pred <- round(pred,0)
pred
levels(iris$Species)
levels(iris$Species)[pred] # pred 반올림으로 1로 변경 = 1 setosa 출력 
levels(iris$Species)[2] # 2번째 versicolor 출력

[그림4] 로지스틱 회귀모델을 이용한 예측 출력

 

다수의 데이터에 대한 예측

  • 예측 대상 데이터가 여러 개인 경우에도 유사한 방법으로 예측
# 다수의 데이터에 대한 예측
test <- iris[,1:4] # 예측 대상 데이터
pred <- predict(mod.iris,test)# 모델을 이용한 예측
pred # 반올림 전 데이터
pred <- round(pred,0) # 반올림
pred # 예측 결과
answer <- as.integer(iris$Species)  # 종 - 정수형
pred == answer # 예측 품종과 실제 품종이 같은지 비교
acc <- mean(pred == answer) # 예측 정확도 계산
acc # 예측 정확도 출력

[그림5] 반올림 전 데이터
[그림6] 반올림 후 데이터
[그림7] 데이터 정수형으로 만들어 비교
[그림8] 예측 정확도 출력

 

 

출처 : 모두를 위한 R 데이터 분석 입문 한빛아카데미

728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기