Skip to content
Home » 로지스틱 회귀 분석 그래프 | [데세Tv] 로지스틱회귀분석 1부_기본 개념 28488 투표 이 답변

로지스틱 회귀 분석 그래프 | [데세Tv] 로지스틱회귀분석 1부_기본 개념 28488 투표 이 답변

당신은 주제를 찾고 있습니까 “로지스틱 회귀 분석 그래프 – [데세TV] 로지스틱회귀분석 1부_기본 개념“? 다음 카테고리의 웹사이트 sk.taphoamini.com 에서 귀하의 모든 질문에 답변해 드립니다: https://sk.taphoamini.com/wiki/. 바로 아래에서 답을 찾을 수 있습니다. 작성자 [데이터로 세상보기] 이(가) 작성한 기사에는 조회수 2,202회 및 좋아요 32개 개의 좋아요가 있습니다.

Table of Contents

로지스틱 회귀 분석 그래프 주제에 대한 동영상 보기

여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!

d여기에서 [데세TV] 로지스틱회귀분석 1부_기본 개념 – 로지스틱 회귀 분석 그래프 주제에 대한 세부정보를 참조하세요

안녕하세요. \”데\”이터로 \”세\”상보기 [데세 TV]입니다.
로지스틱회귀분석 1부로서, 기본 개념 및 추정에 관한 내용입니다.
로지스틱 회귀분석은 목표변수(Y)가 범주형일 때, 독립변수(X)와의 관계를 파악하는 분석입니다. 로짓과 독립변수가 선형성을 갖게 되는 모형입니다. 질문 사항은 댓글로 남겨주시기 바랍니다.
추가로 궁금한 사항은 아래 메일을 참고하여 문의해주시길 바랍니다. 감사합니다.
Website: www.delab.kr
E-mail: [email protected]

로지스틱 회귀 분석 그래프 주제에 대한 자세한 내용은 여기를 참조하세요.

[SPSS 26] 로지스틱 회귀분석(Logistic Regression) – 동시입력

선형 회귀분석이 말 그대로 독립변수와 종속변수 사이의 선형적 관계를 그래프로 나타낸 것이라면, 로지스틱 회귀분석은 선형이 아닌 “S” 곡선의 특성 …

+ 여기에 더 보기

Source: blog.naver.com

Date Published: 11/15/2022

View: 2243

로지스틱회귀분석그래프 그리기 – 깜신의 통계 왕초보 탈출 38 …

로지스틱회귀분석에 사용되는 표준로지스틱 함수는,. y=ex1+ex. 이다. 그래프로 그려보면, df <- data.frame(x=seq(-6,6,length.out = 100)) df$y ...

+ 여기에 보기

Source: ppa.covadoc.vn

Date Published: 11/10/2021

View: 9945

로지스틱회귀분석 (R) :: 지루한 일상의 소중함

로지스틱회귀분석에 사용되는 표준로지스틱 함수는,. y=ex1+ex. 이다. 그래프로 그려보면, df <- data.frame(x=seq(-6,6,length.out = 100)) df$y ...

+ 자세한 내용은 여기를 클릭하십시오

Source: every-day-life.tistory.com

Date Published: 5/24/2022

View: 2372

로지스틱 회귀 분석 그래프 – CodeDragon

로지스틱 회귀 분석 그래프. 0을 기준으로 꺽여진 양의 값과 꺽여진 음의 값을 가지는 그래프를 따릅니다. 참(1)과 거짓(0) 사이를 구분하는 S자 형태의 선을 그려 …

+ 여기를 클릭

Source: codedragon.tistory.com

Date Published: 8/6/2022

View: 9535

로지스틱회귀분석 그래프 그리기 – 깜신의 통계 왕초보 탈출 38탄

로지스틱회귀분석을 통해 찾은 의미 있는 결과들을 그래프로 그려보려고 합니다. 어떻게요? 아주 예쁘고, 직관적으로요. 더구나 쉽게 말이죠. ^_____ …

+ 더 읽기

Source: jinmedi.tistory.com

Date Published: 2/9/2021

View: 7762

R로 로지스틱 함수 그래프 그리기

Introduction. 로지스틱 회귀분석 정리하다가 설명을 위해 로지스틱 함수 그래프를 그렸다. 처음엔 왕 간단하게 ggplot2로 해결하려다가 이왕 블로그 …

+ 여기에 더 보기

Source: sorinya.tistory.com

Date Published: 8/13/2022

View: 2815

[AI] day5. 로지스틱 회귀 (Logistic Regression) – 1

