[R] 로지스틱 회귀 분석 실습

2023. 10. 22. 19:21R, 빅데이터 분석 실험

우리는 앞서 로지스틱 회귀에 대해서 알아보았다.

종속변수가 이산적인 상황에서 선형회귀를 사용하면 안된다는 것을 알았다.

 

실습을 위해 admission 이라는 데이터를 가져왔다. 학점(GPA), 시험 성적(GRE) , 학교 평판(RNAK) 에 따른 합격 여부(ADMIT)이 있는 데이터이다.

합격 여부는 이산적인 변수인데 합격 여부에 대한 선형 회귀 분석 lm을 시행하면 어떻게 될까?

setwd('/Users/bagjeong-yong/desktop/bigdataA/data')
admission <- read.csv('admission.csv',header=TRUE)
lm(ADMIT~GRE+GPA+RANK,data=admission) 
fit2 = glm(ADMIT~GRE+GPA+RANK,data=admission,family=binomial)

답은 매우 잘나온것처럼 보인다. 하지만 이전에 말했던 것처럼 linear regression은 f(1) = p 가 나오는 모델이 아니라 f(1) = 1 이 나오는 모델이고 또 결과값이 무한한 값이 될수있는 모델로 설계되었기 떄문에 해당 문제에 사용하면 안된다. 함수는 편리하지만 무작정 사용하면 사용하면 안되는 예제에 대해서도 답이 나와 답이라고 착각하고 이를 사용할 수 있다. 이 부분을 주의하자.

 

그래서 본격적으로 로지스틱 회귀 분석을 실시해보자.

로지스틱 회귀 분석을 시행할 수 있는 가장 쉬운 방법은 glm 함수이다. 위의 코드에서 fit2를 시행해보자.

b0 = -3.449548 b1=0.002294 , b2=0.77014, b3=-560031 임을 할 수 있다.

이를 통해  학점(GPA) =4,  시험 성적(GRE)=500, 학교 평판(RNAK)=1 일때의 합격확률을 예측해보자.

이렇게 성공적으로 나옴을 확인 할 수 있다.