본문 바로가기
데이터분석

[data mining] 지도학습 #1_로지스틱 회귀(logistic regression)_R

by 미완wonder 2023. 1. 21.

0. 정의 및 종류

Logistic regression(로지스틱 회귀)

: 새로운 설명변수의 값이 주어질 때 반응변수의 각 범주(집단)에 속할 확률이 얼마인지 예측하거나, 추정확률의 기준치에 따라 분류의 목적으로 사용하는 모델.

 단, 반응변수는 범주형이며, 모형의 적합을 통해 추정된 확률을 사후확률이라고 한다.

 (반응변수의 범주가 3개 이상         => 다범주(다중) 로지스틱 회귀모형

  반응변수의 범주가 순서적인 경우 => 순서형 로지스틱 회귀모형) 

 

1. 모형 해석

- odds의 관점에서 해석할 수 있다. 

 

 이를 iris 자료를 통해 살펴보면 다음과 같다.

 

2. 예제

2-1. iris의 setosa와 versicolor로만 이분형 로지스틱 회귀 적용 시 모형 생성 및 분류, 예측, 시각화 

## binomial logistic regression

data(iris)	#iris 데이터 불러오기
str(iris)	#데이터 확인: 관측값이 150개, 변수가 5개.

#1) 우선 iris데이터에서 versicolor와 setosa만 추출.
a <- subset(iris, Species=='setosa' | Species=='versicolor')
a$Species <- factor(a$Species)
str(a)

str(dataset) 결과

해당 결과를 통해 Species(factor형 변수)에서 setosa(Y=1)와 versicolor(Y=2)만 추출된 것을 확인 가능.

이때 추후 설명을 위해 각 범주에 해당하는 수를 기억한다.

#2) 모형 생성
#glm(종속변수~독립변수, df)
b <- glm(Species~Sepal.Length, family=binomial, data = a) 
summary(b)

summary(glm()) 결과

해당 결과를 해석하면 다음과 같다.

Coefficients 결과에서

Sepal.Length의 p값(Pr(>|z|))이 거의 0이므로 ->Sepal.Length가 매우 유의한 변수이다.

exp(coef()) 결과

즉, Sepal.Length가 한 단위 증가함에 따라 Y=2의 오즈가 exp(5.140)≒170배 증가함을 알 수 있다.

 

이후 

회귀계수 β와 odds의 증가량 exp(β)의 신뢰구간: 

신뢰구간 결과

로지스틱 회귀 모형 적합 결과: 

fitted() 결과

적합된 로지스틱 회귀모형을 그래프로 시각화하면 다음과 같다.

#4) 로지스틱 회귀 모형 시각화
plot(a$Sepal.Length, a$Species, xlab = "Sepal.Length")  #plot(x, y)
x = seq(min(a$Sepal.Length), max(a$Sepal.Length), 0.1)  #a$Sepal.Length의 최소~최대를 0.1간격으로 표시
pie = 1+(1/(1+(1/exp(-27.831+5.140*x))))  #pie(x); 1+해서 추정된 확률의 범위를 (0,1)에서 (1,2)로로
lines(x, pie, type = "l", col = 'red')

로지스틱 회귀 분석 시각화

 

여기까지는 분류 였고

앞에서 만든 모형으로 새로운 자료(편의상 모형 구축에 사용된 데이터 일부 사용)에 대한 예측을 수행 시 다음과 같다.

predict(모형, 새로운데이터) 결과

 

댓글