1) 이진 분류 로지스틱 회귀 분석 (Binary Classification Logistic … 그래프가 x축과 평행한 부분이 상당 부분 존재하기 때문에 선형 회귀보다 …

+ 여기에 보기

Source: keykat7.blogspot.com

Date Published: 7/21/2022

View: 6494

로지스틱 회귀 – 위키백과, 우리 모두의 백과사전

하지만 로지스틱 회귀는 선형 회귀 분석과는 다르게 종속 변수가 범주형 데이터를 대상으로 하며 입력 데이터가 주어졌을 때 해당 데이터의 결과가 특정 분류로 나뉘기 …

+ 여기에 자세히 보기

Source: ko.wikipedia.org

Date Published: 1/17/2022

View: 5389

주제와 관련된 이미지 로지스틱 회귀 분석 그래프

주제와 관련된 더 많은 사진을 참조하십시오 [데세TV] 로지스틱회귀분석 1부_기본 개념. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

[데세TV] 로지스틱회귀분석 1부_기본 개념
[데세TV] 로지스틱회귀분석 1부_기본 개념

주제에 대한 기사 평가 로지스틱 회귀 분석 그래프

  • Author: [데이터로 세상보기]
  • Views: 조회수 2,202회
  • Likes: 좋아요 32개
  • Date Published: 2020. 5. 9.
  • Video Url link: https://www.youtube.com/watch?v=ZgIjPa3Ibg8

[SPSS 26] 로지스틱 회귀분석(Logistic Regression) – 동시입력

로지스틱 회귀분석 [SPSS 26] 로지스틱 회귀분석(Logistic Regression) – 동시입력 도시마법사 ・ URL 복사 본문 기타 기능 공유하기 신고하기 첨부파일 graduate .sav 파일 다운로드 시작하기에 앞서 graduate.sav 파일을 다운 받는다. 통계 분석에는 매우 많은 방법들이 존재한다. 그럼에도 우리 방사선사들에게 있어 사용되고 있는 분석 방법은 생각보다 많지 않다. 지금까지, 평균차이검정, 비모수검정, 상관분석, 회귀분석 등을 포스팅 해왔는데 오늘의 포스팅이 우리 방사선사에게 필요한 마지막 분석이 아닐까 싶다. ​ 사실 로지스틱 회귀분석은 영상분석이라는 관점에서 바라보았을 때 방사선사들에게 꼭 필요한 분석 방법은 아닌것 같지만 설문조사나 임상적 응용에 있어 한번쯤은 적용해보면 어떨까라는 생각을 가진적이 있었다. 그래서 로지스틱 회귀분석을 우리 방사선사를 위한 통계기법의 범주에 넣고 포스티을 해보고자 한다. 로지스틱 회귀분석은 Logistic regression analysis로 표기하면 로짓분석(Logit analysis)라고도 한다. Cox(1970)가 처음 제시한 개념으로 두개의 값만을 가지는 종속변수와 독립변수들 간의 인과관계를 로지스틱 함수를 이용하여 추정하는 통계기법이다. 로지스틱 회귀분석은 어떤 사건(event)이 발생할지에 대한 직접 예측이 아니라 그 사건이 발생할 확률을 예측하는 것이다. ​ 로지스틱 회귀분석이 사용되는 예를 보면, 금융권에서는 고객의 신용도 평가를 통해 이 고객의 신용도가 우량이 될 것인지, 신용불량자가 될 것인지 미리 예측해 볼 수 있다. 또한 통신사의 경우 2년 약정 종료 후 번호이동으로 타 통신사로 갈 것인지, 기기변경으로 남을 것인지 판단할 수 있다. 제과점에서는 전날 저녁에 다음날 팔게 될 빵의 수량을 예측해서 본사에 주문하거나 직접 만들게 되는데 이때 재고를 남기지 않고 모두 판매할 수 있을지 폐기하게 될지 등을 예측하는데 활용해 볼 수 있을 것이다. 무엇보다 의학 분야에서는 다양한 원인을 파악하여 질병에 대한 예측을 하는데 더욱 효과적으로 활용해 볼 수 있을 것이다. 로지스틱 회귀모형은 반응변수가 범주형 자료(이항/다항)이며, 일반화 선형모형(generalized linear model)의 특수한 경우로 S형 곡선을 그리는 함수 모형이다. 특히, 로지스틱 회귀분석을 위한 종속변수는 이분형으로 0 또는 1의 값을 가지고, 독립변수는 범주형 또는 연속형 모두 가능하다. 로지스틱 회귀모형은 여러 설명 변수들로부터 두 범주만을 가지는 반응변수를 예측하는데 사용하며, 분석결과 종속변수 값, 즉 확률이 0.5보다 크면 그 사건이 일어나며, 0.5보다 작으면 그 사건이 일어나지 않는 것으로 예측한다. 단순회귀분석과 다중회귀분석으로 대표되는 선형 회귀분석은 기본적으로 종속변수와 독립변수 모두 연속형 변수이어야 했으며, 예외적으로 독립변수에 한하여 명목척도를 더미변수로 변환하여 분석할 수가 있었다. ​ 이분형 로지스틱 회귀분석은 독립변수는 선형회귀분석과 동일하지만 종속변수는 이분형으로 측정된 명목변수로 분석을 하는게 다른 부분이다. 선형 회귀분석이 말 그대로 독립변수와 종속변수 사이의 선형적 관계를 그래프로 나타낸 것이라면, 로지스틱 회귀분석은 선형이 아닌 “S” 곡선의 특성을 나타낸다. ​ 로지스틱 회귀분석의 곡선에서 종속변수의 확률이 0.5보다 크면 어떤 사건이 일어난다고 보고, 0.5보다 작으면 어떤 사건이 일어나지 않을 것이라고 확률적으로 예측해볼 수 있다. 오즈비(Odds Ratio) 또는 승산비 또는 줄여서 OR이라는 것은 확률과 관련된 의미로서, 미국의 라스베가스에서는 포커에서 내가 이길 확률을 계산할 때 주로 거론되는 용어라고 한다. ​ 오즈비는 P가 주어졌을 때, 사건이 발생활 확률이 발생하지 않을 확률에 비해 몇배 더 높은가의 의미를 가지고 있다. 이것을 공식으로 나타내면, Odds=(사건이 발생함)/(사건 발생안함)으로 나타낼 수 있고, 이것은 Odds= P / (1-P) 로 표기할 수 있다. 결국 이것은 이와 같이 지수함수로 표현할 수 있다. 이러한 지수함수는 다중회귀분석에서 회귀식의 표현과 거의 유사한 형태를 가지고 있다. ​ 오즈비의 공식을 통해 예를들어보면, 종속변수의 범주가 ‘1’이 성공이고 ‘0’은 실패인 이분형을 가정할 때, P가 0.8이라면, 오즈비는 (0.8/(1-0.8))=4가 되고 이것은 성공이 될 확률이 실패가 될 확률보다 4배 높다는 의미를 가진다. 오즈비를 요즘 전세계적으로 창궐하고 있는 코로나19 감염에 비유하여 예를들어보고자 한다. ​ A: 코로나 환자와 접촉 후, 코로나에 감염 됨 B: 코로나 환자와 접촉 후, 코로나에 감염되지 않음 C: 코로나 환자와 접촉하지 않았지만, 코로나에 감염 됨 D: 코로나 환자와 적촉하지 않았고, 코로나에 감염되지 않음 ​ 이와 같을 경우, ​ 코로나 환자와 접촉 후 코로나 감염이 나올 오즈 =(코로나 환자와 접촉 후 코로나 감염이 될 확률) / (코로나 환자와 접촉 후 코로나 감염이 되지 않을 확률) 과 같이 공식으로 나타낼 수 있다. 반면, 코로나 환자와 접촉을 하지 않았지만 감염이 나올 오즈 = (코로나 환자와 접촉하지 않고 감염이 될 확률) / (코로나 환자와 접촉하지 않고 감염이 되지 않을 확률) 과 같이 나타낼 수 있다. 위의 두 공식을 종합해서 오즈비를 나타내면, 오즈비(OR) = (코로나 환자와 접촉 후 코로나 감염이 될 확률) / (코로나 환자와 접촉하지 않고 코로나 감염이 될 확률) 으로 종합해 볼 수 있다. 결국, 오즈비에 대한 공식은 으로 귀결된다. 자연지수 e를 ln으로 치환하면, 다중회귀분석의 회귀식과 동일하게 나오는것을 볼 수 있다. 오즈비의 해석 방법은 확률 1을 기준으로 한다. OR = 1 ▶ 코로나 환자와 접촉했다고 해서 코로나 감염에 유의미한 영향을 준다고 볼 수 없다. OR > 1 ▶ 코로나 환자와 접촉한 경우 접촉하지 않은 경우보다 오즈비 만큼 더 높게 나타날 것이다. OR < 1 ▶ 코로나 환자와 접촉한 경우 접촉하지 않은 경우보다 오즈비 만큼 더 낮게 나타날 것이다. ​ 참고적으로, 논문에 오즈비를 표기할 때는 95% 신뢰구간을 같이 표기하는게 좋다. 일반적으로 95% 신뢰구간에 오즈비 1을 포함하면, 유의미한 영향이 없다고 보고, 1을 포함하면, 유의미한 영향이 있다고 해석한다. 그렇다면, 위의 공식들을 사용하여, 실제 계산을 해보도록 하자. ​ A: 97명 - 코로나 환자와 접촉 후, 코로나에 감염 됨 B: 307명 - 코로나 환자와 접촉 후, 코로나에 감염되지 않음 C: 200명 - 코로나 환자와 접촉하지 않았지만, 코로나에 감염 됨 D: 1409명 - 코로나 환자와 적촉하지 않았고, 코로나에 감염되지 않음 ​ 일때, OR=136673 / 61400 = 2.2 로 계산된다. 따라서, 코로나 환자와 접촉한 사람은 접촉하지 않은 사람 보다 코로나 감염이 될 가능성이 2.2배 높다고 할 수 있다. 추론 통계 분석을 논문에 삽입할 경우 기본적으로 통계량과 유의확률(P값)을 같이 표기한다. 선형회귀분석에서 모형에 대한 검정을 위해 분산분석표의 F검정을 활용하였다. 계수에 대한 검정으로는 T검정을 사용하였으며, 모형에 대한 설명력은 R제곱과 수정된 R제곱으로 판단하였다. ​ 로지스틱 회귀분석에서는 모형에 대한 검정으로 카이제곱을 활용한다. 계수에 대한 검정으로는 Wald 통계량을 활용하고, 논문에는 (Wald=000000, P<0.05)와 같이 표기한다. 모형에 대한 설명력으로는 Cox and Snell R제곱과 Negelkerke R제곱 두가지를 사용하는 보통 Negelkerke R제곱이 크게 나오기 때문에 Negelkerke R제곱을 주로 활용한다. 그러나 선형회귀분석의 R제곱 계수만큼 중요도가 높지는 않다. 위에서 언급한 모형에 대한 검정으로 로지스틱 회귀분석 결과의 "모형 계수의 총괄 검정" 표에 카이제곱 값이 나타나 있다. ​ 단계 : 가장 처음 투입된 독립변수의 계수에 대한 회귀모형의 유용성을 나타낸다. 블록 : 마지막으로 투입된 독립변수의 계수에 대한 회귀모형의 유용성을 나타낸다. 모형 : 독립변수 전체 계수에 대한 회귀모형의 유용성을 나타낸다. ​ 동시입력 방식으로 모든 독립변수를 한번에 투입하였다면, 세가지 카이제곱 모두 같은 값이 나올 것이다. ​ 여기에서 귀무가설(H0) : 로지스틱 회귀계수들은 모두 0이다. 대립가설(H1) : 적어도 하나의 회귀계수는 0이 아니다. ​ 따라서, 로지스틱 회귀분석 사용하기 위해서는 귀무가설을 기각하고 대립가설을 채택해야 하므로 유의확률 P값은 유의수준(a=0.05) 보다 작게 나타나야 한다. ​ 위의 표를 토대로 보면, X2=41.459, P<0.001 으로 나타났으므로, 로지스틱 회귀계수들은 모두 0이다라는 귀무가설을 기각하고 대립가설을 채택할 수 있는 것으로 나타났다. 모형의 설명력은 로지스틱 회귀분석 결과의 "모형 요약" 표를 참고한다. 모형요약 표에는 모형 설명력을 위해 -2 로그우도, Cox와 Snee의 R-제곱, Nagelkerke R-제곱의 3가지를 제공한다. -2 로그 우도(Likelihood; LL)는 이 값이 낮을수록 가장 완벽한 모형에 적합하다고 볼 수 있다. Cox와 Snell의 R-제곱과 Nagelkerke R-제곱은 높을수록 가장 완벽한 모형에 적합하다고 볼 수 있다. 보통 Nagelkerke R-제곱 값이 높게 나타나기 때문에 Nagelkerke R-제곱 값을 주로 활용한다. 하지만 다중회귀분석에서 사용되는 결정계수 R 제곱만큼 중요도가 높지는 않다. 로지스틱 회귀분석 모형의 적합도는 Hosmerㅇ와 Lemeshow 검정 표를 활용한다. Hosmer-Lemeshow 검정은 적합도 검정법의 하나로서, 추정된 로지스틱 모형이 적합하면 근사적으로 카이제곱 분포를 따르게 된다. ​ 귀무가설(H0) : 추정된 모형이 잘 적합하다. 대립가설(H1) : 추정된 모형이 잘 적합하지 않다. ​ 따라서, 모형이 적합하려면 대립가설을 기각하고 귀무가설을 채택해야 한다. ​ 참고적으로 귀무가설을 반드시 채택해야 하는 분석 방법은 1. 정규성 검정, 2. 등분산성 검정, 3. 적합도 검정으로 요약해볼 수 있으며, 이는 유의확률(P) 값이 유의수준(a) 보다 커야 하는 것을 의미한다. ​ 최적의 변수를 선택하기 위한 방법으로 다중회귀분석에도 동시입력과 단계선택 방법 외에 전진, 제거, 후진 등의 방법을 제공하는 것과 같이 로지스틱 회귀분석에도 7가지의 방법들을 제공하고 있다. ​ 참고적으로 "앞으로"는 가장 유의하다고 판단되는 계수부터 순차적으로 삽입하는 방법이고, "뒤로"는 가장 유의하지 않다고 판단되는 계수부터 순차적으로 삽입하는 방법이다. 1. 입력 ▶ 모든 변수를 모형에 삽입한다. ​ 2. 앞으로: 조건 ▶ 스코어 통계량의 유의수준을 기준으로 변수의 진입 검정을 수행하고, 조건적 모수 추정값에 따라 우도비 통계량의 확률을 기초로 변수의 제거 검정을 수행하는 단계 선택법이다. ​ 3. 앞으로: LR ▶ 스코어 통계량의 유의수준을 기준으로 변수의 진입 검정을 수행하고, 최대 편우도 추정값에 따라 우도비 통계량의 확률을 기초로 변수의 제거 검정을 수행하는 단계 선택법이다. ​ 4. 앞으로: Wald ▶ 스코어 통계량의 유의수준을 기준으로 변수의 진입 검정을 수행하고, Wald 통계량의 확률을 기초로 변수의 제거 검정을 수행하는 단계 선택법이다. ​ 5. 뒤로: 조건 ▶ 조건적 모수 추정값에 따라 우도비 통계량의 확률을 기초로 변수의 제거 검정을 수행하는 후진제거 선택법이다. ​ 6. 뒤로: LR ▶ 최대 편우도 추정값에 따라 우도비 통계량의 확률을 기초로 변수의 제거 검정을 수행하는 후진제거 선택법이다. ​ 7. 뒤로: Wald ▶ Wald 통계량의 확률을 기초로 변수의 제거 검정을 수행하는 후진제거 선택법이다. ​ 이상의 방법들은 뭐가 정확하다라고 정해진것은 없다. 연구자가 직접 옵션들을 선택해서 분석한 후 연구자에게 유리한 것으로 활용할수도 있고, 선행연구에서 선택한 방법을 그대로 따라할 수도 있을 것이다. ​ 일반적으로는 1. 입력 방식과 3. 앞으로:LR 방식을 많이 활용하는 듯 하다. 범주형 변수 정의 대화상자는 범주형 변수를 자동으로 더미변수(Dummy Variable)로 변경해주는 역할을 한다. 더미변수를 이용한 다중회귀분석에서는 직접 더미변수를 생성하여 분석에 적용해야 했지만 로지스틱 회귀분석에서는 자동으로 생성해준다. ​ SPSS 26.0을 기준으로 7가지 옵션을 제공하는데 그 의미는 다음과 같다. 표시자 : 대비는 소속 범주가 있는지 여부를 나타냄, 기준범주는 대조행렬에서 ‘0’ 행으로 표현된다. 단순 : 범주형 공변량의 각 범주는 기준 범주와 비교된다. 차분 : 처음 범주를 제외한 점주형 공변량의 각 범주는 이전 범주의 평균 효과와 비교됨 이것을 역 Helmert 대비라고 한다. Helmert : 마지막 범주를 제외한 범주형 공변량의 각 범주는 후속 범주들의 평균 효과와 비교된다. 반복 : 처음 범주를 제외한 범주형 공변량의 각 범주는 선행하는 범주와 비교된다. 다항 : 직교 다항대비. 범주는 동일한 간격으로 떨어져 있어야 함 다항대비는 숫자형 변수에 대해서만 사용할 수 있다. 편차 : 기준 범주를 제외한 범주형 공변량의 각 범주는 전체 효과와 비교된다. ​ 이상의 7가지에 대하여 아직 정확하게 이해하지를 못했다. 일단은 기본적으로 표시자를 주로 사용한다고 하니, 표시자로 놓고 사용하면서 차근 차근 알아나가야겠다. 그리고, 참조범주(R):에 보면 "마지막"과 "처음"이라는 두가지 옵션이 있다. 이것은 더미변수를 만들때를 생각해보면 이해하기가 쉬울 것이다. 성별이라는 범주형 변수가 있을 때, 일반적 코딩은 남성=1, 여성=1로 코딩하지만 더미변수로 코딩할 때는 참조하고자 하는 변수 설정, 다시 말해서 레퍼런스 변수를 무엇으로 설정하느냐에 따라 해석이 달라진다. ​ 위의 예제에서 참조변수를 마지막으로 할 경우 여성은 남성보다 OR 배 만큼 높거나 낮다로 해석할 수 있으며, ​ 참조변수를 처음으로 할 경우 남성은 여성보다 OR 배 만큼 높거나 낮다로 해석할 수 있다. 범주가 3개 이상일 때는 위와 같이 코딩할 수 있다. ​ 위의 예제에서 참조변수를 마지막으로 할 경우 종합병은 의원보다 OR 배 만큼 높거나 낮다, 병원은 의원보다 OR 배 만큼 높거나 낮다로 해석할 수 있으며, ​ 참조변수를 처음으로 할 경우 의원은 종합병원보다 OR 배 만큼 높거나 낮다, 병원은 종합병원보다 OR 배 만큼 높거나 낮다로 해석할 수 있다. 이제 실제 사례를 들어 로지스틱 회귀분석을 실행해보고자 한다. 먼저 가장 위에 있는 graduate.sav 샘플 파일을 다운로드 받는다. 참고로 분석은 IBM SPSS 26.0 버전에서 작성되었다. 예제 문제는 이렇다. 방사선학 석사과정 대학원생 모집을 하였다. 이때 지원한 방사선사의 대학원 합격 여부에 따른 주요 요인이 무엇인지 분석하여라. ​ 전체 400개의 케이스가 있으며, 4개의 필드로 이루어져 있다. 합격여부는 명목척도로서 1=합격, 0=불합격으로 코딩되어 있다. 필기점수는 비율척도로서 만점은 800점이다. 학부성적은 비율척도로서 만점은 4.0점이다. 병원경력은 명목척도로서 1=10년이상, 2=5년 이상 10년 미만, 3=1년 이상 5년 미만, 4=1년 미만으로 코딩되어 있다. 로지스틱 회귀분석 과정은 분석 ==> 회귀분석 ==> 이분형 로지스틱을 찰례대로 클릭한다. 로지스틱 회귀분석의 기본가정 사항은 일반적으로 많지 않기 때문에, 특히 “정규성”을 만족하지 않아도 되기 때문에 판별분석에 비해 쉽게 적용이 가능하다. 그렇다고 해서 기본 가정사항이 아예 없는 것은 아니다. ​ 1. 먼저 표본은 많을수록 좋다. 소표본으로 할 경우 분석 결과에 신뢰도가 떨어질 수 있다. 그렇다면, 얼마나 많아야 할까? Peduzzi 등은 독립변수(공변량)의 수와 양성으로 나올 비율에 따라 샘플 수를 정해야 한다고 했는데 그 공식은 다음과 같다. ​ N = 10 k / p ​ Peduzzi P, Concato J, Kemper E, Holford TR, Feinstein AR (1996) A simulation study of the number of events per variable in logistic regression analysis. Journal of Clinical Epidemiology 49:1373-1379. ​ 위의 공식에서 독립변수(k) 수가 3개이고, 양성 비율이 20%라면, 샘플 수=10*3/0.2=150으로 계산되어 로지스틱 회귀분석을 위해서는 150명의 샘플 수가 필요하다고 언급한바 있다. ​ 2. 종속변수는 이항 분포로 이루어져 있어야 한다. ​ 3. 선형회귀분석과 같은 독립변수와 종속변수의 선형관계가 아닌 로짓 선형 관계를 이루고 있어야 한다. ​ 4. 오차항은 독립적으로 존재해야 한다. 선형회귀분석에서는 Durbin-Watson으로 확인하였지만 로지스틱 회귀분석에서는 따로 제공해주지는 않는듯 하다. ​ 5. 다중공선성 부재 선형회귀분석에서는 분산팽창요인(VIF) 값으로 판별하였지만 로지스틱 회귀분석에서는 따로 제공해주지는 않는듯 하다. ​ 결론적으로 위의 5가지 기본 가정사항 들이 분명 존재하지만, 종속변수의 이항분포만을 제외하면, 분석에서 특별히 신경쓰지 않는듯하다. ​ 로지스틱 회귀분석의 연구 가설은 귀무가설(H0) : 로지스틱 회귀모형이 존재하지 않는다 (β1 = 0). 대립가설(H1) : 로지스틱 회귀모형이 존재한다 (β1 ≠0)이며, 이는 독립변수 중 적어도 하나는 종속변수에 영향을 준다라고 해석할 수 있다. SPSS 26에서 graduate.sav 파일을 열어보았을 때 데이터 보기 창이다. 변수 보기 창이다. ​ 합격여부의 값을 지정하진 않았지만 1=합격, 0=불합격으로 코딩되어 있다. 병원 경력의 범주는 1=10년이상, 2=5~10년, 3=1~5년, 4=1년 미만으로 코딩되어 있다. 로지스틱 회귀분석을 위해 분석 ==> 회귀분석 ==> 이분형 로지스틱 메뉴를 차례대로 클릭한다. 이분형 로지스틱 창이 나타났다. 여기에서 종속변수에는 “합격여부”를, 그 외 독립변수에 해당하는 “필기점수”, “학부성적”, “병원경력”을 블럭 칸으로 이동시킨다. ​ “방법”에는 모든 변수를 동시에 입력하는 “입력” 상태 그대로 둔다. ​ “선택변수(B):” 메뉴는 범주형 변수에서 특정 그룹만을 대상으로 로지스틱 회귀분석을 하고자 할 때 사용하는 기능이다. 예를들어보면, 위에서 “병원경력” 변수는 “종합병원”, “병원”, “의원”이라는 3가지 범주로 되어 있는데, 케이스를 선택하는 규칙을 “종합병원”과 “병원”으로 제한하면, 이 두 범주로만 로지스틱 회귀분석을 적용하게 된다. ​ 만약 선택변수에 변수를 삽입하였다면 “공변량” 칸에 중복으로 입력할 수 없다. 그리고 오른쪽 메뉴에 있는 “범주형”을 클릭한다. 여기서는 범주형 변수를 더미변수로 변환하기 위해 “병원경력” 변수를 “범주형 공변량” 칸으로 이동시킨다. “대비 변경” 항목은 “대비:표시자”, “참조범주:마지막” 기본 설정 그대로 두고 “계속”을 클릭한다. 다음 “저장” 메뉴를 클릭한다. 기본적으로 “확률”, “소속집단”, “Cook의 거리”, “표준화” 를 선택하고 “계속”을 클릭한다. ​ “저장” 메뉴에서 선택한 항목들은 분석이 완료된 후 “데이터 보기” 창으로 이동해보변 선택된 항목들이 저장된 것을 확인할 수 있다. ​ “확률(P)”은 각 케이스마다 사건의 예측발생 확률을 저장한다. 데이터보기 창에서 “PRE_1″으로 보여진다. “소속집단(G)”은 예측확률에 기초하여 각 케이스가 할당될 집단이 표시된다. 데이터 보기 창에서 “PGR_1″로 보여진다. “표준화(N)” 또는 표준화 잔차는 잔차를 각각의 표준편차로 나누어 표준화한 것으로 이상치 판정의 중요한 기준이 된다. 데이터 보기 창에서 “ZRE_1″로 보여진다. “Cook의 거리”는 영향력이 큰 관측치를 색출하는 기능을 가진다. 데이터 보기 창에서 “COO_1″로 보여진다. 다음 “옵션” 메뉴를 클릭한다. “옵션” 메뉴에서는 “분류도표”, “Homer-Lemeshow 적합도”, “반복계산과정”, “exp(B)에 대한 신뢰구간”의 4가지 항목을 체크하고 “계속”을 클릭한다. ​ “분류도표(C)”는 각 집단에 속한 케이스의 예측집단을 히스토그램으로 나타낸다. 도표는 0과 1로 표현되는데 각각의 숫자는 4개로 이루어져 있으며, Positive=1일 경우 0.5 오른쪽에 분포해야 하고, Negative=0일 경우 왼쪽에 분포하여 나뉘어진다. “Homer-Lemeshow 적합도”는 로시스틱 회귀모형의 적합도를 나타낸다. “반복계산과정”은 반복계산을 통해 유의한 변수가 선정되는 과정을 단계별로 나타낸다. “exp(B)에 대한 신뢰구간”은 분석결과의 “방정식의 표”에서 95% 신뢰구간을 나타낸다. 논문 작성시 필요한 데이터이므로 반드시 체크한다. ​ “확인”을 클릭하고 분석 결과를 확인한다. 케이스 처리 요약 표는 분석에 사용된 샘플 수와 결측 값을 보여준다. 총 400개의 케이스가 분석에 포함되었고, 결측값은 없는 것으로 나타났다. 원래 코딩 값은 1=합격, 0=불합격으로 코딩되었기 때문에 로지스틱 회귀분석을 위한 내부 값 역시 동일하게 나타났다. 하지만 성별과 같이 1=남성, 2=여성으로 코딩되어 있는 이분형 자료라면, 내부 값을 1과 2로 분석하는게 아니라 자동으로 1과 0으로 바꿔서 분석을 하게 된다. 참고적으로 SPSS는 원래의 값에서 작은 값은 0, 큰 값은 1로 자동 변환된다. 분석에 사용된 범주형 변수, “병원경력”에 대한 범주별 빈도수를 보여주고 있다. 다중회귀분석에서는 범주형변수를 더미변수로 처리해서 분석에 사용해야 했지만, 로지스틱 회귀분석에서는 자동으로 더미변수를 생성하여 준다. 설정에서 참조변수를 “마지막”으로 선택했기 때문에 1=10년 이상, 2=5~10년, 3=1~5년, 4=1년 미만 의 범주에서 가장 마지막에 해당하는 4=”1년 미만”이 모수코딩에서 0 0 0으로 코딩되어 참조변수로 설정 된 것을 확인할 수 있다. 0 단계 모형 적합 결과는 다른 공변량은 모형에 포함시키지 않고, 상수항만으로 모혀을 적합했을 경우의 결과이다. 적합 결과는 -2LL=500.085이며, 추정된 상수항 값은 -0.730, 이 상수항만으로 이루어진 모형에 의한 분류 정확도는 68.3%이다. ​ 개념만 확인하고 다음 표로 넘어간다. 방정식의 변수 표에서 0단계는 로지스틱 회귀분석의 첫 단계 모형을 의미하며, 첫 단계에서는 독립변수를 포함하지 않고, 상수항만으로 구성된 식이 도출된다. ​ 개념만 확인하고 다음 표로 넘어간다. 또한 0단계의 로지스틱 회귀분석에 포함되지 않은 모든 변수들의 유의성을 보여주고 있다. 이 표에서 병원경력(2)..그러니까 5~10년 범주는 유의하지 않은 것을 확인할 수 있다. ​ 개념만 확인하고 다음 표로 넘어간다. 변수 선택 방법은 “입력”으로 되어 있어 모든 변수가 동시에 입력되었다는 것을 의미하고 있다. 따라서, 반복 계산은 1단계에서 끝이 난 것이고, 만약 단계선택 방법 “앞으로:LR”과 같은 방법을 선택했다면 유의한 변수에 따라 단계별 과정이 나타날 것이다. 모형 계수의 총괄검정은 모형의 유용성을 확인할 수 있는데 표에서 나타난 “단계”, “블록”, “모형”은 변수 선택 방법에서 “입력을 선택하였으므로 모두 같은 값을 보여준다. ​ 위에서 설명하기를, 단계 : 가장 처음 투입된 독립변수의 계수에 대한 회귀모형의 유용성을 나타낸다. 블록 : 마지막으로 투입된 독립변수의 계수에 대한 회귀모형의 유용성을 나타낸다. 모형 : 독립변수 전체 계수에 대한 회귀모형의 유용성을 나타낸다. 라고 언급하였다. ​ 여기에서 귀무가설(H0) : 로지스틱 회귀계수들은 모두 0이다. 대립가설(H1) : 적어도 하나의 회귀계수는 0이 아니다. ​ 위의 표를 토대로 보면, X2=41.459, P<0.001 으로 나타났으므로, 로지스틱 회귀계수들은 모두 0이다라는 귀무가설을 기각하고, 적어도 하나의 회귀계수는 0이 아니다라는 대립가설을 채택할 수 있는 것으로 나타났다. 모형요약 표에는 모형 설명력을 위해 -2 로그우도, Cox와 Snee의 R-제곱, Nagelkerke R-제곱의 3가지를 제공한다. -2 로그 우도(Likelihood; LL)는 이 값이 낮을수록 가장 완벽한 모형에 적합하다고 볼 수 있다. Cox와 Snell의 R-제곱과 Nagelkerke R-제곱은 높을수록 가장 완벽한 모형에 적합하다고 볼 수 있다. 보통 Nagelkerke R-제곱 값이 높게 나타나기 때문에 Nagelkerke R-제곱 값을 주로 활용한다. 하지만 다중회귀분석에서 사용되는 결정계수 R 제곱만큼 중요도가 높지는 않다. ​ -2LL=458.517, Nagelkerke R2=0.138로서 로지스틱 회귀식은 종속변수를 13.8% 만큼의 설명을 가지는 것으로 나타났다. Hosmerㅇ와 Lemeshow 표는 로지스틱 회귀분석 모형의 적합도를 나타낸다. ​ 귀무가설(H0) : 추정된 모형이 잘 적합하다. 대립가설(H1) : 추정된 모형이 잘 적합하지 않다. ​ X2=11.085, P>0.05 이므로 대립가설을 기각하고, 추정된 모형이 잘 적합하다 라는 귀무가설을 채택하는 것으로 나타났다. 분류표는 분석결과 어느 집단에 속할지 예측력을 보여준다. 불합격 집단에 속한 전체 273 case 중 93%인 254 case가 정확하게 분류되었고, 합격 집단에 속한 전체 107 case 중 23.6%인 30 case가 정확하게 분류되는 것으로 나타났으며, 전체 분류 정확도는 71%이다. “방정식의 변수” 표는 다중회귀분석의 “계수” 표를 의미한다. 표에서 “1단계”로만 나타나 있는 것은 변수선택방법에서 “입력”을 선택했기 때문이다. B의 부호가 (+)이면, Exp(B)의 값은 1 이상으로 나타나고, 해당 변수 값이 커질수록 내부값이 1인 집단(합격)에 분류될 가능성이 커진다. B의 부호가 (-)이면, Exp(B)의 값은 1 미만으로 나타나고, 해당 변수 값이 커질수록 내부값이 0인 집단(불합격)에 분류될 가능성이 커진다. ​ 해당 변수의 예측력을 검증하기 위해서는 각 계수들의 유의성을 봐야한다. 위의 표에서, 필기점수는 Wald=4.284, P<0.05로 나타났으며, B=0.002로서 (+)의 값을 가지고 있다. 따라서 필기점수가 높을수록 합격확률이 높아진다. 여기에서 Exp(B)는 Odds(OR)을 나타낸다. 필기점수의 OR=1.002 (1.000 - 1.004) 이므로, 필기점수 "1"점이 증가하면, 합격할 확률이 1.002배 증가함을 의미한다. ​ 학부성적은 Wald=5.872, P<0.05로 나타났으며, B=0.804로서 (+)의 값을 가지고 있다. 따라서 학부성적이 높을수록 합격확률이 높아진다. 학부성적의 OR=2.235 (1.166 - 4.282) 이므로, 학부성적 "1"점이 증가하면, 합격할 확률이 2.235배 증가함을 의미한다. ​ 병원경력은 범주형 변수로서 Wald=20.895, P<0.001로 나타났으며, 변환된 더미변수 중에서 적어도 하나는 유의한 변수가 있을 것으로 기대된다. ​ 구체적으로 병원경력(1)은 그러니까 10년 이상은 Wald=13.787, P<0.001로 나타났으며, B=1.551로서 (+)의 값을 가지고 있다. 따라서 10년 이상 경력자는 1년 미만 경력자에 비해 대학원 합격률이 높아진다. 병원경력(1)의 OR=4.718 (2.080 - 10.702)이므로, 병원경력(1)의 "1"년이 증가하면, 합격할 확률이 4.718 배 증가함을 의미한다. ​ 병원경력(2)는 그러니까 5~10년은 Wald=5.706, P<0.05로 나타났으며, B=0.876으로서 (+)의 값을 가지고 있다. 따라서 5~10년 경력자는 1년 미만 경력자에 비해 대학원 합격률이 높아진다. 병원경력(2)의 OR=2.401 (1.170 - 4.927) 이므로, 병원경력(2)의 "1"년이 증가하면, 합격할 확률이 2.401 배 증가함을 의미한다. ​ 병원경력(3)은 그러니까 1~5년은 Wald=0.289, P>0.05로 나타나, 유의하지 않은 것으로 나타났다. 그 뜻은 병원경력 1~5년 미만 경력자는 1년 미만 경력자에 비교하여 대학원 합격에 있어 영향을 미친다고 볼 수 없다. ​ 참고로 Wald=(B/S.E.)^2 의 공식으로 계산되어지며, 각 독립변수 계수의 유의성검증을 위한 통계량이다. 오즈비 또는 승산비는 Odds (OR) = P / (1-P) 의 공식으로 계산된다. ​ 최종적으로 ​ OR = ln [P/(1-P)] = -5.541 + 0.002*필기점수 + 0.804*학부성적 + 1.551*병원경력(1) + 0.876*병원경력(2) + 0.211*병원경력(3) ​ 으로 로지스틱 회귀분석의 대학원 학격여부에 대한 추정된 회귀식을 구성할 수 있다. 분류도표(estimated probability의 histogram)는 위에 있는 분류표를 0과 1의 조합으로 히스토그램을 자세히 나타낸 것이다. 0과 1은 각각 4개씩 묶음으로 되어 있다. 다시 말해 하나의 케이스는 0 또는 1의 4개 조합으로 되었있다. 따라서 0 또는 1 각각 한개씩은 0.25 케이스를 의미한다. ​ 분류도표의 기준은 0.5를 기준으로 왼쪽에 위치하면 “0 집단”…그러니까 불합격 집단에 속하게 되고, 오른쪽에 위치하면 “1 집단”…그러니까 합격 집단에 속하게 되는 것이다. 만약 완벽한 모형이라면 0.5를 기준으로 합격은 오른쪽, 불합격은 왼쪽으로 정확하게 분류가 되어야겠지만, 위의 분류표에서 분류정확도는 71.0%이므로 29%의 오차 만큼 그래프에서 다른 쪽에 분류되어 나타날 것이다. 위의 저장 옵션 선택에서 “확률”, “소속집단”, “Cook의 거리”, “표준화” 를 선택하였기 때문에 “데이터 보기” 창을 보면 “PRE_1”, “PGR_1”, “COO_1”, “ZRE_1” 변수가 자동으로 생성되면서 데이터들이 추가되어있다. ​ “PRE_1″은 케이스마다 사건의 예측발생 확률을 저장한 것으로 0.5 보다 크면 1 집단(합격), 0.5 보다 작으면 0 집단(불합격)으로 해석한다. “PGR_1″은 예측확률에 기초하여 각 케이스가 할당될 집단이 표시되는 것으로, 위의 “PRE_1″에 기초하여 어떤 집단에 속하는지 보여준다. “COO_1″은 영향력이 큰 관측치를 색출하는 기능을 나타낸 것으로 Cook의 거리 도표를 그려봄으로써 이상치 판별에 활용할 수 있다. “ZRE_1″은 잔차를 각각의 표준편차로 나누어 표준화한 것으로 표준화 잔차 도표를 그려봄으로써 이상치 판별에 활용할 수 있다. ​ 이제 이상치 판별을 위해 도표작성기를 활용하여 그래프를 그려본다. 도표를 작성하기 위해 X축에 삽입할 각 케이스별 Index 변수를 생성해야 한다. ​ 변환 ==> 변수 계산 을 차례로 클릭한다. 변수 계산 창이다. 목표변수(T): 칸에는 “Index” 라고 새로 생성될 변수명을 기입한다. ​ 그리고 함수집단(G): 항목에서 “모두”를 선택하고 밑의 “함수 및 특수변수(F): 항목에서 “$Casenum” 을 더블클릭한다. 그러면, 숫자표현식(E): 칸에 $CASENUM 함수가 삽입된다. ​ 이후 “확인” 버튼을 클릭한다. 확인을 클릭하고 “데이터 보기” 창으로 이동하면 “Index” 함수가 새롭게 형성 될 것을 볼 수 있다. Index 함수는 단순히 각 케이스별 번호를 매겨준 것이라고 생각하면 된다. ​ 이제 도표를 작성하기 위해 그래프 ==> 차트 작성기 를 차례로 클릭한다. “확인”을 클릭한다. 차트 작성기 창이 나타났다. “다음에서 선택(C): 항목의 “산점도/점도표”를 선택한다. 마우스를 “산점도/점도표”의 첫번째 그래프로 살짝 올려놓으면 “단순 산점도”라고 설명이 뜰 것이다. 이것을 위와 같이 마우스로 드래그하여 옮긴다. 그러면, 자동으로 X축과 Y축이 비어 있는 단순 산점도 그래프가 나타난다. 여기에서 X축에는 “Index”를 Y축에는 “Cook의 영향력 통계량의 로지스틱 회귀 유사형”을 삽입하고 “확인” 버튼을 클릭한다. “Cook의 영향력” 그래프가 그려졌다. 중간 지점에 약간의 이상치가 의심되는 수치들이 보여진다. ​ 이후 ZRE_1 즉 정규화된 잔차 그래프를 같은 방법으로 수행한다. X축에는 “Index”를 Y축에는 “정규화된 잔차”를 이동시킨 후 “확인” 버튼을 클릭한다. 정규화된 잔차의 그래프가 보여진다. 위의 “Cook의 영향력” 그래프에서 이상치를 확인하고 싶으면 그래프를 더블 클릭해서 활성화를 시킨다. 그래프를 더블 클릭하면 위와 같이 “도표 편집기”가 나타난다. 왼쪽 위에 있는 도구 모음에서 “데이터 레이블 모드”를 클릭한 후 판별하고자 하는 이상치를 클릭한다. 위의 산점도에서는 Index 198번을 나타내고 있다. “데이터 보기” 창에서 198번째 데이터를 찾는다. COO_1에서 보면 0.11476으로 위 아래의 다른 값들에 비해 꽤 높은 것을 확인할 수 있다. 이럴 경우 혹시 코딩이 잘못된 것인지 확인해 볼 필요가 있다. ​ 이상으로 로지스틱 회귀분석을 마무리한다. 생각보다 해석해야 될 부분이 많아서 포스팅을 완료하는데 상당한 시간이 흘렀다. 그래도 끝까지 마칠 수 있어서 다행이다. ​ 이제 다음 포스팅은 미루고 미루던 AMOS를 활용한 구조방정식을 해야 하는데 이것은 또 얼마나 걸릴지 모르겠다. 인쇄

로지스틱 회귀 분석 그래프 | 로지스틱회귀분석그래프 그리기 – 깜신의 통계 왕초보 탈출 38탄 상위 103개 답변

당신은 주제를 찾고 있습니까 “로지스틱 회귀 분석 그래프 – 로지스틱회귀분석그래프 그리기 – 깜신의 통계 왕초보 탈출 38탄“? 다음 카테고리의 웹사이트 ppa.covadoc.vn 에서 귀하의 모든 질문에 답변해 드립니다: https://ppa.covadoc.vn/blog/. 바로 아래에서 답을 찾을 수 있습니다. 작성자 김종엽 이(가) 작성한 기사에는 조회수 3,941회 및 좋아요 48개 개의 좋아요가 있습니다.

여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!

로지스틱회귀분석에 대한 분석이 끝났다면, 이제는 결과를 직관적으로 보여주는 그래프를 그려봐야겠죠. 바로 이 영상에서 R스튜디오로 그 과정을 함께 해보겠습니다.

로지스틱회귀분석에 사용되는 표준로지스틱 함수는,. y=ex1+ex. 이다. 그래프로 그려보면, df

+ 여기에 자세히 보기

Source: every-day-life.tistory.com

Date Published: 9/28/2021

View: 1678

로지스틱회귀분석 그래프 그리기 – 깜신의 통계 왕초보 탈출 38탄. Article author: jinmedi.tistory.com; Reviews from users: 4117 ⭐ Ratings; Top …

+ 여기에 표시

Source: 1111.com.vn

Date Published: 2/2/2022

View: 8748

로지스틱 회귀 분석 그래프. 0을 기준으로 꺽여진 양의 값과 꺽여진 음의 값을 가지는 그래프를 따릅니다. 참(1)과 거짓(0) 사이를 구분하는 S자 형태의 선을 그려 …

+ 여기에 자세히 보기

Source: codedragon.tistory.com

Date Published: 12/27/2022

View: 9058

로지스틱회귀분석을 통해 찾은 의미 있는 결과들을 그래프로 그려보려고 합니다. 어떻게요? 아주 예쁘고, 직관적으로요. 더구나 쉽게 말이죠. ^_____ …

+ 여기에 자세히 보기

Source: jinmedi.tistory.com

Date Published: 10/18/2021

View: 9741

1) 이진 분류 로지스틱 회귀 분석 (Binary Classification Logistic Regression) … 각 그래프에서 가는 선이 y = 1일 때, 테스트케이스가 0과 1로만 …

