R의 로지스틱 회귀: 방정식 유도 [예제 포함]

게시 됨: 2020-07-28

이 기사에서는 기계 학습에서 가장 일반적이면서도 어려운 개념 중 하나인 로지스틱 회귀에 대해 논의합니다. 이 상세한 기사에서 로지스틱 회귀가 무엇이며 로지스틱 회귀 방정식의 유도를 찾을 수 있습니다.

또한 개념을 훨씬 쉽게 이해할 수 있도록 R에서 로지스틱 회귀의 예를 공유했습니다. 그러나 예제를 작업하기 전에 모든 아이디어를 합리적으로 잘 알고 있는지 확인하십시오.두 개념이 서로 연결되어 있으므로 선형 회귀 에 익숙하다면 도움이 될 것 입니다.

목차

로지스틱 회귀란 무엇입니까?

로지스틱 회귀는 독립 변수 집합에 따라 이진 결과를 예측합니다. 로짓 함수와 그에 맞는 데이터를 사용하여 이벤트가 발생할 확률을 예측하는 분류 알고리즘입니다. 로지스틱 회귀는 두 개의 값만 가질 수 있는 결과의 가능성을 예측할 수 있다는 점에서 선형 회귀와 다릅니다. 다음과 같은 이유로 이진 변수가 있는 경우 선형 회귀를 사용하는 것이 적합하지 않습니다.

  • 선형 회귀는 필요한 범위를 벗어난 값을 예측합니다.
  • 회귀 분석은 두 가지 이점을 하나의 예측된 라인에 분배하지 않을 수 있습니다.

로지스틱 회귀는 선형 회귀처럼 선을 생성하지 않습니다. 0과 1보다 큰 값 사이의 로지스틱 곡선을 제공합니다.

세계 최고의 대학에서 데이터 과학 온라인 과정배우십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.

확인: R 프로젝트 아이디어

로지스틱 회귀 방정식 유도

선형 회귀 방정식에서 로지스틱 회귀 방정식을 유도할 수 있습니다. 로지스틱 회귀는 glm 알고리즘(일반화 선형 모델) 클래스에 속합니다. Nelder와 Wedderburn은 1972년에 선형 회귀를 사용하여 이전에는 풀 수 없었던 문제를 해결하는 방법으로 이 모델을 도입했습니다. 그들은 별도의 모델 클래스를 제안했고 특별한 모델로 로지스틱 회귀를 추가했습니다.

일반화 선형 모델의 방정식은 다음과 같습니다.

g(e<y) = a + bx1

g()는 연결 함수를 나타내고 E(y)는 목표 변수의 기대치를 나타내며 RHS(오른쪽)는 선형 예측 변수입니다. 연결 함수는 y의 기대치를 선형 예측 변수와 '연결'합니다.

100명의 고객에 대한 데이터가 있고 고객이 특정 제품을 구매할지 여부를 예측해야 한다고 가정합니다. 범주형 결과 변수가 있으므로 로지스틱 회귀를 사용해야 합니다.

선형 회귀 방정식으로 시작하겠습니다.

g(y) = o+(소득) — (1)

여기서는 이해의 편의를 위해 독립변수를 '소득'으로 유지하였습니다.

우리의 초점은 결과 종속 변수의 확률에 있습니다(고객이 구매할지 여부). 이미 논의한 바와 같이 g()는 연결 함수이며 성공 확률(p) 및 실패 확률(1-p)을 기반으로 합니다. p는 다음과 같은 특성을 가져야 합니다.

  • p는 항상 양수여야 합니다.
  • p는 항상 1보다 작거나 같아야 합니다.

이제 'p'로 g()를 표시하고 로지스틱 회귀 방정식을 유도합니다.

확률은 항상 양수이므로 지수 형식의 선형 방정식을 적용하고 다음 결과를 얻습니다.