+ 더 읽기

Source: keykat7.blogspot.com

Date Published: 2/19/2022

View: 928

Introduction. 로지스틱 회귀분석 정리하다가 설명을 위해 로지스틱 함수 그래프를 그렸다. 처음엔 왕 간단하게 ggplot2로 해결하려다가 이왕 블로그 …

+ 자세한 내용은 여기를 클릭하십시오

Source: sorinya.tistory.com

Date Published: 12/4/2022

View: 7895

하지만 로지스틱 회귀는 선형 회귀 분석과는 다르게 종속 변수가 범주형 데이터를 대상으로 하며 입력 데이터가 주어졌을 때 해당 데이터의 결과가 특정 분류로 나뉘기 …

+ 자세한 내용은 여기를 클릭하십시오

Source: ko.wikipedia.org

Date Published: 12/29/2021

View: 4662

주제와 관련된 더 많은 사진을 참조하십시오 로지스틱회귀분석그래프 그리기 – 깜신의 통계 왕초보 탈출 38탄. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

로지스틱회귀분석그래프 그리기 – 깜신의 통계 왕초보 탈출 38탄

로지스틱회귀분석그래프 그리기 – 깜신의 통계 왕초보 탈출 38탄

TAG

관련글 관련글 더보기

인기포스트

Read More

태그

‘깜신의 통계 이야기’ Related Articles

최근 포스트

태그

Read More

Read More

태그

‘Tech시각화’ Related Articles

Read More

Read More

Read More

See more articles in the same category here: https://1111.com.vn/ko/blog/.

미리 정의되어 있는 클래스의 라벨(종류) 중 하나를 예측하는 것이다. 두 개로 분류하는 이진 분류 (Binary Classification)과 다중 분류 (Multiclass Classification)이 있다.

선형 회귀 분석과 같이 독립변수와 종속변수 간의 관계를 구체적인 함수로 나타내고 예측한다. 2가지 종류 중 하나를 택하는 방식으로 0 또는 1, true 또는 false 중에 하나를 고르는 것이다. 즉 이진 분류 로지스틱 회귀 분석은 이진 분류를 이용하여 독립변수와 종속변수 간의 관계를 파악하는 것이다. 머신러닝에서는 보통 0과 1로서 관계를 나타낸다.각 그래프에서 가는 선이 y = 1일 때, 테스트케이스가 0과 1로만 이루어진다면 (즉, y = 0, y = 1에 대해 몰려있다면), 선형 회귀는 테스트케이스에 대해 오차가 상당히 크지만, 로지스틱 회귀의 경우 그래프가 x축과 평행한 부분이 상당 부분 존재하기 때문에 선형 회귀보다 상대적으로 테스트케이스에 대한 오차가 적은 편이다.예제를 통해 자세히 알아보자.

np.random.multivariate_normal(mu, cov[ , size, check_valid, tol])

mu : 평균

cov(shape) : 분포의 공분산 행렬

size : 난수의 개수

np.eye()는 1을 대각선 형태로 갖고, 나머지는 0으로 채우는 배열이다.

np.eye(N, M=None, k=0, dtype= , order=’C’)

N : row (행) 의 수

M : column (열) 의 수

K : 대각선 위치 변경

([[1, 0, 0, 0, 0], ([[0, 1, 0, 0, 0], ([[0, 0, 0, 0, 0],

k = 0 k > 0 k < 0 즉 위의 코드에서 np.eye(2)는 2차원 배열 ([1, 0], [0, 1]) 을 의미한다. 위의 코드로 생성한 data_y0는 아래와 같은 배열 형태를 보인다. 이 데이터를 Pandas Dataframe을 이용하여 dataframe 형태로 출력해보면 아래와 같이 나온다. 이 처럼 Pandas Dataframe은 배열 데이터를 쉽게 변경하고 다룰 수 있어서 데이터 처리에 많이 쓰는 라이브러리이다. import tensorflow as tf import numpy as np from numpy.random import multivariate_normal, permutation import pandas as pd from pandas import DataFrame from matplotlib import pyplot as plt # Y_0 = 20 Y_1 = 15 learningRate = 0.01 totalStep = 20001 np . random . seed( 321 ) dataNumber_y0 = Y_0 mu_y0 = [ 10 , 11 ] variance_y0 = 20 data_y0 = multivariate_normal(mu_y0, np . eye( 2 ) * variance_y0, dataNumber_y0) df_y0 = DataFrame(data_y0, columns = [ ‘x1’ , ‘x2’ ]) df_y0[ ‘y’ ] = 0 dataNumber_y1 = Y_1 mu_y1 = [ 18 , 20 ] variance_y1 = 22 data1 = multivariate_normal(mu_y1, np . eye( 2 ) * variance_y1, dataNumber_y1) df_y1 = DataFrame(data1, columns = [ ‘x1’ , ‘x2’ ]) df_y1[ ‘y’ ] = 1 # for i in data_y0: # print(data_y0) # for i in df_y0: # print(df_y0) # df = pd . concat([df_y0, df_y1], ignore_index = True ) df_totalTrainData = df . reindex(permutation(df . index)) . reset_index(drop = True ) print( “===== DATA =====>” ) print(df_totalTrainData) print( “df_totalTrainData Shape : {}

” . format(df_totalTrainData . shape)) xTrainData = df_totalTrainData[[ ‘x1’ , ‘x2’ ]] . as_matrix() yTrainData_temp = df_totalTrainData[ ‘y’ ] . as_matrix() print( “xTrainData shape : {}” . format(xTrainData . shape)) print( “yTrainData shape : {}” . format(yTrainData_temp . shape)) yTrainData = yTrainData_temp . reshape([len(df_totalTrainData), 1 ]) print( “yTrainData reshape : {}” . format(yTrainData . shape))

import tensorflow as tf import numpy as np from numpy.random import multivariate_normal, permutation import pandas as pd from pandas import DataFrame from matplotlib import pyplot as plt # Y_0 = 20 Y_1 = 15 learningRate = 0.01 totalStep = 20001 np . random . seed( 321 ) dataNumber_y0 = Y_0 mu_y0 = [ 10 , 11 ] variance_y0 = 20 data_y0 = multivariate_normal(mu_y0, np . eye( 2 ) * variance_y0, dataNumber_y0) df_y0 = DataFrame(data_y0, columns = [ ‘x1’ , ‘x2’ ]) df_y0[ ‘y’ ] = 0 dataNumber_y1 = Y_1 mu_y1 = [ 18 , 20 ] variance_y1 = 22 data1 = multivariate_normal(mu_y1, np . eye( 2 ) * variance_y1, dataNumber_y1) df_y1 = DataFrame(data1, columns = [ ‘x1’ , ‘x2’ ]) df_y1[ ‘y’ ] = 1 # for i in data_y0: # print(data_y0) # for i in df_y0: # print(df_y0) # df = pd . concat([df_y0, df_y1], ignore_index = True ) df_totalTrainData = df . reindex(permutation(df . index)) . reset_index(drop = True ) print( “===== DATA =====>” ) print(df_totalTrainData) print( “df_totalTrainData Shape : {}

” . format(df_totalTrainData . shape)) xTrainData = df_totalTrainData[[ ‘x1’ , ‘x2’ ]] . values yTrainData_temp = df_totalTrainData[ ‘y’ ] . values print( “xTrainData shape : {}” . format(xTrainData . shape)) print( “yTrainData shape : {}” . format(yTrainData_temp . shape)) yTrainData = yTrainData_temp . reshape([len(df_totalTrainData), 1 ]) print( “yTrainData reshape : {}” . format(yTrainData . shape)) # X = tf . placeholder(tf . float32, shape = [ None , 2 ]) Y = tf . placeholder(tf . float32, shape = [ None , 1 ]) W = tf . Variable(tf . zeros([ 2 , 1 ]), name = ‘weight’ ) b = tf . Variable(tf . zeros([ 1 ]), name = ‘bias’ )

Pandas의 concat으로 확률이 0, 1인 데이터를 하나의 Dataframe으로 합쳐준다. 이 때 데이터는 0, 1의 순서에 따라 합쳐지게 되므로 reindex()를 이용해 순서에 상관없이 재정렬되도록 해준다.이제 df_totalTrainData에 재정렬된 데이터가 들어가게 된다. 이 Dataframe을 리스트 형식으로 변환해주자. Pandas의 as_matrix()를 이용해 x1, x2의 데이터는 xTrainData에, y의 데이터는 yTrainData_temp에 저장해준다. 이 결과 xTrainData는 (35, 2)의 shape를, yTrainData는 (35, )의 shape를 가진다. 뒤에 학습 모델 그래프를 구성할 때 행렬 곱셈을 할 때 shape가 다를 경우 계산 수식에서 오류가 발생할 수 있으므로 yTrainData를 reshape()로 (35, 1)로 변경해준다. 이제 출력해보자.지긋지긋한 FutureWarning… .as_matrix() 대신 .values를 사용하란다. 바꿔주고 다시 출력해보자.위 처럼 데이터가 0, 1의 순서에 상관없이 정렬이 되게 출력이 될 것이다. 이제 학습 데이터 준비를 완료했다. 모델 생성을 위한 변수를 초기화하자.x1, x2 데이터는 X 플레이스홀더에, y 데이터는 Y 플레이스홀더에 들어갈 것이다. 이 때 shape에 [35, 2] 같이 모양을 정해줄 수도 있지만, 데이터 수를 정확히 모른다면 None으로 지정해야 계산할 때 오류가 발생하지 않는다.weight와 bias는 각각 tf.zeros()를 이용해서 위와 같은 크기의 배열로 초기화한 변수로 선언해준다.다음엔 학습 모델 그래프를 만들어줄 차례지만, 설명할 내용이 많기 때문에 다음에 이어서 쓰도록 하겠다.

로지스틱회귀분석 (R)

logistic.Rdata 0.04MB

이전까지는 주로 선형회귀분석방법에 대해 알아보았다. 선형회귀분석법은 다른 분석방법을 배우기 위한 기본과정이기 때문에 많은 시간을 할애해서 배울 필요성이 있기는 하지만, 실제로 논문작성에서 그리 많이 사용되는 방법은 아니다. 하지만 이번에 다룰 로지스틱회귀분석법은 극단적으로 말하자면 관찰연구의 대부분을 차지하는 방법이다. 아마 대부분의 임상의사는 로지스틱회귀분석+생존분석으로 평생 욹어 먹을 가능성이 크다. 그런 만큼 세심히 알아보자.

1. 로지스틱회귀분석의 기본원리

원래 학문적 배경이 수학이나 통계 쪽이 아니라서 숫자 나오면 두통이 발생하기 시작한다. 하지만 그래도 이해를 위해 어쩔 수 없이 알아야 하는 과정이 존재한다. 머리 덜 아프게 그리스식 알파벳은 사용 않고 최대한 쉽게 설명해 보려 한다.

로지스틱 회귀분석은 확률을 다루는 분석법이다. 나이가 증가함에 따라 당뇨 확률이 어떻게 변하는가? 허리둘레와 당뇨 확률의 관계는 어떤가?… 등등… yes/no를 비율을 다루는 분석법이다.

확률을 다룸에 있어서,

1) 대개 yes는 1, no는 0 으로 처리한다.

2) 그렇게 되면 어느 시점에서의 확률은 평균치와 동일해진다. (BMI 30인 사람 10명 중 당뇨환자가 5명이었다면 당뇨 확률은 (0*5+1*5)/2=0.5, 즉 50%이다.)

3) 확률은 최소치가 0이며, 최대치는 1이다. (0~1 사이 범위를 벗어날 수 없다.)

4) 3)에 의해 확률은 선형일 수 없다. (왜냐하면 BMI와 당뇨 확률이 선형이라면, BMI가 아주 낮은 경우 당뇨확률은 -가 되어야 한다. 마찬가지로 BMI가 아주 높은 경우 당뇨확률은 1을 넘어야 한다.–> 그런 수치가 나오는 BMI가 현실성이 있느냐 없느냐와는 다른 얘기다. 선형관계인 경우 무조건 확률이 0~1 범위를 벗어날 수 있다는 것 자체가 중요하다.)

이런 문제를 해결하기 위해 사용된 방법 중 하나가 로지스틱 곡선이다.

로지스틱회귀분석에 사용되는 표준로지스틱 함수는,

$$y=\frac{e^x}{1+e^x}$$

이다. 그래프로 그려보면,

df <- data.frame(x=seq(-6,6,length.out = 100)) df$y <- exp(df$x)/(1+exp(df$x)) with(df,plot(x,y,type = "l")) 위와 같은 그래프가 그려진다. x가 -∞ 이어도 y는 0 미만으로 내려가지 않으며, x가 ∞여도 y는 1을 넘지 않는다. 흔히 말하는 시그모이드 형태의 대표적인 곡선이다. 하지만 이런 형태의 곡선이 여럿 존재하는데 로지스틱 곡선이 최강자가 된 이유는 계산이 쉽기 때문이다. $$odd=\frac{p}{1-p}$$ $$log(odd)=logit=log(\frac{p}{1-p})$$ $$log(\frac{y}{1-y})=x$$ with(df,plot(x,log(y/(1-y)),type="l")) 아주 심플해졌다. 로지스틱회귀분석이 많이 사용되는 이유는, 확률이 로지스틱 곡선을 만족한다고 가정하면, 확률의 로그오즈값(로짓값)을 선형회귀방정식으로 구할 수 있다는 것이다. 한 단계 더 진행해 보자. library(dplyr) library(ggplot2) dm %>% ggplot(aes(floor(HbA1c*2)/2,DM))+stat_summary(fun.y = mean, geom = “line”)+theme_classic(base_size = 12)

당화혈색소수치에 따른 당뇨 확률의 그래프이다(floor는 소수점 아래를 버리라는 명령어이다. floor(x*2)/2는 무엇을 목적으로 한 명령어 일까? 임의의 숫자로 연습해보자.). HbA1c를 0.5 간격으로 묶었음에도 불구하고 그래프 특히 후반부 가 지저분하다. HbA1c 6.5 이상이면 당뇨인데… 진단 안 받은 채로 당뇨 아니라고 우기는 사람들의 역할 + HbA1c의 분포 자체가 right shifted 되어 있어서 9 이상인 사람의 절대수가 그리 많지 않다는 점 등이 복합적으로 작용한 결과이다.

로지스틱 회귀분석을 해 보면,

m1 <- glm(DM~HbA1c, data=dm, family="binomial") summary(m1) 이 결과를 해석해보면, $$log(\frac{p}{1-p})=2.08*HbA1c-14.96$$ $$\frac{p}{1-p}=e^{2.08*HbA1c-14.96}$$ 이 된다. 이는 HbA1c 가 1 증가하면 오즈값은 exp(2.08)=8배 증가한다는 것을 보여준다(HbA1c의 분포는 Right shifted 되어 있다. 여기서는 이해를 쉽게 하기 위해 그냥 분석했지만 제대로 하려면 정규분포화 시킨 후 분석해야 한다.). round(cbind(exp(coef(m1)),exp(confint(m1))),3) df <- data.frame(HbA1c=seq(4,14,length.out = 100)) df$pred <- predict(m1, newdata = df, type = "response") dm %>% ggplot(aes(floor(HbA1c*2)/2,DM))+stat_summary(fun.y = mean, geom = “line”)+geom_line(data=df,aes(HbA1c,pred),lty=2,lwd=1,col=”red”)+theme_classic(base_size = 12)

로지스틱회귀분석이 어떤 방식으로 진행되는지 대충 감이 잡히는지?

그런데… 이 결과를 좋다고 받아들이기에는 2가지 문제가 있다.

1) HbA1c와 로그 오즈(당뇨)의 관계는 진짜로 선형인가? 선형회귀분석때는 그래프 그려서 선형 확인했었는데… 확률은 그래프 그리기 만만치 않다. 아마 선형 아닐 거다. 자연적인 관계에서 완전 선형은 그리 쉽지 않다.

2) 확률의 천장이 진짜 1 맞는가? 바닥은 0 맞아 보이는데, 천장은 내 눈에는 1보다 낮은 수치로 보인다.

이 문제를 해결하기 위한 방법은,

1) 웬만하면 로지스틱 회귀분석에서 독립변수로 연속 변수는 사용하지 않는다. 전부 범주형 변수로 바꿔 사용하면 선형성 문제를 벗어날 수 있다. 아니면 일반 가법 모형(Generalized Additive Model) 쓰는 방법도 있기는 한데…. 아마 의학계열에서는 리뷰어 심사 통과하기 힘들 거다(틀렸다는 얘기는 아니다. 그 분야에서 흔히 쓰이지 않는 분석법을 이용하면 리뷰어에게 받아들여질 가능성은 0으로 수렴한다. 그럼에도 불구하고 꼭 필요하다면 우선 진행한 후 이 논문 저 논문에 받아들여질 때까지 계속 투고하는 방법밖에는 없다.).

2) 연구대상 설정 단계부터 주의한다. 다른 말로 하면 당뇨 진단 유무에 대해 연구하고 싶으면 연구 대상자가 당뇨의 유병률이 어느 정도 이상 되는 집단이 되도록 설정하라는 얘기다. 나이를 중년 이후로 한정한다던가… 위의 예제는 HbA1c 6.5 이상이면 다른 거 필요 없이 당뇨이다. 따라서 후반부 확률은 1에 가까울 것이 예측되는 상황이었다. 그런데도 실제로 보니 후반부도 1보다 낮아 보인다. 납득하기 힘든가?

m2 <- nls(DM~SSlogis(input = HbA1c,Asym = Asym,xmid = xmid,scal = scal),data=dm) summary(m2) df$pred2 <- predict(m2, newdata = df) dm %>% ggplot(aes(floor(HbA1c*2)/2,DM))+stat_summary(fun.y = mean, geom = “line”) +geom_line(data=df,aes(HbA1c,pred),lty=2,lwd=1,col=”red”) +geom_line(data=df,aes(HbA1c,pred2),lwd=1,col=”blue”)+theme_classic(base_size = 12)

오늘 주제도 아니면서 앞으로도 볼일 거의 없을 “비선형 회귀분석” 결과이다. 파란 실선이 비선형회귀분석 결과인데 천장 높이는 0.76이다(회귀식 결과에서 Asym). 눈으로 보니 어떤가? 왠지 붉은 선보다 파란선이 더 그럴듯해 보이지 않은가? 로지스틱 회귀분석은 확률을 무조건 0~1 사이에 분포시킨다. 이번 분석은 천장이 1에 가까우니 문제없지만 만약 천장이 0.5보다 낮으면… 사실 이런 문제 신경 안 써도 큰 문제는 없다. 하지만 n 수 끌어 모으려고 아토피 연구에 80대 노인까지 넣는다던가… 흡연 연구에 초등학생까지 집어넣는 일은 하지 말자. n수 늘리려다 오히려 연구가 망가지는 경우가 있다.

2. 결과변수(Y) 설정

그럼 이제 본 분석으로 넘어가 보자. 분석법으로 로지스틱 회귀분석을 사용하는 경우는 1) 처음부터 결과변수가 이 분형 변수일 때와, 2) 결과변수가 연속 변수나 그 비슷한 형태이었는데 필요에 의해 이분형 변수로 나눈 경우 두 가지 경우가 있다. 첨부파일 중 dep 데이터를 열어보자.

library(car) library(dplyr) library(ggplot2) head(dep) summary(dep)

dep데이터는 65세 이상 노인의 우울증 점수(PHQ-9)를 보기 위한 가상의 데이터이다.

연구의 목적(study question)이 “과연 직업 여부는 독거노인의 우울증 점수에 영향을 미치는가?”라고 한다면 원인 변수(X)는 직업 유무가 될 것이며, 결과변수(Y)는 우울증 점수가 될 것이다(두 명의 주인공). 그 외 다른 변수들은 보정변수(들러리)로 처리하면 된다. 당연한 얘기겠지만 주인공에게는 좀 더 따뜻한 관심을 가져야 한다. 직업 유무는 occu 변수(1:있음, 0:없음)이며, 우울증 점수는 PHQ변수이다. 직업유무는 이분형 변수이니 우선은 넘어가고 PHQ-9에 대해 먼저 살펴보자.

설문지는 9 항목으로 구성되어 있으며, 0~3까지 항목 중 하나를 선택하도록 되어 있다. 그러면 점수를 합산해서 아래의 표에 따라 해석하도록 되어 있다 (1~4: minimal, 5~9:mild, 10~14:moderate, 15~19:moderately severe, 20~27: severe)

다시 자료로 돌아와서 PHQ-9 점수의 분포를 살펴보면,

table(dep$PHQ9) hist(dep$PHQ9)

전형적인 right-shift 되어있는 자료이다. 우선 예로 내려오는 말에 따라 로그 변환(0이 포함되어 있으니 정확히는 log(PHQ+1))해보면,

좀 even 하게 펼쳐지긴 했지만 아직도 right-shift 되어 있는 상태이다. 더욱이 이 문제는 0점이 대부분이어서 생긴 문제이기 때문에 변수 변환을 한다고 해결되지 않는다. 변수변환 후 연속 변수로 처리하는 것은 문제가 있으니 다음 단계는,

1) 최솟값 그리고 최빈값이 0이며, 정수로 된 값이니 0-inflated poisson이나 0-inflated negative binomial 분포를 가정하고 분석하는 법

2) 설문 해석 법대로 none, mild, moderate, moderately severe, severe로 분리해서 순서형 로지스틱 분석(ordered logistic regression) 시행

3) 두 단계로 나눠 로지스틱 회귀분석 시행

이 될 것이다.

자료는 단순하게 만들수록 안에 담긴 정보를 잃는다. 따라서 정보의 질은 1>2>3의 순서로 볼 수 있다. 근데 문제는 1번과 2번 방법은 분석도 어렵고 해석은 더 어렵다는 점이다. 개인적으로는 분석 및 해석이 용이한 로지스틱 회귀분석을 이용해서 진행하고, 만약 n수가 적어서… 등의 이유로 더 많은 정보가 필요하다면(통계적으로 유의한 결과를 얻는데 실패한다면) 그때 다른 방법을 고려해 볼 수 있을 것이다.

자 그럼 로지스틱 회귀분석으로 결정 났으니, 어딘가를 절단점으로 잘라야 한다. 절단점을 결정함에 있어서 고려할 사항은 1) 임상적 판단과 2) 통계적 판단이다.

1) 임상적 판단: 절단점은 임상적으로 의미를 지녀야 한다. 다른 말로 하면 절단한 이유가 합당해야 한다. 이분형 변수를 최대한 효율적으로 분석하기 위해서는 절단점이 중심값(median)인 경우가 가장 좋다. PHQ-9의 median은 2점인데, 2점은 임상적으로 아무 의미가 없다(PHQ-9 interpretation table 참조). 0/1 기준으로 자르면 우울증 유무로 나눌 수 있고, 9/10 기준으로 자르면 상담 및 약물치료가 필요한 우울증으로 나눌 수 있다. 임상적 의미를 가진다는 말은 이런 의미이다.

2) 통계적 판단: 절단한 후의 대상자 수는 50/50이 되는 것이 가장 이상적이다. 흔히 연구 대상자 수를 언급할 때 무조건 n수가 많으면 좋은 것으로 착각하는 경향이 있다. 때문에 아토피 연구에 노인을 포함하는 만행을 저지르는 것이다. 대상자가 만약 10만 명이라도 연구 대상자의 결과변수 분포가 99999/1 명이라면 이건 유의할 수 없는 연구이다.

연구 대상자가 얼마나 돼야 하나의 명확한 정의는 존재하지 않지만, 아무리 관찰연구라도 100명은 넘기는 것이 좋다. 예전에 차트 찾아 논문 낼 때는 50명만 넘으면 어떻게 해 보려 했었는데… 그래도 SCI급 논문을 노린다면 100명이 안되면 좀… 많을수록 좋기는 한데 최소 100은 넘기게 해 보자. 그다음은 실질적인 연구대상자이다. 결과변수 분포가 98/2명이면 실질적 대상자는 4명(2+2)이다. 물론 진짜 대상자 수가 4명인 연구에 비하면 +alpha가 존재하지만 4명으로 이해하는 것이 좋다(이해 안 가고 납득할 수도 없으면 effect size에 대해 찾아볼 것). 대상자가 50/50이어야 비로소 100명짜리 연구가 되는 것이다.

결과변수 분포의 경험적인 하한 값은 30%이다. 위에서 천장이 어딘지 본 기억이 나는가? 로지스틱 회귀는 확률이 무조건 0과 1 사이에 분포한다고 가정한 후 진행한다. 따라서 확률이 낮을 때는 0에 가까워야 하며, 높을 때는 1에 가까워야 한다. 경험적으로 결과변수의 분포 하한 값이 30%가 안된다면 천장이 1에 비해 결과에 영향을 줄 정도로 많이 낮을 가능성이 있다. 그 부분을 염두에 두고 진행해야 한다.

이런 두 가지 측면을 고려한다면 절단점으로 고려 가능한 부분은 0/1, 4/5, 9/10 셋 중 하나가 될 것이다.

만약 절단점을 0/1로 한다면 대상자의 분포는 41.46/58.54, 실질적 대상자수는 1190명(595*2)이 될 것이다. 절단점이 4/5인 경우는 대상자의 분포는 77.07/22.93, 실질적 대상자수는 658명(329*2), 9/10인 경우 대상자의 분포는 90.73/9.27, 실질적 대상자수는 266명(133*2)이다. 순수 통계적인 측면에서는 절단점 0/1이 가장 좋은데, 임상적인 의미를 고려한다면 4/5도 그리 나쁘지 않다(PHQ-9를 해석하는 방법에 따라 0~4를 하나로 묶기도 한다.). 임상적인 의미는 9/10이 가장 좋지만 9/10의 경우 실질적 대상자가 상당히 많이 줄어들게 된다. 9/10이 꼭 필요하다면 대상자를 더욱 늘리는 방법 (혹은 아예 우울증 환자 집단과 같은 우울증 유병률이 높은 집단을 대상으로 연구 대상 자체를 바꾸는 방법)을 생각해 봐야 한다. 이런저런 측면을 고려해서 이번 예제에서는 4/5를 절단점으로 하기로 했다(어디까지나 이건 내 주관적인 판단이다. 임상적 의미와 통계적 의미의 판단은 연구자 스스로 판단하는 것이 좋다.).

dep$dep <- ifelse(dep$PHQ>=5, 1, 0)

3. 탐색적 자료 분석

다음 단계는 탐색적 자료 분석이다. 로지스틱 회귀분석에서 탐색적 자료 분석은 아무래도 선형 회귀분석 때에 비해 제한적이다. 우선 개별 변수의 분석은 선형 회귀 때와 같으니 생략하고 두 변수의 분석을 살펴보자.

xtabs(~dep+occu, data=dep) round(prop.table(xtabs(~dep+occu, data=dep))*100,2) chisq.test(xtabs(~dep+occu, data=dep))

로지스틱 회귀분석은 결과변수(Y)가 이분형 변수이기 때문에 독립변수가 연속 변수인 경우 t-test, 범주형 변수인 경우 카이스퀘어검정을 사용해서 table 1을 작성하게 된다. t-test는 이전에 다뤘으니 넘어가고 카이스퀘어 검정은 위와 같이 하면 된다. 개인적으로 table에 넣을 내용은 table() 명령어보단 xtab() 명령어를 주로 사용한다. xtab()은 행과 열 값을 보여줘서 헛갈리지 않도록 해 준다. 통계 결과는 chisq.test()를 이용해서 확인한다. 가끔 보면 X가 순서를 가진 범주형 변수인 경우 p for trend 결과를 대신 제시하기도 하는데, 이건 X를 연속형 변수로 처리하겠다는 의미이다. 만약 X를 연속형 변수로 처리할 마음이 없다면 p for trend는 필요 없는 사족이다. 마지막으로 이런 식으로 테이블 만들고 카이 스퀘어 검정하는 게 귀찮고 짜증 나는 경우 gmodels package 같은 것을 이용해 볼 수 있다. 노가다는 줄지만… 이거 저거 하다 보면 로드된 패키지가 많은 경우 엉키거나(에러가 나거나) 짜증 날 수(느려질 수) 있다.