p = exp(0+(소득)) = e((0+(소득)) — (2)

확률을 1보다 작게 만들려면 p를 p보다 큰 숫자로 나누어야 합니다.

p = exp(0+(소득)) / (0+(소득)) + 1 = e(0+(소득)) / (0+(소득)) + 1 — (3)

eq를 사용하여 (1), (2), (3)에서 p를 다음과 같이 정의할 수 있습니다.

피 = ey /1 + ey — (4)

여기서 p는 성공 확률이므로 1-p는 실패 확률이어야 합니다.

q = 1 – p = 1 -(ey /1 + ey) — (5)

이제 (4)를 (5)로 나눕니다.

피 / 1 – 피 = ey

양변에 로그를 취하면 다음을 얻습니다.

로그 (p / 1 – p) = y

링크 기능입니다. 이전에 설정한 y 값을 대입하면 다음을 얻습니다.

log(p / 1 – p) = o + (소득)

그리고 거기에 로지스틱 회귀 방정식이 있습니다. 결과의 확률을 제공하므로 그 값은 항상 0과 1 사이에서 유지됩니다.

읽어보기: 초보자를 위한 9가지 흥미로운 선형 회귀 프로젝트 아이디어 및 주제

R의 로지스틱 회귀 예제

R의 로지스틱 회귀의 경우 UCLA(University of California, Los Angeles)의 데이터를 사용하고 있습니다. 여기에서 우리는 우리가 가지고 있는 데이터에 따라 합격 가능성을 예측하는 모델을 만들어야 합니다. GPA, GRE 점수, 학생의 학부 대학 순위, 자백 등 4가지 변수가 있습니다.

df <- read.csv(“https://stats.idre.ucla.edu/stat/data/binary.csv”)

str(df)

## 'data.frame': 400 obs. 4개의 변수 중:

## $ 인정: int 0 1 1 1 0 1 1 0 1 0 …

## $ gre : 정수 380 660 800 640 520 760 560 400 540 700 …

## $ gpa : 수 3.61 3.67 4 3.19 2.93 3 2.98 3.08 3.39 3.92 …

## $ 순위 : 정수 3 3 1 4 4 2 1 2 3 2 …

변수는 숫자 또는 정수입니다.

합계(is.na(df))

## [1] 0

또한 null 값이 없고 변수 한계의 평균이 0.5보다 작기 때문에 합격보다 불합격 이벤트가 더 많다는 것도 발견했습니다.

시스템이 모든 등급 범주에서 적절하게 승인을 분배하는지 확인해야 합니다. 한 순위에 5건의 거부(또는 정보 승인)만 있다고 가정하면 분석에 해당 순위를 사용할 필요가 없습니다.

xtabs(~ 승인 + 순위 , 데이터=df)

## 순위

## 인정 1 2 3 4

## 0 28 97 93 55

## 1 33 54 28 12

이제 함수를 실행해 보겠습니다.

df$rank <- as.factor(df$rank)

logit <- glm(승인 ~ gre+gpa+rank,data=df, family="이항")

요약(로짓)

##

## 부르다:

## glm(공식 = 인정 ~ gre + gpa + 순위, 가족 = "이항",

## 데이터 = df)

##

## 편차 잔차:

## 최소 1Q 중앙값 3Q 최대

## -1.6268 -0.8662 -0.6388 1.1490 2.0790

##

## 계수:

## 추정 표준 오류 z 값 Pr(>|z|)

## (절편) -3.989979 1.139951 -3.500 0.000465 ***

## 그레 0.002264 0.001094 2.070 0.038465 *

## GPA 0.804038 0.331819 2.423 0.015388 *

## 순위2 -0.675443 0.316490 -2.134 0.032829 *

## 순위 3 -1.340204 0.345306 -3.881 0.000104 ***

## 순위 4 -1.551464 0.417832 -3.713 0.000205 ***

## —

## 의미심장하다. 코드: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

##

## (이항 가족에 대한 산포 매개변수는 1로 간주)

##

## Null deviance: 399 자유도에서 499.98

## 잔차 이탈도: 394 자유도에서 458.52

## AIC: 470.52

##

## Fisher 득점 반복 횟수: 4

함수를 실행하기 전에 순위 변수를 정수에서 인수로 변환했음을 눈치채셨을 것입니다. 당신도 같은지 확인하십시오.

최종 결과:

학생의 GPA가 3.8이고 GRE 점수가 790이고 1등급 대학에서 공부했다고 가정합니다. 우리 모델을 사용하여 미래에 그가 합격할 기회를 찾아봅시다:

x <- data.frame(gre=790,gpa=3.8,rank=as.factor(1))

p<- 예측(logit,x)

## 1

## 0.85426

우리 모델은 그 소년이 미래에 합격할 확률이 85%라고 예측합니다.

더 읽어보기: 기계 학습 프로젝트 아이디어

마지막 생각들

그것이 이 글의 내용입니다. 많은 도움이 되셨으리라 확신합니다. 로지스틱 회귀 및 관련 주제에 대해 질문이나 생각이 있는 경우 아래 의견 섹션에서 공유해 주세요.

데이터 과학에 관한 모든 것인 R에 대해 배우고 싶다면 일하는 전문가를 위해 만들어졌으며 10개 이상의 사례 연구 및 프로젝트, 실용적인 실습 워크샵, 멘토링을 제공하는 IIIT-B & upGrad의 데이터 과학 PG 프로그램을 확인하십시오. 업계 전문가, 업계 멘토와의 1:1 학습, 최고의 기업과의 400시간 이상의 학습 및 직업 지원.

로지스틱 회귀와 선형 회귀는 어떻게 다른가요?

선형 회귀의 목표는 가장 적합한 선을 식별하는 것이지만 로지스틱 회귀는 한 단계 더 나아가 선 값을 S자 곡선에 맞춥니다. 이 두 방법의 주요 차이점은 종속 변수가 이진일 때 로지스틱 회귀가 적용된다는 것입니다. 종속변수가 연속형이고 회귀선이 선형이면 선형 회귀가 사용됩니다. 선형 회귀를 추정하는 데 일반 최소 제곱 기법이 사용되는 반면 로지스틱 회귀를 추정하는 데는 최대 가능도 추정 방법이 사용됩니다. 선형 회귀의 출력은 연속적이지만 로지스틱 회귀의 출력은 제한된 수의 이산 잠재적 값만 있습니다.

로지스틱 회귀는 언제 유용합니까?

범주형 종속 변수는 로지스틱 회귀를 사용하여 예측됩니다. 우리가 가진 데이터를 무한 척도로 측정할 수 있을 때 로지스틱 회귀를 적용할 수 있습니다. 발생 가능성을 추정하려면 로지스틱 회귀 분석이 유용합니다. 두 클래스의 확률을 결정하는 데 도움이 됩니다. 로지스틱 회귀를 사용하여 분류 및 확률 결과만 예측할 수 있습니다. 스팸 탐지, 당뇨병 예측, 암 진단 등과 같은 다양한 분류 문제를 해결하는 데 사용할 수 있습니다.

로지스틱 회귀 사용의 한계는 무엇입니까?

1. 로지스틱 회귀는 선형 결정 표면을 가지므로 비선형 문제를 해결할 수 없습니다.

2. 로지스틱 회귀 알고리즘은 이상값에 민감합니다.

3. 스케일링과 정규화 모두 로지스틱 회귀의 핵심 기준이므로 데이터 준비에 시간이 많이 걸릴 수 있습니다.

4. 두 클래스를 완전히 분리하는 기능이 있으면 모델을 더 이상 학습할 수 없습니다. 이것을 '완전한 분리'라고 합니다.

5. 관측값 수가 특성 수보다 적으면 과적합이 발생할 수 있으므로 로지스틱 회귀를 적용하지 않아야 합니다.

6. 또 다른 단점은 로지스틱 회귀 분석의 각 데이터 포인트가 다른 모든 데이터 포인트와 독립적이어야 한다는 것입니다. 관측치가 연결되면 모델은 해당 관측치의 관련성을 과대평가하는 경향이 있습니다.