단변수 분석은 glm()을 이용해서 시행한다.

m <- glm(dep~occu, data=dep, family = "binomial") summary(m) round(exp(cbind(coef(m),confint(m))),3) 카이스퀘어 검정 결과와 마찬가지로 단변수 분석에서도 occu 변수에 따른 depression은 유의하다. 위에서도 언급했듯이 로지스틱 회귀분석상의 estimate는 log odds 값이기 때문에 exponential 값이 우리가 원하는 오즈비 값이다. 위 내용을 해석해보면 직업이 있을 경우 우울증이 있을 오즈비는 0.714(95% CI: 0.542-0.934)이다. 혹은 직업이 있을 경우 우울할 가능성이 29% 낮다 (1-0.71). 다음은 age 변수이다. table(dep$age) hist(dep$age) dep$age_cate <- factor(floor(dep$age/5)*5) table(dep$age_cate) 연속 변수 형태인데 어째 65세와 80세만 많다. 히스토그램 분포상으로는 left-shift? even? 하게 분포되어있기는 한데... 한 수치만 많은 경우 이걸 정규화시킬 필요는 없다. 나머지 수치들은 고르게 분포하고 있는데 수치 하나를 바로잡겠다고 정규화시키려다가 오히려 더 망가지기 때문이다. 거기에 age변수는 주인공인 X나 Y가 아니라 엑스트라이다. 큰 문제없으면... 거기에 주 분석법이 로지스틱 회귀 분석이므로, 연속형 변수는 웬만하면 범주화하는 게 맞다. 그래서 5씩 끊어서 age_cate 변수를 만들었다. m <- glm(dep~age_cate, data=dep, family = "binomial") summary(m) round(exp(cbind(coef(m),confint(m))),3) 나이는 유의하지 않다. 독거 여부의 경우를 보면, m <- glm(dep~solo,data=dep, family="binomial") summary(m) round(exp(cbind(coef(m),confint(m))),3) 독거 상태인 경우 (solo=1) 유의하게 우울증일 확률이 증가한다. 위험도가 1.391배 높다 or 39.1% 높다.(원래는 오즈비로 표현하는 게 맞는 표현이다. 그런데 유병률이 낮은 경우 오즈비는 상대위험도와 비슷해지며, 해석도 상대위험도와 비슷하게 한다. 논문 표현에서도 계속 오즈비 어쩌고 하는 것보다 통상 위험도가 얼마 높고 낮다는 표현이 통상적으로 사용된다. 하지만 어디까지나 로지스틱 회귀분석의 결과는 오즈비이다.) 사족으로, 인과관계의 해석에는 주의해야 한다. 지금 이 분석 결과는 단면 연구이기 때문에 인과관계를 포함하고 있지 않다. 우울하기 때문에 독거 상태가 된 건지, 독거 상태라서 우울한 건지 알 수 없다는 얘기다. 다이아몬드 예제에서도 보았듯이 이런 식으로 영향력이 있는 변수는 다른 변수의 결과를 일그러 뜨릴 수 있다. 다변수 분석 및 상호작용을 잘 살펴봐야 한다. 월수입을 보면, hist(dep$log_income) 가구 월소득에 로그 씌우면 정규분포 비스름해진다. 최저 월소득도 기초연금 때문인지 17만 원이라서 로그 씌우는데 아무 문제없었고, 왠지 이 정도로 예쁜 모양으로 만들어지면 범주화시키지 않고 연속 변수 상태로 분석해보고 싶은 충동이 생긴다.^^ library(mgcv) m <- gam(dep~s(log_income),data=dep,family="binomial" summary(m) plot(m) log_income을 연속 변수로 처리하기 위해서는 우선 dep의 확률과 log_income이 선형 관계를 지니는지 확인이 필요하다. 그리고 앞에서도 언급했듯이 어떤 확률이 선형인지 확인하는 것은 상당히 귀찮은 일이다. 이걸 편안하게 해 주는 것이 일반화 가법 모형이다(Generalized Additive Model). 모형을 보면 s(log_income)이라는 항목이 있는데, 이건 log_income을 곡선(spline)으로 처리해 주라는 표현이다. 그리고 곡선으로 처리했음에도 불구하고 위와 같이 직선 모양이 나오면... 이건 직선이라는 얘기이다. 문제는 이 결과를 그대로 제시할 수 있는가이다. 의학계열 논문에서 아직까지는 일반화 가법 모형은 흔히 쓰이는 통계기법은 아니다. 따라서 일반화 가법 모형 결과를 논문에 그대로 제시하거나, 선형성을 확인했으니 로지스틱 회귀분석에 연속 변수 형태로 사용하는 데에는 문제가 발생한다. 따라서 가장 안전한 방법은 월소득도 범주화시켜서 분석하는 것이다(리뷰어 설득이 그리 쉬운 일은 아니다). 하지만 여기서는 선형성을 확인했으니 연속 변수 형태로 다변수 분석으로 가보자. 하여간 봐야 할 변수도 남았고 상호작용도 봐야 하는데... 왠지 귀찮으니 봤다 치고 다변수 분석으로 넘어가 보자. (다만 women*log_income, solo*log_income 두 상호작용에 대해서는 직접 확인해보자.) 4. 다변수 분석 m1 <- glm(dep~women+age_cate+factor(edu)+solo+occu+log_income,data=dep,family="binomial") summary(m1) round(exp(cbind(coef(m1),confint(m1))),3) 다변수 분석 상 성별과 월수입만 유의했고, 그 외 이번 연구의 목표인 직업 유무는 유의하지 않았다. 앞에서 언급했던 women*log_income과 solo*log_income 두 상호작용은 나름 타당성을 가지고 있으나 다분석 결과에서 통계적 유의성을 보이지 않아 제외하였다. 로지스틱 회귀분석에서는 다변수 분석 후에 잔차검정의 중요성이 크지 않다. 아무래도 결과변수가 0/1로 한정되어 있어서 하나의 관측치가 전체적인 모형을 뒤틀 위험성이 크지 않아 그런것으로 보인다. 잔차검정은 넘어가더라도 다중공선성에 대해서는 한 번 확인하고 넘어가는 것이 좋겠다. 위의 vif 결과를 보면 튀는 수치 없이 전부 안정적임을 알 수 있다. 여태까지 로지스틱회귀분석에 대해 알아보았다. 로지스틱 회귀분석은 일반적으로 잔차 검정 및 이상치 검사의 필요성이 그리 크지 않아 초보자들도 무리 없이 분석 가능하다고 알려져 있지만, 그래도 신경 써야 할 부분이 존재하는 것도 사실이다. 이런 부분을 신경 써 준다면 좋은 결과를 얻을 수 있을 것이다. Take Home Message 1. 결과변수의 비율을 신경 쓰자. 2. 연속 변수는 되도록 범주화시켜서 분석

로지스틱 회귀 분석 그래프

반응형

로지스틱 회귀 분석 그래프

0을 기준으로 꺽여진 양의 값과 꺽여진 음의 값을 가지는 그래프를 따릅니다.

참(1)과 거짓(0) 사이를 구분하는 S자 형태의 선을 그려줍니다.

약물 치료 후 환자의 반응 예측

약물 치료에 대한 환자의 반응(종속 변수)을 예측하고자 할 때,

약물 치료 적용 후 환자가 살아남은 경우 1로, 살아남지 못한 경우를 0으로 표현할 수 있습니다.

반응형

로지스틱회귀분석 그래프 그리기 – 깜신의 통계 왕초보 탈출 38탄

안녕하세요.

깜신 김종엽입니다.

35,36,37탄에 이어 이번 시간에도 로지스틱 이야기를 좀 더 하려고 합니다.

35탄에서는 로지스틱회귀분석의 개념에 대해서 알아봤고

36,37탄에서는 분석 방법을 실제로 따라해봤으니,

이번 포스팅에서는

로지스틱회귀분석을 통해 찾은 의미 있는 결과들을 그래프로 그려보려고 합니다.

어떻게요?

아주 예쁘고, 직관적으로요.

더구나 쉽게 말이죠. ^_____^

이번 유튜브 영상을 찬찬히 보면서 따라하시면

여러분도 이제 로지스틱회귀분석을 활용한 논문 작성에 뛰어들 준비를 모두 마치게 됩니다.

화이팅입니다.

아자아자!!

R로 로지스틱 함수 그래프 그리기

0. Introduction

로지스틱 회귀분석 정리하다가 설명을 위해 로지스틱 함수 그래프를 그렸다. 처음엔 왕 간단하게 ggplot2로 해결하려다가 이왕 블로그에 올리는 거니 쪼금 예쁘게 그려야지 하다가 좀 길어졌다. 고로 어떻게 쪼금이나마 예쁘게 그렸는지를 보여주려고 한다!

아래는 단계별로 그래프가 어떻게 변화했는지를 보여준다.

왼쪽 -> 오른쪽

사실 큰 차이는 없고 ㅎㅎ 그냥 어떻게하면 그래프가 좀 깔끔해질까를 고민하다가 만든거다. 아무것도 안하고 그냥 고대로 쓰면 맨 왼쪽이고, 조금 신경쓰면 오른쪽이니 각자 성향껏 그래프를 맘대로 만져보자는 취지!

1. ggplot2의 원리

왜 다짜고짜 ggplot의 원리를 알아보자고 하냐면 ‘R은 시각화가 빵빵해 = ggplot2을 써!’ 나 다름없기 때문이다. 근데 또 막상 ggplot2을 쓰려고 하면 이것저것 기능들이 엄청 많은데, 이걸 다 알아야하나 싶고…하다가 ggplot2의 원리를 한번 이해하고 나니까 사용하기가 심적으로(?) 편해졌다고 해야하나…(먼산) 그래서 첫글인만큼 먼저 설명하고 넘어가려 한다.

“ggplot2은 layer구조다.”

설명끝 포토샵처럼 층을 하나둘씩 쌓아간다고 생각하면 된다. 왜 쓰다보면 ggplot(~) + geom_line() + $ \cdots $ 하면서 쌓아가지 않는가. 여기서 +가 바로 층을 쌓는다는 개념이다.

한번에 데이터도 세팅하고, 예쁘게 꾸미고, label도 바꾸고, legend도 바꾸고, theme도 기본 grey말고 흰색으로 바꾸고, 이왕 넣을꺼 smooth도 넣어서 통계적으로 좀 있어보이게 해보고

$$ \vdots $$

하다가 머리만 아프고 어떻게 쓸지 막막해 진다는거! 순차적으로 단계를 나누고 접근하면 좀 더 다루기 편해지는게 ggplot2라고 (나는) 생각한다

2. 로지스틱 함수 그리기

위 원리를 활용해서 크게 3단계로 나눠서 접근해보았다.

0. 그 전에 데이터 세팅부터 하자

x <- seq(-10,10,0.01) y <- 1/(1+exp(-x)) #요게 로지스틱 함수식 df <- data.frame(y,x) df 첫줄의 seq함수는 자세하게는 seq(from = -10, to = 10, by=0.01)으로 -10부터 10까지 0.01씩 증가하는 수열을 뽑아내는 함수다. 즉, x값으로 해당 수열값을 넣는다는 의미! 1. 기본 틀 짜기(데이터 넣기, 원하는 그래프 얹기) base <- ggplot(df, aes(x=x, y=y)) # 사용할 데이터는 df이며, x,y를 축으로 하는 그래프를 그린다 + geom_line(color = "blue") # 그래프의 선 색은 'blue'로 설정한다 + xlim(-5,5) + ylim(-1.3,1.3) # 각 x, y축의 범위를 설정한다. + geom_hline(yintercept = 0) + geom_vline(xintercept = 0) # 각 x(y=0), y(x=0)축을 그래프에 표시한다. ggplot()안에 aes는 aesthetic의 줄임말로 그래프에 추가할 미적인 영역을 설정하는 구역이다. 가령 x축으로는 df의 x라는 열을, y축으로는 df의 y라는 열을 쓰겠다는 걸 정하고 싶을 때 쓰인다. 선 색은 파랑이로 넣었고, x축 y축 범위를 지정하고 싶어서 xlim, ylim을 썼다. 또 x축이랑 y축을 찐하게 표현하고 싶어서geom_hline, geom_vline을 사용해서 선을 그었다. 2. 라벨 수정하기 labelled <- base + labs(x="z" ,y = "g(z)", title = "logistic function") labs를 쓰면 한번에 라벨들을 붙일 수 있어서 좋다 여기서는 따로 legend가 필요없어서 안 썼다. 나중에 legend 쓰게될 때 다뤄보는 걸루! 3. theme 수정하기 styled <- labelled + theme_light() + theme(plot.title = element_text(face = "bold", size = 11, hjust = 0.5)) default theme은 theme_grey다 theme 종류는 딥따 많으니 원하는 걸 선택해서 쓰면 된다. 개인적으로 깔끔한 거 좋아하는 사람들은 theme_bw, theme_light, theme_classic 추천한다. 왼쪽부터 차례대로 bw, light, classic이다. 나는 가운데꺼로 선택했다 일단 첫번째 시각화 글은 이걸로 끝이다. 모두 예쁜 그래프 그려요! 얍!

[AI] day5. 로지스틱 회귀 (Logistic Regression)

미리 정의되어 있는 클래스의 라벨(종류) 중 하나를 예측하는 것이다. 두 개로 분류하는 이진 분류 (Binary Classification)과 다중 분류 (Multiclass Classification)이 있다.

선형 회귀 분석과 같이 독립변수와 종속변수 간의 관계를 구체적인 함수로 나타내고 예측한다. 2가지 종류 중 하나를 택하는 방식으로 0 또는 1, true 또는 false 중에 하나를 고르는 것이다. 즉 이진 분류 로지스틱 회귀 분석은 이진 분류를 이용하여 독립변수와 종속변수 간의 관계를 파악하는 것이다. 머신러닝에서는 보통 0과 1로서 관계를 나타낸다.각 그래프에서 가는 선이 y = 1일 때, 테스트케이스가 0과 1로만 이루어진다면 (즉, y = 0, y = 1에 대해 몰려있다면), 선형 회귀는 테스트케이스에 대해 오차가 상당히 크지만, 로지스틱 회귀의 경우 그래프가 x축과 평행한 부분이 상당 부분 존재하기 때문에 선형 회귀보다 상대적으로 테스트케이스에 대한 오차가 적은 편이다.예제를 통해 자세히 알아보자.

np.random.multivariate_normal(mu, cov[ , size, check_valid, tol])

mu : 평균

cov(shape) : 분포의 공분산 행렬

size : 난수의 개수

np.eye()는 1을 대각선 형태로 갖고, 나머지는 0으로 채우는 배열이다.

np.eye(N, M=None, k=0, dtype=, order=’C’)

N : row (행) 의 수

M : column (열) 의 수

K : 대각선 위치 변경

([[1, 0, 0, 0, 0], ([[0, 1, 0, 0, 0], ([[0, 0, 0, 0, 0],

[0, 1, 0, 0, 0], [0, 0, 1, 0, 0], [1, 0, 0, 0, 0],

[0, 0, 1, 0, 0], [0, 0, 0, 1, 0], [0, 1, 0, 0, 0],

[0, 0, 0, 1, 0], [0, 0, 0, 0, 1], [0, 0, 1, 0, 0],

[0, 0, 0, 0, 1]]) [0, 0, 0, 0, 0]]) [0, 0, 0, 1, 0]])

k = 0 k > 0 k < 0 즉 위의 코드에서 np.eye(2)는 2차원 배열 ([1, 0], [0, 1]) 을 의미한다. 위의 코드로 생성한 data_y0는 아래와 같은 배열 형태를 보인다. 이 데이터를 Pandas Dataframe을 이용하여 dataframe 형태로 출력해보면 아래와 같이 나온다. 이 처럼 Pandas Dataframe은 배열 데이터를 쉽게 변경하고 다룰 수 있어서 데이터 처리에 많이 쓰는 라이브러리이다. import tensorflow as tf import numpy as np from numpy.random import multivariate_normal, permutation import pandas as pd from pandas import DataFrame from matplotlib import pyplot as plt # Y_0 = 20 Y_1 = 15 learningRate = 0.01 totalStep = 20001 np . random . seed( 321 ) dataNumber_y0 = Y_0 mu_y0 = [ 10 , 11 ] variance_y0 = 20 data_y0 = multivariate_normal(mu_y0, np . eye( 2 ) * variance_y0, dataNumber_y0) df_y0 = DataFrame(data_y0, columns = [ ‘x1’ , ‘x2’ ]) df_y0[ ‘y’ ] = 0 dataNumber_y1 = Y_1 mu_y1 = [ 18 , 20 ] variance_y1 = 22 data1 = multivariate_normal(mu_y1, np . eye( 2 ) * variance_y1, dataNumber_y1) df_y1 = DataFrame(data1, columns = [ ‘x1’ , ‘x2’ ]) df_y1[ ‘y’ ] = 1 # for i in data_y0: # print(data_y0) # for i in df_y0: # print(df_y0) # df = pd . concat([df_y0, df_y1], ignore_index = True ) df_totalTrainData = df . reindex(permutation(df . index)) . reset_index(drop = True ) print( “===== DATA =====>” ) print(df_totalTrainData) print( “df_totalTrainData Shape : {}

” . format(df_totalTrainData . shape)) xTrainData = df_totalTrainData[[ ‘x1’ , ‘x2’ ]] . as_matrix() yTrainData_temp = df_totalTrainData[ ‘y’ ] . as_matrix() print( “xTrainData shape : {}” . format(xTrainData . shape)) print( “yTrainData shape : {}” . format(yTrainData_temp . shape)) yTrainData = yTrainData_temp . reshape([len(df_totalTrainData), 1 ]) print( “yTrainData reshape : {}” . format(yTrainData . shape))

import tensorflow as tf import numpy as np from numpy.random import multivariate_normal, permutation import pandas as pd from pandas import DataFrame from matplotlib import pyplot as plt # Y_0 = 20 Y_1 = 15 learningRate = 0.01 totalStep = 20001 np . random . seed( 321 ) dataNumber_y0 = Y_0 mu_y0 = [ 10 , 11 ] variance_y0 = 20 data_y0 = multivariate_normal(mu_y0, np . eye( 2 ) * variance_y0, dataNumber_y0) df_y0 = DataFrame(data_y0, columns = [ ‘x1’ , ‘x2’ ]) df_y0[ ‘y’ ] = 0 dataNumber_y1 = Y_1 mu_y1 = [ 18 , 20 ] variance_y1 = 22 data1 = multivariate_normal(mu_y1, np . eye( 2 ) * variance_y1, dataNumber_y1) df_y1 = DataFrame(data1, columns = [ ‘x1’ , ‘x2’ ]) df_y1[ ‘y’ ] = 1 # for i in data_y0: # print(data_y0) # for i in df_y0: # print(df_y0) # df = pd . concat([df_y0, df_y1], ignore_index = True ) df_totalTrainData = df . reindex(permutation(df . index)) . reset_index(drop = True ) print( “===== DATA =====>” ) print(df_totalTrainData) print( “df_totalTrainData Shape : {}

” . format(df_totalTrainData . shape)) xTrainData = df_totalTrainData[[ ‘x1’ , ‘x2’ ]] . values yTrainData_temp = df_totalTrainData[ ‘y’ ] . values print( “xTrainData shape : {}” . format(xTrainData . shape)) print( “yTrainData shape : {}” . format(yTrainData_temp . shape)) yTrainData = yTrainData_temp . reshape([len(df_totalTrainData), 1 ]) print( “yTrainData reshape : {}” . format(yTrainData . shape)) # X = tf . placeholder(tf . float32, shape = [ None , 2 ]) Y = tf . placeholder(tf . float32, shape = [ None , 1 ]) W = tf . Variable(tf . zeros([ 2 , 1 ]), name = ‘weight’ ) b = tf . Variable(tf . zeros([ 1 ]), name = ‘bias’ )

Pandas의 concat으로 확률이 0, 1인 데이터를 하나의 Dataframe으로 합쳐준다. 이 때 데이터는 0, 1의 순서에 따라 합쳐지게 되므로 reindex()를 이용해 순서에 상관없이 재정렬되도록 해준다.이제 df_totalTrainData에 재정렬된 데이터가 들어가게 된다. 이 Dataframe을 리스트 형식으로 변환해주자. Pandas의 as_matrix()를 이용해 x1, x2의 데이터는 xTrainData에, y의 데이터는 yTrainData_temp에 저장해준다. 이 결과 xTrainData는 (35, 2)의 shape를, yTrainData는 (35, )의 shape를 가진다. 뒤에 학습 모델 그래프를 구성할 때 행렬 곱셈을 할 때 shape가 다를 경우 계산 수식에서 오류가 발생할 수 있으므로 yTrainData를 reshape()로 (35, 1)로 변경해준다. 이제 출력해보자.지긋지긋한 FutureWarning… .as_matrix() 대신 .values를 사용하란다. 바꿔주고 다시 출력해보자.위 처럼 데이터가 0, 1의 순서에 상관없이 정렬이 되게 출력이 될 것이다. 이제 학습 데이터 준비를 완료했다. 모델 생성을 위한 변수를 초기화하자.x1, x2 데이터는 X 플레이스홀더에, y 데이터는 Y 플레이스홀더에 들어갈 것이다. 이 때 shape에 [35, 2] 같이 모양을 정해줄 수도 있지만, 데이터 수를 정확히 모른다면 None으로 지정해야 계산할 때 오류가 발생하지 않는다.weight와 bias는 각각 tf.zeros()를 이용해서 위와 같은 크기의 배열로 초기화한 변수로 선언해준다.다음엔 학습 모델 그래프를 만들어줄 차례지만, 설명할 내용이 많기 때문에 다음에 이어서 쓰도록 하겠다.

위키백과, 우리 모두의 백과사전

로지스틱 회귀(영어: logistic regression)는 영국의 통계학자인 D. R. Cox가 1958년[1]에 제안한 확률 모델로서 독립 변수의 선형 결합을 이용하여 사건의 발생 가능성을 예측하는데 사용되는 통계 기법이다.

로지스틱 회귀의 목적은 일반적인 회귀 분석의 목표와 동일하게 종속 변수와 독립 변수간의 관계를 구체적인 함수로 나타내어 향후 예측 모델에 사용하는 것이다. 이는 독립 변수의 선형 결합으로 종속 변수를 설명한다는 관점에서는 선형 회귀 분석과 유사하다. 하지만 로지스틱 회귀는 선형 회귀 분석과는 다르게 종속 변수가 범주형 데이터를 대상으로 하며 입력 데이터가 주어졌을 때 해당 데이터의 결과가 특정 분류로 나뉘기 때문에 일종의 분류 (classification) 기법으로도 볼 수 있다.

흔히 로지스틱 회귀는 종속변수가 이항형 문제(즉, 유효한 범주의 개수가 두개인 경우)를 지칭할 때 사용된다. 이외에, 두 개 이상의 범주를 가지는 문제가 대상인 경우엔 다항 로지스틱 회귀 (multinomial logistic regression) 또는 분화 로지스틱 회귀 (polytomous logistic regression)라고 하고 복수의 범주이면서 순서가 존재하면 서수 로지스틱 회귀 (ordinal logistic regression) 라고 한다.[2] 로지스틱 회귀 분석은 의료, 통신, 데이터마이닝과 같은 다양한 분야에서 분류 및 예측을 위한 모델로서 폭넓게 사용되고 있다.

기초 [ 편집 ]

로지스틱 회귀는 이항형 또는 다항형이 될 수 있다. 이항형 로지스틱 회귀(binomial logistic regression)의 경우 종속 변수의 결과가 (성공, 실패) 와 같이 2개의 카테고리가 존재하는 것을 의미하며 다항형 로지스틱 회귀는 종속형 변수가 (맑음, 흐림, 비)와 같이 2개 이상의 카테고리로 분류되는 것을 가리킨다. 이항형 로지스틱의 회귀 분석에서 2개의 카테고리는 0과 1로 나타내어지고 각각의 카테고리로 분류될 확률의 합은 1이 된다.

로지스틱 회귀는 일반적인 선형 모델(generalized linear model)의 특수한 경우로 볼 수 있으므로 선형 회귀와 유사하다. 하지만, 로지스틱 회귀의 모델은 종속 변수와 독립 변수 사이의 관계에 있어서 선형 모델과 차이점을 지니고 있다. 첫 번째 차이점은 이항형인 데이터에 적용하였을 때 종속 변수 y의 결과가 범위[0,1]로 제한된다는 것이고 두 번째 차이점은 종속 변수가 이진적이기 때문에 조건부 확률(P(y│x))의 분포가 정규분포 대신 이항 분포를 따른다는 점이다.

따라서, 대상이 되는 데이터의 종속 변수 y의 결과는 0과 1, 두 개의 경우만 존재하는 데 반해, 단순 선형 회귀를 적용하면 범위[0,1]를 벗어나는 결과가 나오기 때문에 오히려 예측의 정확도만 떨어뜨리게 된다.

이를 해결하기 위해 로지스틱 회귀는 연속이고 증가함수이며 [0,1]에서 값을 갖는 연결 함수 g(x)를 제안하였다. 연결함수의 형태는 다양하게 존재하는데 그 중 대표적인 두 개는 아래와 같다.

로지스틱 모형: g ( x ) = e x 1 + e x {\displaystyle g(x)={\frac {e^{x}}{1+e^{x}}}}

검벨 모형: g ( x ) = e − e x {\displaystyle g(x)=e^{-e^{x}}}

이 중에 계산상의 편리성으로 인하여 로지스틱 모형이 널리 사용된다.

로지스틱 함수 [ 편집 ]

σ ( t ) {\displaystyle \sigma (t)} t {\displaystyle t} σ ( t ) ∈ [ 0 , 1 ] {\displaystyle \sigma (t)\in [0,1]} 표준 로지스틱 함수; 모든에 있어서이다.

로지스틱 모형 식은 독립 변수가 (-∞,∞)의 어느 숫자이든 상관 없이 종속 변수 또는 결과 값이 항상 범위 [0,1] 사이에 있도록 한다. 이는 오즈(odds)를 로짓(logit) 변환을 수행함으로써 얻어진다.[3]

식 [ 편집 ]

오즈 (odds) & 로짓 변환 성공 확률이 실패 확률에 비해 몇 배 더 높은가를 나타내며 그 식은 아래와 같다. odds = p ( y = 1 | x ) 1 − p ( y = 1 | x ) {\displaystyle {\text{odds}}={\frac {p(y=1|x)}{1-p(y=1|x)}}}

로짓 변환 오즈에 로그를 취한 함수로서 입력 값의 범위가 [0,1] 일 때 출력 값의 범위를 ( − ∞ , + ∞ ) {\displaystyle (-\infty ,+\infty )} logit ⁡ ( p ) = log ⁡ p 1 − p {\displaystyle \operatorname {logit} (p)=\log {\frac {p}{1-p}}}

로지스틱 함수 (logistic function): 로지스틱 함수의 그래프는 Figure 1과 같고 이는 독립 변수 x가 주어졌을 때 종속 변수가 1의 범주에 속할 확률을 의미한다. 즉, p ( y = 1 | x ) {\displaystyle {p(y=1|x)}} 로지스틱 함수는 로짓 변환을 통해 만들어지고, 그 형태는 다음과 같다. logistic function = e β ⋅ X i 1 + e β ⋅ X i {\displaystyle {\text{logistic function}}={\frac {e^{\beta \centerdot X_{i}}}{1+e^{\beta \centerdot X_{i}}}}}

수식 유도 [ 편집 ]

가정 [ 편집 ]

N개의 관찰된 데이터 요소의 연속된 숫자가 존재한다고 가정하면, 각 데이터 요소는 m개의 독립 변수의 집합 ( x 1 , i , . . . , x m , i {\displaystyle x_{1,i},…,x_{m,i}} )을 포함하고 있고 이는 설명 변수, 예측 변수, 입력 변수, 특징, 속성이라고도 불린다. 그리고 독립 변수와 연관된 이진 값 형태의 종속 변수 Y i {\displaystyle Y_{i}} 가 존재한다. 이 종속 변수는 응답 변수, 결과 변수, 클래스 변수라고도 일컬어진다. 향후 수식 표현에서는 종속 변수에는 오직 2개의 가능한 값, ‘0’ (실패 또는 없음을 의미)과 ‘1’ (성공 또는 존재를 의미)만이 존재한다고 가정한다. 로지스틱 회귀의 목적은 독립 변수와 종속 변수의 관계를 찾음으로써, 새로운 독립 변수의 집합이 주어졌을 때 종속 변수의 값을 예측할 수 있게 하는 것이다.

독립 변수 [ 편집 ]

예시에서 볼 수 있다시피, 독립 변수는 실제 값, 이진 값, 카테고리 등 어떤 형태든 될 수 있다. 종속 변수의 형태는 연속 변수(수입, 나이, 혈압) 또는 이산 변수(성별, 인종)로 구분된다. 만약, 특정 이산 변수 값의 후보가 2개 이상이 존재한다면 일반적으로 해당 후보들을 임시 변수로 변환하여 로지스틱 회귀를 수행한다. 즉, 구분된 독립 변수들이 각각 ‘0’ 또는 ‘1’의 값을 갖도록 변환한다. ‘0’은 해당 변수가 특정 값을 지니지 않음으로 의미하고 ‘1’은 해당 변수가 주어진 값과 동일하다는 것을 의미한다. 예를 들어, 혈액형의 종류는 4가지(A, B, AB, O)가 있는데 이를 로지스틱 회귀를 수행하기 위해서 데이터 변환을 하면 4가지 혈액형 중에 특정 사람의 혈액형과 같은 값만 ‘1’이 되고 나머지는 ‘0’의 값을 지닌다. 즉, A형인 사람의 데이터는 (1,0,0,0)이 되는 것이다. 이렇게 변환함으로써 구분된 회귀 계수가 이산적인 값을 지니게 할 수 있다.

종속 변수 [ 편집 ]

종속 변수 Y i {\displaystyle Y_{i}} 는 일반적으로 베르누이 분포의 데이터로서 표현한다. 각 종속 변수는 관찰되지 않은 확률 p i {\displaystyle p_{i}} 에 의해 결정된다. 이는 다음의 수학적 표현으로 표현할 수 있다.

Y i | x 1 , i , . . . , x m , i B e r n o u l l i ( p i ) {\displaystyle Y_{i}|x_{1,i},…,x_{m,i}~Bernoulli(p_{i})} Y i {\displaystyle Y_{i}} p i {\displaystyle p_{i}} p i {\displaystyle p_{i}}

E [ Y i | x 1 , i , . . . , x m , i ] = p i {\displaystyle \mathbb {E} [Y_{i}|x_{1,i},…,x_{m,i}]=p_{i}} 각 Y i {\displaystyle Y_{i}} p i {\displaystyle p_{i}} p i {\displaystyle p_{i}} p i {\displaystyle p_{i}}

P r ( Y i = y i | x 1 , i , . . . , x m , i ) = { p i if y i = 1 1 − p i if y i = 0 {\displaystyle Pr(Y_{i}=y_{i}|x_{1,i},…,x_{m,i})={\begin{cases}p_{i}&{\mbox{if }}y_{i}=1\\1-p_{i}&{\mbox{if }}y_{i}=0\end{cases}}} 베르누이 분포의 확률 질량 함수를 표현한 것으로서 2개의 경우에 대한 확률이 존재한다.

P r ( Y i = y i | x 1 , i , . . . , x m , i ) = p i y i ( 1 − p i ) ( 1 − y i ) {\displaystyle Pr(Y_{i}=y_{i}|x_{1,i},…,x_{m,i})=p_{i}^{y_{i}}(1-p_{i})^{(1-y_{i})}} 확률 질량 함수를 다른 표현으로 적은 것으로, 그것은 3번의 식 두 개를 한번에 표현한 것이다.

선형 예측 변수 [ 편집 ]

로지스틱 회귀의 기본적인 접근은 이미 개발되어 있는 선형 회귀의 방식을 사용하는 것이다. 즉, 독립 변수의 선형 결합과 회귀 계수에 관한 선형 예측 함수에서 비롯되었다. 선형 예측 함수 f ( i ) {\displaystyle f(i)} 는 특정 데이터 항에 대해 아래와 같이 표현된다.

f ( i ) = β 0 + β 1 x 1 , i + ⋯ + β m x m , i ( β 0 , . . . , β m ) {\displaystyle f(i)=\beta _{0}+\beta _{1}x_{1,i}+\cdots +\beta _{m}x_{m,i}(\beta _{0},…,\beta _{m})}

이 모델은 다음의 간결한 형태로 표현될 수 있다.

회귀 계수 ( β 0 , ⋯ , β m ) {\displaystyle (\beta _{0},\cdots ,\beta _{m})} β {\displaystyle \beta }

독립 변수 x 0 , i , x 1 , i , ⋯ , x m , i {\displaystyle x_{0,i},x_{1,i},\cdots ,x_{m,i}} X i {\displaystyle X_{i}}

위를 기반으로 선형 예측 함수는 다음과 같이 간결화 될 수 있다.

f ( i ) = β ⋅ X i {\displaystyle f(i)=\beta \centerdot X_{i}}

로지스틱 함수 유도 [ 편집 ]

로지스틱 회귀가 다른 회귀 분석과 구분되는 가장 큰 특징은 결과 값이 0 또는 1이라는 것이다. 따라서 결과 값의 범위가 [ − ∞ , + ∞ ] {\displaystyle [-\infty ,+\infty ]} 인 선형 회귀의 식을 결과 값의 범위가 [0,1]이 되도록 로짓 변환을 수행한다. 로지스틱 함수를 구하는 과정은 아래와 같다.

일단, 오즈비를 종속 변수 값에 상관 없이 결과 값이 항상 [0,1] 사이에 있도록 하기 위해 로짓 변환을 수행한다.

logit ⁡ ( E [ Y i | x 1 , i , ⋯ , x m , i ] ) = logit ⁡ ( p i ) = ln ⁡ p i 1 − p i {\displaystyle \operatorname {logit} (\mathbb {E} [Y_{i}|x_{1,i},\cdots ,x_{m,i}])=\operatorname {logit} (p_{i})=\ln {\frac {p_{i}}{1-p_{i}}}}

그리고 로지스틱 회귀에서 로짓 변환의 결과는 x에 대한 선형 함수와 동일하므로,

logit ⁡ ( p i ) = β 0 + β 1 x 1 , i + ⋯ + β m x m , i = β ⋅ X i {\displaystyle \operatorname {logit} (p_{i})=\beta _{0}+\beta _{1}x_{1,i}+\cdots +\beta _{m}x_{m,i}=\beta \cdot X_{i}}

위 두식을 결합하면,

ln ⁡ p i 1 − p i = β ⋅ X i {\displaystyle \ln {\frac {p_{i}}{1-p_{i}}}=\beta \cdot X_{i}}

따라서, 우리가 구하고자 하는 특정 독립 변수 x가 주어졌을 때, 종속 변수가 1의 카테고리에 속할 확률은

p i = logit − 1 ⁡ ( β ⋅ X i ) = 1 1 + e − β ⋅ X i {\displaystyle p_{i}=\operatorname {logit} ^{-1}({\boldsymbol {\beta }}\cdot \mathbf {X} _{i})={\frac {1}{1+e^{-{\boldsymbol {\beta }}\cdot \mathbf {X} _{i}}}}}

이를 확률 질량 함수로 표현하면 다음과 같다.

Pr ⁡ ( Y i = y i ∣ X i ) = p i y i ( 1 − p i ) 1 − y i = ( 1 1 + e − β ⋅ X i ) y i ( 1 − 1 1 + e − β ⋅ X i ) 1 − y i {\displaystyle \operatorname {Pr} (Y_{i}=y_{i}\mid \mathbf {X} _{i})={p_{i}}^{y_{i}}(1-p_{i})^{1-y_{i}}=\left({\frac {1}{1+e^{-{\boldsymbol {\beta }}\cdot \mathbf {X} _{i}}}}\right)^{y_{i}}\left(1-{\frac {1}{1+e^{-{\boldsymbol {\beta }}\cdot \mathbf {X} _{i}}}}\right)^{1-y_{i}}}

형식적 수학 모델 [ 편집 ]

잠재변수 모델(latent-variable) [ 편집 ]

앞서 설명된 로지스틱 모델은 잠재변수 모델로서 동등한 공식화가 존재한다. 이 공식화는 이산 선택 모델 이론에서 공통적으로 쓰이며, 로지스틱 회귀를 이와 깊이 관련된 프로빗 모델과 비교하기 쉽도록 해줄뿐만 아니라, 다수의 상호연관된 선택지를 지니는 더 복잡한 특정 모델로 확장하기 쉽게 해준다. 매 i번째 시행마다 연속적인 잠재변수 Y i ∗ {\displaystyle Y_{i}^{*}} (즉, 관찰되지 않은 확률변수)가 다음과 같이 분포해 있다고 해보자:

Y i ∗ = β ⋅ X i + ε {\displaystyle Y_{i}^{*}={\boldsymbol {\beta }}\cdot \mathbf {X} _{i}+\mathrm {\varepsilon } }

where

ε ∼ Logistic ⁡ ( 0 , 1 ) {\displaystyle \varepsilon \sim \operatorname {Logistic} (0,1)\,}

즉, 잠재변수는 선형 예측변수 함수와 표준 로지스틱 분포를 따르는 가산 확률 오차 변수로써 곧바로 표현될 수 있다. 그러면, Y i {\displaystyle Y_{i}} 를 이 잠재변수가 양수인지 아닌지에 대한 지표로 볼 수 있다:

Y i = { 1 if Y i ∗ > 0 i.e. − ε < β ⋅ X i , 0 otherwise. {\displaystyle Y_{i}={\begin{cases}1&{\text{if }}Y_{i}^{\ast }>0\ {\text{ i.e. }}-\varepsilon <{\boldsymbol {\beta }}\cdot \mathbf {X} _{i},\\0&{\text{otherwise.}}\end{cases}}} 오차 변수를 구체적으로 표준 로지스틱 분포를 따르도록 모델링하는 것은 임의의 위치 및 축척을 가지는 보편적인 로지스틱 분포로 모델링하는 것보다 제한적이어 보이나, 사실은 그렇지 않다. 회귀 계수는 얼마든지 마음대로 고를 수 있고, 때때로 오차 변수 분포의 매개변수 변화량을 상쇄시키는데 사용될 수 있음을 명심해야 한다. 예를 들어, 0이 아닌 위치 매개변수 μ(평균값)를 가지는 로지스틱 오차 변수 분포는 절편계수에 μ를 더하면 위치 매개변수가 0인 분포와 동등해진다. 두 경우 모두 설명 변수의 설정과는 관계없이 같은 Y i ∗ {\displaystyle Y_{i}^{*}} 값을 낳는다. 마찬가지로 임의의 축척 매개변수 s는 축척 매개변수를 1로 설정한 뒤 모든 회귀 계수를 s로 나눈 것과 동등한 효과를 나타낸다. 후자의 경우, Y i ∗ {\displaystyle Y_{i}^{*}} 의 결과값이 모든 설명변수들의 조합에 대해 이전보다 s배만큼 작아진다—그러나 중요한건, 0을 기준으로 언제나 동일한 쪽에 남아있기 때문에, 결국 같은 Y i {\displaystyle Y_{i}} 선택을 따른다. (이러한 사실에서 곧 축척 매개변수의 무관성이 두 개 이상의 선택이 존재하는 보다 더 복잡한 모델에도 적용되지는 않을 수도 있음을 예견한다는 점에 주목하자.) 앞서 잠재변수 없이 일반화된 선형 모델로 표현된 것과 이 공식화가 정확히 동등함이 알려져 있다. 이는 표준 로지스틱 분포의 누적 분포 함수가 로지스틱 함수, 즉, 로짓 함수의 역함수라는 사실을 이용하여 다음과 같이 나타낼 수 있다. 다시 말해, Pr ( ε < x ) = logit − 1 ⁡ ( x ) {\displaystyle \Pr(\varepsilon 0 ∣ X i ) = Pr ( β ⋅ X i + ε > 0 ) = Pr ( ε > − β ⋅ X i ) = Pr ( ε < β ⋅ X i ) (because the logistic distribution is symmetric) = logit − 1 ⁡ ( β ⋅ X i ) = p i (see above) {\displaystyle {\begin{aligned}\Pr(Y_{i}=1\mid \mathbf {X} _{i})&=\Pr(Y_{i}^{\ast }>0\mid \mathbf {X} _{i})&\\&=\Pr({\boldsymbol {\beta }}\cdot \mathbf {X} _{i}+\varepsilon >0)&\\&=\Pr(\varepsilon >-{\boldsymbol {\beta }}\cdot \mathbf {X} _{i})&\\&=\Pr(\varepsilon <{\boldsymbol {\beta }}\cdot \mathbf {X} _{i})&&{\text{(because the logistic distribution is symmetric)}}\\&=\operatorname {logit} ^{-1}({\boldsymbol {\beta }}\cdot \mathbf {X} _{i})&\\&=p_{i}&&{\text{(see above)}}\end{aligned}}} 이 공식화—표준 이산 선택 모델—는 표준 로지스틱 분포 대신 표준 정규 분포를 따르는 오차 변수가 사용된 프로빗 모델과 로지스틱 회귀("로짓 모델") 사이의 관계를 명료하게 한다. 로지스틱 분포와 정규 분포 둘 다 단봉형의 "종형 곡선" 모양으로 대칭적이다. 유일한 차이점은 로지스틱 분포가 조금 더 무거운 꼬리를 가지고 있어, 외진 데이터(outlying data)에 대해 덜 예민하다는 것이다(따라서 그릇된 데이터에 대해 더 강건하다). 이중(two-way) 잠재변수 모델 [ 편집 ] 또 다른 공식화는 별개의 두 잠재변수를 사용한다: Y i 0 ∗ = β 0 ⋅ X i + ε 0 Y i 1 ∗ = β 1 ⋅ X i + ε 1 {\displaystyle {\begin{aligned}Y_{i}^{0\ast }&={\boldsymbol {\beta }}_{0}\cdot \mathbf {X} _{i}+\varepsilon _{0}\,\\Y_{i}^{1\ast }&={\boldsymbol {\beta }}_{1}\cdot \mathbf {X} _{i}+\varepsilon _{1}\,\end{aligned}}} where ε 0 ∼ EV 1 ⁡ ( 0 , 1 ) ε 1 ∼ EV 1 ⁡ ( 0 , 1 ) {\displaystyle {\begin{aligned}\varepsilon _{0}&\sim \operatorname {EV} _{1}(0,1)\\\varepsilon _{1}&\sim \operatorname {EV} _{1}(0,1)\end{aligned}}} where EV 1 (0,1) is a standard type-1 extreme value distribution: i.e. Pr ( ε 0 = x ) = Pr ( ε 1 = x ) = e − x e − e − x {\displaystyle \Pr(\varepsilon _{0}=x)=\Pr(\varepsilon _{1}=x)=e^{-x}e^{-e^{-x}}} Then Y i = { 1 if Y i 1 ∗ > Y i 0 ∗ , 0 otherwise. {\displaystyle Y_{i}={\begin{cases}1&{\text{if }}Y_{i}^{1\ast }>Y_{i}^{0\ast },\\0&{\text{otherwise.}}\end{cases}}}

이 모델은 종속변수의 가능한 각 결과값들에 대하여 별개의 잠재변수와 별도의 회귀 계수 집합을 가지고 있다. 이렇게 변수들을 분리하는 이유는, 로지스틱 회귀를 다항 로짓 모델에서처럼 다수-결과값의 범주적 변수들로 확장하기 쉽게 만들어 주기 때문이다. 이러한 모델에서는 서로 다른 회귀 계수들을 사용하여 가능한 각 결과값을 모델링하는게 당연하다. 각 별개의 잠재변수들을 관련된 선택을 하는데 있어 이론적인 효용(utility)으로서 의미를 부여하면, 효용 이론면에서 로지스틱 회귀를 일깨우는 것도 가능하다. (효용 이론면에서, 이성적인 수행자는 언제나 가장 큰 효용과 결부된 선택지를 고른다.) 이 접근법은 이론적으로 강력한 토대를 제공할뿐만 아니라, 모델에 대한 직관을 용이하게 하기 때문에 경제학자들이 이산 선택 모델을 공식화할 때 채택하는 방법이다. 바꿔 말하면, 다양한 종류의 확장들을 고려하기 쉽게 해준다.

제1형 극값 분포를 선택한 것은 상당히 임의적으로 보이지만, 이는 수학적 계산이 가능케 하고, 이성적 선택 이론을 통해 사용예들을 정당화할 수 있게끔 해준다.

이제는 두 벌의 회귀 계수들과 오차 변수들이 존재하고, 오차 변수가 다른 분포를 따르기 때문에 불분명해 보일 수도 있지만, 이 모델이 이전의 모델과 동등함이 밝혀져 있다. 사실은 다음의 치환을 통해 이 모델이 이전의 모델로 곧바로 축소된다.

β = β 1 − β 0 {\displaystyle {\boldsymbol {\beta }}={\boldsymbol {\beta }}_{1}-{\boldsymbol {\beta }}_{0}} ε = ε 1 − ε 0 {\displaystyle \varepsilon =\varepsilon _{1}-\varepsilon _{0}}

이 치환에 대한 직관은 다음의 사실로부터 얻어진다. 두 값 중 최댓값을 기준으로 선택되기 때문에, 정확한 값들이 아닌 두 값의 차이만이 중요해진다—이로써 하나의 자유도가 실질적으로 제거된다. 또 다른 중요한 사실은 제1형 극값 분포 변수들의 차이가 로지스틱 분포라는 점이다. 즉, ε = ε 1 − ε 0 ∼ Logistic ⁡ ( 0 , 1 ) {\displaystyle \varepsilon =\varepsilon _{1}-\varepsilon _{0}\sim \operatorname {Logistic} (0,1)} 이라고 하면,

다음과 같이 동치를 증명할 수 있다:

Pr ( Y i = 1 ∣ X i ) = Pr ( Y i 1 ∗ > Y i 0 ∗ ∣ X i ) = Pr ( Y i 1 ∗ − Y i 0 ∗ > 0 ∣ X i ) = Pr ( β 1 ⋅ X i + ε 1 − ( β 0 ⋅ X i + ε 0 ) > 0 ) = Pr ( ( β 1 ⋅ X i − β 0 ⋅ X i ) + ( ε 1 − ε 0 ) > 0 ) = Pr ( ( β 1 − β 0 ) ⋅ X i + ( ε 1 − ε 0 ) > 0 ) = Pr ( ( β 1 − β 0 ) ⋅ X i + ε > 0 ) (substitute ε as above) = Pr ( β ⋅ X i + ε > 0 ) (substitute β as above) = Pr ( ε > − β ⋅ X i ) (now, same as above model) = Pr ( ε < β ⋅ X i ) = logit − 1 ⁡ ( β ⋅ X i ) = p i {\displaystyle {\begin{aligned}&\Pr(Y_{i}=1\mid \mathbf {X} _{i})\\[4pt]={}&\Pr(Y_{i}^{1\ast }>Y_{i}^{0\ast }\mid \mathbf {X} _{i})&\\={}&\Pr(Y_{i}^{1\ast }-Y_{i}^{0\ast }>0\mid \mathbf {X} _{i})&\\={}&\Pr({\boldsymbol {\beta }}_{1}\cdot \mathbf {X} _{i}+\varepsilon _{1}-({\boldsymbol {\beta }}_{0}\cdot \mathbf {X} _{i}+\varepsilon _{0})>0)&\\={}&\Pr(({\boldsymbol {\beta }}_{1}\cdot \mathbf {X} _{i}-{\boldsymbol {\beta }}_{0}\cdot \mathbf {X} _{i})+(\varepsilon _{1}-\varepsilon _{0})>0)&\\={}&\Pr(({\boldsymbol {\beta }}_{1}-{\boldsymbol {\beta }}_{0})\cdot \mathbf {X} _{i}+(\varepsilon _{1}-\varepsilon _{0})>0)&\\={}&\Pr(({\boldsymbol {\beta }}_{1}-{\boldsymbol {\beta }}_{0})\cdot \mathbf {X} _{i}+\varepsilon >0)&&{\text{(substitute }}\varepsilon {\text{ as above)}}\\={}&\Pr({\boldsymbol {\beta }}\cdot \mathbf {X} _{i}+\varepsilon >0)&&{\text{(substitute }}{\boldsymbol {\beta }}{\text{ as above)}}\\={}&\Pr(\varepsilon >-{\boldsymbol {\beta }}\cdot \mathbf {X} _{i})&&{\text{(now, same as above model)}}\\={}&\Pr(\varepsilon <{\boldsymbol {\beta }}\cdot \mathbf {X} _{i})&\\={}&\operatorname {logit} ^{-1}({\boldsymbol {\beta }}\cdot \mathbf {X} _{i})&\\={}&p_{i}\end{aligned}}} 로그-선형 모델 [ 편집 ] 또 다른 공식화는 바로 위의 이중 잠재변수 공식화와 더 위의 잠재변수가 없는 공식화를 결합한다. 그 과정에서 다항 로짓의 표준 공식화에 한 연결점을 제공한다. 여기서는 확률의 로짓 p i 를 선형 예측 변수로 쓰는 대신에, 각 두 결과값에 따라 선형 예측 변수를 둘로 분리한다: ln ⁡ Pr ( Y i = 0 ) = β 0 ⋅ X i − ln ⁡ Z ln ⁡ Pr ( Y i = 1 ) = β 1 ⋅ X i − ln ⁡ Z {\displaystyle {\begin{aligned}\ln \Pr(Y_{i}=0)&={\boldsymbol {\beta }}_{0}\cdot \mathbf {X} _{i}-\ln Z\,\\\ln \Pr(Y_{i}=1)&={\boldsymbol {\beta }}_{1}\cdot \mathbf {X} _{i}-\ln Z\,\\\end{aligned}}} 이중 잠재변수 모델에서처럼 별도의 회귀 계수들이 쌍으로 도입되었고, 두 식의 마지막에 추가적으로 − l n Z {\displaystyle -lnZ} 항과 함께 선형 예측 변수로서 관련된 확률이 로그 형태로 나타나 있음에 주목하자. 보다시피 이 항은 결과가 확률분포가 되도록 정규화 인자로서 작용한다. 이는 양변을 지수화함으로써 나타낼 수 있다: Pr ( Y i = 0 ) = 1 Z e β 0 ⋅ X i Pr ( Y i = 1 ) = 1 Z e β 1 ⋅ X i {\displaystyle {\begin{aligned}\Pr(Y_{i}=0)&={\frac {1}{Z}}e^{{\boldsymbol {\beta }}_{0}\cdot \mathbf {X} _{i}}\,\\\Pr(Y_{i}=1)&={\frac {1}{Z}}e^{{\boldsymbol {\beta }}_{1}\cdot \mathbf {X} _{i}}\,\\\end{aligned}}} 이런 형태에서 보면, Z의 용도가 실은 결과를 Y i 에 대한 확률분포(즉, 총합이 1)가 되도록 만드는 것임이 확실해진다. 이는 Z가 단순히 비정규화 확률의 총합이라는 것, 그리고 각 확률을 Z로 나누면 "정규화" 확률이 된다는 것을 의미한다. 다시 말해서: Z = e β 0 ⋅ X i + e β 1 ⋅ X i {\displaystyle Z=e^{{\boldsymbol {\beta }}_{0}\cdot \mathbf {X} _{i}}+e^{{\boldsymbol {\beta }}_{1}\cdot \mathbf {X} _{i}}} 그 결과 방정식들은 Pr ( Y i = 0 ) = e β 0 ⋅ X i e β 0 ⋅ X i + e β 1 ⋅ X i Pr ( Y i = 1 ) = e β 1 ⋅ X i e β 0 ⋅ X i + e β 1 ⋅ X i {\displaystyle {\begin{aligned}\Pr(Y_{i}=0)&={\frac {e^{{\boldsymbol {\beta }}_{0}\cdot \mathbf {X} _{i}}}{e^{{\boldsymbol {\beta }}_{0}\cdot \mathbf {X} _{i}}+e^{{\boldsymbol {\beta }}_{1}\cdot \mathbf {X} _{i}}}}\,\\\Pr(Y_{i}=1)&={\frac {e^{{\boldsymbol {\beta }}_{1}\cdot \mathbf {X} _{i}}}{e^{{\boldsymbol {\beta }}_{0}\cdot \mathbf {X} _{i}}+e^{{\boldsymbol {\beta }}_{1}\cdot \mathbf {X} _{i}}}}\,\end{aligned}}} 또는, 일반적으로 Pr ( Y i = c ) = e β c ⋅ X i ∑ h e β h ⋅ X i {\displaystyle \Pr(Y_{i}=c)={\frac {e^{{\boldsymbol {\beta }}_{c}\cdot \mathbf {X} _{i}}}{\sum _{h}e^{{\boldsymbol {\beta }}_{h}\cdot \mathbf {X} _{i}}}}} 위에서처럼 다항 로짓과 같은 둘 이상의 결과값에 대하여 일반화된 공식화를 보일 수 있다. 일반화된 공식화가 Softmax 함수와 정확히 일치함에 유의하자. Pr ( Y i = c ) = softmax ⁡ ( c , β 0 ⋅ X i , β 1 ⋅ X i , … ) . {\displaystyle \Pr(Y_{i}=c)=\operatorname {softmax} (c,{\boldsymbol {\beta }}_{0}\cdot \mathbf {X} _{i},{\boldsymbol {\beta }}_{1}\cdot \mathbf {X} _{i},\dots ).} 이전 모델과 이 동치가 같음을 증명하기 위해, 바로 위 식에서 중복적으로 명시된 사항( Pr ( Y i = 0 ) {\displaystyle \Pr(Y_{i}=0)} 와 Pr ( Y i = 1 ) {\displaystyle \Pr(Y_{i}=1)} 는 서로 독립적이지 않다)을 이용하자: Pr ( Y i = 0 ) + Pr ( Y i = 1 ) = 1 {\displaystyle \Pr(Y_{i}=0)+\Pr(Y_{i}=1)=1} 이므로 둘 중 하나만 알면 나머지 하나도 저절로 알 수 있다. β 0 , β 1 의 복수 조합으로써 가능한 모든 설명변수들에 대하여 동일한 확률을 내놓기 때문에 결국 모델은 비식별적이다. 사실, 두 식에 아무런 상수 벡터를 더해도 같은 확률을 나타냄을 보일 수 있다: Pr ( Y i = 1 ) = e ( β 1 + C ) ⋅ X i e ( β 0 + C ) ⋅ X i + e ( β 1 + C ) ⋅ X i = e β 1 ⋅ X i e C ⋅ X i e β 0 ⋅ X i e C ⋅ X i + e β 1 ⋅ X i e C ⋅ X i = e C ⋅ X i e β 1 ⋅ X i e C ⋅ X i ( e β 0 ⋅ X i + e β 1 ⋅ X i ) = e β 1 ⋅ X i e β 0 ⋅ X i + e β 1 ⋅ X i {\displaystyle {\begin{aligned}\Pr(Y_{i}=1)&={\frac {e^{({\boldsymbol {\beta }}_{1}+\mathbf {C} )\cdot \mathbf {X} _{i}}}{e^{({\boldsymbol {\beta }}_{0}+\mathbf {C} )\cdot \mathbf {X} _{i}}+e^{({\boldsymbol {\beta }}_{1}+\mathbf {C} )\cdot \mathbf {X} _{i}}}}\,\\&={\frac {e^{{\boldsymbol {\beta }}_{1}\cdot \mathbf {X} _{i}}e^{\mathbf {C} \cdot \mathbf {X} _{i}}}{e^{{\boldsymbol {\beta }}_{0}\cdot \mathbf {X} _{i}}e^{\mathbf {C} \cdot \mathbf {X} _{i}}+e^{{\boldsymbol {\beta }}_{1}\cdot \mathbf {X} _{i}}e^{\mathbf {C} \cdot \mathbf {X} _{i}}}}\,\\&={\frac {e^{\mathbf {C} \cdot \mathbf {X} _{i}}e^{{\boldsymbol {\beta }}_{1}\cdot \mathbf {X} _{i}}}{e^{\mathbf {C} \cdot \mathbf {X} _{i}}(e^{{\boldsymbol {\beta }}_{0}\cdot \mathbf {X} _{i}}+e^{{\boldsymbol {\beta }}_{1}\cdot \mathbf {X} _{i}})}}\,\\&={\frac {e^{{\boldsymbol {\beta }}_{1}\cdot \mathbf {X} _{i}}}{e^{{\boldsymbol {\beta }}_{0}\cdot \mathbf {X} _{i}}+e^{{\boldsymbol {\beta }}_{1}\cdot \mathbf {X} _{i}}}}\,\\\end{aligned}}} 결과적으로, 두 벡터 중 하나에 임의의 값을 선택함으로써 식별성을 복원하고, 문제를 간소화할 수 있다. β 0 = 0 {\displaystyle {\boldsymbol {\beta }}_{0}=\mathbf {0} } 을 선택했다면, e β 0 ⋅ X i = e 0 ⋅ X i = 1 {\displaystyle e^{{\boldsymbol {\beta }}_{0}\cdot \mathbf {X} _{i}}=e^{\mathbf {0} \cdot \mathbf {X} _{i}}=1} 따라서 Pr ( Y i = 1 ) = e β 1 ⋅ X i 1 + e β 1 ⋅ X i = 1 1 + e − β 1 ⋅ X i = p i {\displaystyle \Pr(Y_{i}=1)={\frac {e^{{\boldsymbol {\beta }}_{1}\cdot \mathbf {X} _{i}}}{1+e^{{\boldsymbol {\beta }}_{1}\cdot \mathbf {X} _{i}}}}={\frac {1}{1+e^{-{\boldsymbol {\beta }}_{1}\cdot \mathbf {X} _{i}}}}=p_{i}} 이로써 이 공식화가 이전의 공식화와 동등함이 확실히 보여진다. (이중 잠재변수 모델에서 β = β 1 − β 0 {\displaystyle {\boldsymbol {\beta }}={\boldsymbol {\beta }}_{1}-{\boldsymbol {\beta }}_{0}} 로 설정함으로써 동등한 결과를 내놓기 때문) 모델 적합 [ 편집 ] 모델 적합(fitting)에는 추정(estimation)과 추정의 결과를 평가(evaluation)하는 과정이 존재한다. 추정은 로지스틱 회귀를 통한 모델을 설정할 때 필요한 계수를 예측하기 위한 것이고 평가는 추정한 모델이 데이터에 적합한지 판단하기 위한 것이다. 추정 [ 편집 ] 최대가능도 방법 [ 편집 ] 로지스틱 회귀의 계수 추정은 최대가능도 방법을 이용한다.[4] 위의 로지스틱 함수를 바탕으로 가능도(likelihood)를 나타내면 아래 식으로 나타낼 수 있다. 편의를 위해 로지스틱 함수를 p ( y = 1 | x ) = θ ( β ⋅ X i ) {\displaystyle p(y=1|x)=\theta (\beta \centerdot X_{i})} 가능도는 P r ( Y i = y i | X i ) = p i y i ( 1 − p i ) 1 − y i = θ ( y β ⋅ X i ) {\displaystyle Pr(Y_{i}=y_{i}|X_{i})=p_{i}^{y_{i}}(1-p_{i})^{1-y_{i}}=\theta (y\beta \centerdot X_{i})} 이 식을 바탕으로 전체 데이터에 대한 가능도를 표현하면 아래 식과 같다. 이 때 모든 데이터는 독립이어야 한다. p ( Y | X ) = ∏ i = 1 N P r ( Y i = y i | X i ) {\displaystyle p(Y|X)=\prod _{i=1}^{N}Pr(Y_{i}=y_{i}|X_{i})} N {\displaystyle N} y i , x i {\displaystyle y_{i},x_{i}} 이 식을 최대로 하는 계수 (위의 식에서 β {\displaystyle \beta } ) 을 찾으면, 모델 추정이 완료된다. 최댓값을 찾기 위한 식을 계산의 편의성을 위해 최솟값을 구하는 함수로 나타내기 위해선 log 함수 형태로 고치면 된다. Negative Log Likelihood: N L L = 1 N log ⁡ ( Y | X ) = 1 N ∑ i = 1 N log ⁡ 1 P r ( Y i = y i | X i ) = − 1 N ∑ i = 1 N θ ( y i β ⋅ X i ) {\displaystyle \mathrm {NLL} ={\frac {1}{N}}\log(Y|X)={\frac {1}{N}}\sum _{i=1}^{N}\log {\frac {1}{Pr(Y_{i}=y_{i}|X_{i})}}=-{\frac {1}{N}}\sum _{i=1}^{N}\theta (y_{i}\beta \centerdot X_{i})} 그리고 위의 식은 종속 변수 y의 범위가 [0,1] 사이이므로, 이를 다시 표현하면 아래와 같다. − 1 N ∑ i = 1 N θ ( y i β ⋅ X i ) = − 1 N ∑ i = 1 N ( y i log ⁡ 1 θ ( β ⋅ X i ) + ( 1 − y i ) log ⁡ 1 1 − θ ( β ⋅ X i ) ) {\displaystyle -{\frac {1}{N}}\sum _{i=1}^{N}\theta (y_{i}\beta \centerdot X_{i})=-{\frac {1}{N}}\sum _{i=1}^{N}(y_{i}\log {\frac {1}{\theta (\beta \centerdot X_{i})}}+(1-y_{i})\log {\frac {1}{1-\theta (\beta \centerdot X_{i})}})} 로지스틱 회귀에서는 위의 식을 최소화하는 닫힌 형태(closed-form expression)를 바로 구하는 것이 불가능하다. 그래서 반복 처리(iterative process)를 통해 계수를 추정하는데, 이 과정은 임의의 계수에서 시작하여 해당 계수를 반복적으로 수정해가면서 결과 모델이 개선되는지를 확인한다.[5] 그리고 그 결과가 수렴할 때까지 모델의 개선을 반복함으로써 최종적으로 계수를 구할 수 있다. 하지만 특정 경우에는 모델이 수렴하지 않을 수도 있는데, 이는 반복 처리로써 적합한 해를 찾을 수 없기 때문으로 계수가 중요한 의미를 지니지 않음을 시사한다. 수렴에 실패하는 대표적인 이유로는 사건에 매우 큰 영향력을 미치는 예측변수의 사용, 다중 공선성(multicolinearity), 희소성(sparseness), 완분성(complete separation)들이 있다. 반복적으로 업데이트 하면서 지역적인 최솟값(local minimum)을 찾는 알고리즘 중 대표적인 방법으로는 경사 하강법(Gradient Descent)이 있고 해당 알고리즘의 코드는 아래와 같다. Want min θ NLL : {\displaystyle {\text{Want}}\min _{\theta }{\text{NLL :}}} Repeat { {\displaystyle {\text{Repeat }}\{} β := β − α ∂ ∂ β N L L {\displaystyle \beta :=\beta -\alpha {\frac {\partial }{\partial \beta }}\mathrm {NLL} } } {\displaystyle \}} 집단 데이터의 최소 카이제곱 추정법 [ 편집 ] 각각의 데이터는 매 관측마다 0 또는 1의 값을 가지는 종속변수를 지니는 반면, 집단 데이터는 하나의 관측에 대하여 집단 내에 공통적인 특성(예:인구학적 특성)을 공유한다. 이 경우, 그룹의 어느 특정한 비율이 응답 변수의 한 범주 또는 그 외로 나뉘는 현상이 관찰된다. 만약 이 비율이 0과 1이 아니라면, 최소 카이제곱 추정법은 가중 최소 제곱법(weighted least squares)을 수반하여 종속변수가 비율의 로짓으로 표현되는 선형모델을 추정한다. 평가 [ 편집 ] 로지스틱 회귀의 평가에는 다양한 방법이 사용된다. 대표적인 방법으로는 가능도비 검정, Walt test, Pseudo-R2s, Hosmer-Lemeshow test가 존재한다. 가능도비 검정 [ 편집 ] 가능도비 검정은 두 개의 모형의 가능도비를 계산하여 두 모형의 가능도가 유의한 차이가 나는지 비교함으로써 로지스틱 회귀 분석에서 각 회귀 계수가 통계적으로 유의한지 검정하는 방법이다. '포화 모델(이론적으로 완벽히 들어맞는 모델)'을 구할 수 있다고 했을 때, 편차값은 주어진 모델과 포화 모델을 비교함으로써 계산된다. D = − 2 ln ⁡ Likelihood i n Likelihood S ( {\displaystyle D=-2\ln {\frac {{\textrm {Likelihood}}_{\mathit {in}}}{{\textrm {Likelihood}}_{S}}}\quad (} Likelihood i n : {\displaystyle {\textrm {Likelihood}}_{\mathit {in}}:} Likelihood S : {\displaystyle {\textrm {Likelihood}}_{S}:} ) {\displaystyle )} 위 등식에서 D는 편차값을 나타내고, ln은 자연로그를 나타낸다. 가능도비에 자연로그를 취한 값은 음수이기 때문에 -2를 곱함으로써 근사적으로 카이제곱 분포를 따르게 만든다. 이 때 편차값이 작을수록 포화모델과 차이가 적은, 잘 맞춰진 분석모델임을 의미한다. 로지스틱 회귀에서 편차를 측정하기 위한 또 다른 중요한 측정값은 널편차와 모델 편차이다. 널편차는 예측 모형이 적용되지 않은, 즉, 예측 변수가 없는 모델과 포화 모델간의 차이를 말한다. 이 때, 널편차는 예측 변수 모델과 비교할 대상의 기준을 제공한다. 편차값을 주어진 모델과 포화 모델 사이의 차이라고 가정했을 때, 두 모델간의 편차가 작을수록 오차가 적은 분석 모델이다. 따라서 예측 변수들의 기여도를 평가하기 위해, 널 편차값에서 모델 편차값을 빼거나, 예측할 매개변수의 개수 차이를 자유도로 가지는 카이제곱 분포( χ s − p 2 {\displaystyle \chi _{\mathit {s-p}}^{2}} )로 나타낼 수 있다. 그리고 이를 기준으로 F-test를 수행함으로써 최종적으로 회귀 계수의 유의성을 판단할 수 있다. D n u l l = − 2 ln ⁡ Likelihoodofnullmodel Likelihood S {\displaystyle D_{\mathit {null}}=-2\ln {\frac {\textrm {Likelihoodofnullmodel}}{{\textrm {Likelihood}}_{S}}}} D f i t t e d = − 2 ln ⁡ Likelihood i n Likelihood S {\displaystyle D_{\mathit {fitted}}=-2\ln {\frac {{\textrm {Likelihood}}_{\mathit {in}}}{{\textrm {Likelihood}}_{S}}}} D n u l l − D f i t t e d = − 2 ln ⁡ Likelihoodofnullmodel Likelihood S − ( − 2 ln ⁡ Likelihood i n Likelihood S ) = − 2 ( ln ⁡ Likelihood o f n u l l m o d e l Likelihood S − ln ⁡ Likelihood i n Likelihood S ) = − 2 ln ⁡ ( Likelihoodofnullmodel Likelihood S ) ( Likelihood i n Likelihood S ) = − 2 ln ⁡ Likelihoodofnullmodel Likelihood i n {\displaystyle {\begin{aligned}D_{\mathit {null}}-D_{\mathit {fitted}}&=-2\ln {\frac {\textrm {Likelihoodofnullmodel}}{{\textrm {Likelihood}}_{S}}}-\left(-2\ln {\frac {{\textrm {Likelihood}}_{\mathit {in}}}{{\textrm {Likelihood}}_{S}}}\right)\\&=-2\left(\ln {\frac {{\textrm {Likelihood}}\ of\ null\ model}{{\textrm {Likelihood}}_{S}}}-\ln {\frac {{\textrm {Likelihood}}_{\mathit {in}}}{{\textrm {Likelihood}}_{S}}}\right)\\&=-2\ln {\frac {\left({\frac {\textrm {Likelihoodofnullmodel}}{{\textrm {Likelihood}}_{S}}}\right)}{\left({\frac {{\textrm {Likelihood}}_{\mathit {in}}}{{\textrm {Likelihood}}_{S}}}\right)}}\\&=-2\ln {\frac {\textrm {Likelihoodofnullmodel}}{{\textrm {Likelihood}}_{\mathit {in}}}}\end{aligned}}} 의사-결정계수(Pseudo- R2 ) [ 편집 ] R2은 결정계수라 불리는데, 종속변수의 분산 중 어느 정도 비율(%)이 독립변수에 의해 설명되는가를 나타내는 값으로 0.00 ~ 1.00 사이의 값을 갖는다. 1.00에 가까운 값이 나올수록 완벽한 관계에 가까워지는 것을 의미하고, 선형 회귀에서의 다중 상관계수의 제곱과 거의 유사한 지표이다. 이는 모델의 적합도를 평가하는데 쓰인다. R2를 계산하는 방법은 통일되어 있지 않고 많은 방법이 존재하는데, 이들 중 대표적인 세 가지는 McFadden (1974)가 제안한 방법, Cox and Snell (1989)가 제안한 방법, 그리고 Cox and Snell R2의 수정 버전이 존재한다. McFadden이 제안한 R2은 의사-결정계수라고도 불리는데, 이는 다음과 같이 정의된다. R L 2 = D n u l l − D f i t t i n g D f i t t i n g {\displaystyle R_{L}^{2}={\frac {D_{\mathit {null}}-D_{\mathit {fitting}}}{D_{\mathit {fitting}}}}} 이 공식은 “잔차 분산(error variance)”의 감소 비율(proportionate reduction)에 해당한다. pseudo- R2의 단점은 오즈비와 직접적으로(monotonically) 연관되어 있지 않다는 점이다. 즉, 오즈비가 증가한다고 해서 반드시 R2이 증가하거나, 오즈비가 감소한다고 해서 R2이 감소하지는 않는다는 것이다. Cox and Snell이 제안한 R2는 다음과 같이 정의된다. R C & S 2 = 1 − ( Likelihood of null model Likelihood of fitted model ) 2 n {\displaystyle R_{\mathit {\mathrm {C\&S} }}^{2}=1-\left({\frac {\text{Likelihood of null model}}{\text{Likelihood of fitted model}}}\right)^{\frac {2}{n}}} 이 공식은 선형 회귀 분석과 동일한 원리를 이용하는 것으로서, 선형 회귀 분석에서의 일반적인 R2이 이 공식에 의해 예측 변수가 없는 모델과 있는 모델의 가능도로 결정된다. 이것의 장점은 최대 가능도 추정을 하는 다른 종류의 회귀 분석(예시: count data에 대한 negative binomial regression)으로 확장될 수 있다는 것이다. 하지만 Cox and Snell이 제안한 결정계수는 최대 값이 1.0보다 작고, 특정 경우에는 1.0에 비해 상당히 작은 값이 될 수도 있다는 단점이 존재한다. 의사-결정계수가 Cox and Snell이 제안한 결정계수에 비해 조금 더 선호되는 경향이 있는데, 그 이유는 선형 회귀의 결정계수와 가장 유사하고, 기저율(base rate)에 독립적이기 때문이다. 또한 Cox and Snell이 제안한 R2과는 달리 이는 범위 [0,1]을 가진다. 의사-결정계수를 이용한 해석에서의 유의점은 선형분석에서의 R2 해석과 다르다는 것이다. 로지스틱 회귀분석은 종속 변수가 범주형이므로 오차의 등분산성 가정이 만족되지 않고, 따라서 오차 분산이 예측된 확률에 따라 달라진다. 또한 로지스틱 회귀분석에서 R2은 대개 낮게 나오는 편이므로, 모델 평가에서 R2에 너무 의존할 필요는 없다. 응용 [ 편집 ] 로지스틱 회귀는 의학 또는 소셜 분석을 포함한 다양한 분야에서 많이 사용된다. 일례로, 부상을 입은 환자들의 사망 예측을 위해 사용되는 Trauma and Injury Severity Score (TRISS)는 Boyd에 의해 로지스틱 회귀를 기반으로 개발 되었다.[6] 많은 다른 의학 척도 또한 환자의 심각성을 평가하기 위해 로지스틱 회귀를 이용해서 개발되었다.[7][8][9][10] 로지스틱 회귀는 관찰된 환자의 특성(나이, 성별, 피검사 결과 등)[10][11]을 기반으로 환자의 특정 병 감염 여부를 예측한다. 상수도 설계 시 어떤 도시의 장래 인구 추정에도 로지스틱 회귀가 쓰인다. 포화 인구를 K라 하고, a, b는 상수라고 할 때, P n = K 1 + e a − b n {\displaystyle P_{n}={\frac {K}{1+e^{a-bn}}}} 상수 a, b는 다음으로 구한다. P n + P n e a − b n = K {\displaystyle P_{n}+P_{n}e^{a-bn}=K} P n e a − b n = K − P n {\displaystyle P_{n}e^{a-bn}=K-P_{n}} log ⁡ P n + ( a − b n ) log ⁡ e = log ⁡ ( K − P n ) {\displaystyle \log P_{n}+(a-bn)\log e=\log(K-P_{n})} log ⁡ P n − log ⁡ ( K − P n ) ⏟ Y = b n log ⁡ e ⏟ X − a log ⁡ e ⏟ c {\displaystyle \underbrace {\log P_{n}-\log(K-P_{n})} _{Y}=b\underbrace {n\log e} _{X}-\underbrace {a\log e} _{c}} 최소자승법을 이용해 b, c 계산 b = n Σ X Y − Σ X Σ Y n Σ X 2 − Σ X Σ X {\displaystyle b={\frac {n\Sigma XY-\Sigma X\Sigma Y}{n\Sigma X^{2}-\Sigma X\Sigma X}}} c = Σ X Σ X Y − Σ X 2 Σ Y n Σ X 2 − Σ X Σ X {\displaystyle c={\frac {\Sigma X\Sigma XY-\Sigma X^{2}\Sigma Y}{n\Sigma X^{2}-\Sigma X\Sigma X}}} c를 안다면 a 역시 구할 수 있다.[12] 확장 [ 편집 ] 확장된 로지스틱 회귀의 종류는 다양하다. 같이 보기 [ 편집 ] 더 읽기 [ 편집 ] 참조 [ 편집 ]

키워드에 대한 정보 로지스틱 회귀 분석 그래프

다음은 Bing에서 로지스틱 회귀 분석 그래프 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.

이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!

사람들이 주제에 대해 자주 검색하는 키워드 [데세TV] 로지스틱회귀분석 1부_기본 개념

  • 로지스틱 회귀분석
  • 데이터마이닝
  • 통계
[데세TV] #로지스틱회귀분석 #1부_기본 #개념


YouTube에서 로지스틱 회귀 분석 그래프 주제의 다른 동영상 보기

주제에 대한 기사를 시청해 주셔서 감사합니다 [데세TV] 로지스틱회귀분석 1부_기본 개념 | 로지스틱 회귀 분석 그래프, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.

See also  운동 후 가래 | 운동이 지나치면 독이 될때 나타나는 증상들 상위 55개 베스트 답변

Leave a Reply

Your email address will not be published. Required fields are marked *