1. 구글 등에서 Mendeley를 검색하여 공식 홈페이지에서 데스크탑 버전을 먼저 다운 받는다.

  2. 설치를 완료하여 데스크탑 버전을 킨 다음, [ Tool 메뉴 > install MS Word Plugin ]을 다운받는다.

    • 기존에 Mendeley에 원하는 참고논문들을 추가해 넣은 상태
    • 플러그인 설치전에는 msword가 종료된 상태여야한다.

  3. MSWORD를 켠 뒤, [참조]탭에서 확인할 수 있다.

각종 주의점들

  1. 필드는 오로지 1줄에 다 입력시키고, 많아지면 데이터 > 그룹을 활용하자
    • 칼럼1, 칼럼2, ..., 칼럼n, 빈 칼럼에서, 빈칼럼 앞까지 그룹을 해주면 빈 칼럼이 그룹명이 된다.





  1. 필드명은 영어로 하자. 통계 프로그램에서 인식 못할 수 도 있다.
    • 대쉬(-)보다는 언더바(_)가 좋다
  1. 범주 2개형의 경우, 성별이나 기저질환 유무 등 하나를 명시하고 다른하나는 0으로 나타내자. 그리고 데이터 유효성 검사를 활용하여, 각 셀에 입력될 값을 제한시키자.

    • 나이의 경우, 정수여야하며, 연령대 제한은 범위로 할 수 있다.







  • 성별(MALE)의 경우, 목록의 형태로 0,1만 오도록 제한할 수 있으며, 반드시 콤마로 나누어주어야한다. 그러면 드랍다운이 생기면서 선택하거나, 직접 0or1을 입력할 수 있다.




최근에 나는 데이터분석 준전문가(ASdP), SQL개발자(Sqld) 자격증 시험을 치룬 상태이다. 나에게 있어서 한의학이외의 관심은 이러한 분야들이다. 특히, 빅데이터에 관심이 있고, 통계가 서툰 상태에서 간단한 교양수준의 통계책을 읽고 싶었는데 마침 독후감 과제도 있었기 때문에 이 책을 감상하는 시간을 가졌다. 저자 니시우치 히로무는 최대한 실무에 활용할 수 있는 간단한 예제와 수식을 제외한 교양 이론으로 읽는 사람으로 하여금 통찰력을 가질 수 있게 해준 것 같다. 책에서 서술한 모든 통계정보를 A4 1장으로 요약하기엔 무리가 있으니, 기존 지식을 새롭게 이해한 내용 위주로 감상을 적으려고 한다.
먼저, 통찰의 통계학에 필요한 세가지 지식을 소개한다.

  1. 평균과 비율의 본질적 의미

    • 숫자로 표현되는 양적변수는 평균으로, 문자로 표현되는 질적변수는 비율로 정리하자.
  2. 데이터를 구간으로 이해하기

    • 평균과 비율로 정의되는 하나의 점만 생각하지말고, 그것들을 떠받히는 구간을 파악해서 어느정도까지 범위에 속해있는지를 항상 생각하자.
  3. 값을 어떻게 정리해야하는지에 대한 지혜

    • 평균과 비율을 이용하여 최종적으로 조절하고 싶은 결과인 아웃컴(성과지표)를 결정하고, 그 아웃컴에 영향을 미치거나 차이를 설명하는 요인인 설명변수를 설정해서 인과관계를 이용해 값을 정리하자.
      비지니스에서 가치있는 데이터분석은 최대화하거나 최소화해야하는 항목이 무엇인지 알아내는 것이라고 한다. 그것이 바로 아웃컴이고 이 아웃컴을 좌웅하는 원인 제공의 대상자인 설명변수는 큰 의미를 가지게 된다. 이러한 설명변수를 설정하는 데 있어서 우선순위도 필요하다.
    1. 인과관계가 너무 당연한 것은 배제할 것 -> 당연해서 시간 들일 필요가 없다
    2. 아웃컴에 영향을 명백히 미치더라도 조절이 가능한 변수여야한다
    3. 분석된 적이 별로 없는 변수여야한다.

이렇게 전반적인 통계에 대한 통찰을 설명해주고, 대표값들(평균, 표준편차) 및 가설검정, 회귀분석의 종류, 결과값이 없는 상태에서 특징을 가지고 분류할 수 있는 인자분석과 군집분석, 마지막에는 총정리를 해주었다. 또한 수학적으로 궁금한 부분은 따로 부록으로 싣어놓아서 필요하면 찾아볼 수 있게 해주었다.
특히나 기억에 남는 서술을 골라서 기술해보면, 제 1종 오류(귀무가설이 옳은데, 대립가설을 채택한 경우)를 덜렁이라 표현하며 제 2종 오류(귀무가설이 틀린데, 귀무가설을 기각하지 않은 경우)를 멍청이라고 표현하였다. 사실 덜렁이는 유의미한 차이가 없는데도 있다고 우기는 경우라고 할 수 있는데, 가설검정의 p-value값이 0.05이하가 나왔다면 덜렁이가 되지 않는다. 이러한 경계선을 유의수준이라고 하며, 제 1종 오류를 범하더라도 인정해주는 최대 한계선이기 때문이다. 즉, p-value 0.05는 덜렁이가 되지 확률 95%를 의미하는 것이기도 하다. 반대로 멍청이는 유의미한 차이가 있는데도 놓치는 경우인데, 제 1종 오류(덜렁이)보다 덜 중요한 문제로서, 멍청이가 되는 경우의 수는 적다고 한다. 다음으로, 회귀분석에 대한 서술이다. 그 중에서도 단일회귀분석에 대한 설명이 참 재미있었다. 만약 어떤 아웃컴을 설명하는 변수가 1개만 있다고 가정하였을 때, 중학수학으로도 회귀식을 표현할 수 있다. 그러나 그 이전에 설명변수를 x축에, 아웃컴을 y축에 놓고 점을 찍는 산포도를 관찰할 수 있는데, 이것은 경향성(상관관계)를 볼 수 있지만, 인과관계는 성립될 수 없다고 하였다. 왜냐하면, 설명변수는 1개라고 설정해놓았을지라도 미처 발견하지 못한 설명변수들이 여러개가 있을 수 있고, 그것들이 통제되지 않는 이상 인과관계는 성립하지 않기 때문이다.
이러한 산포도 위에는 회귀식을 그을 수 있는데 Y= b0 + aX로서, 중학교 직선의 식에 해당한다. 그리고 기울기 a를 해석하는 방법인 "a가 한단위 증가함에 따라 Y가 얼마나 증가하는지"를 관찰하면 된다. 이렇게 단일회귀분석은 간단한 것이었다. 이것 이외에도 다양한 분포와 가정들을 설명해놓았지만, 정보의 양이 너무 많아서 수식과 함께 공부하는 시간은 따로 가지려고 한다.
만약, 내가 한의사가 되고 논문을 쓰거나 사업을 하려면 통계는 필수덕목일 것이다. 요즘같은 빅데이터 시대에서 의학통계에 대한 전공수업이나 교양수업이 부실하다는 것은 너무 안타깝다. 개인적이라도 이러한 분야에 관심을 가지고, 교양으로서 통계를 친숙하게 만들 필요성을 절실하게 느끼는 본과 4학년이다.

로지스틱 회귀분석

지금까지 학습한 선형 회귀분석 단순/다중은 모두 종속변수Y가 연속형이었다.
로지스틱회귀분석종속변수가 범주형이면서 0 or 1인 경우 사용하는 회귀분석이다.

로지스틱 회귀분석을 설명하기 위해서는 먼저 로짓 변환오즈에 대해서 알아야한다.

왼쪽그림의 경우, Y가 0 or 1(사망/생존, 실패/성공, 불합격/합격)이라면 선형회귀로는 fitting하기가 힘들다. 그래서 곡선으로 fitting하기 위해 사용하는 것이 logistic함수 = 로짓변환이다.

Odds이고, Odds ratio비의 비율이다.
Odds의 해석은 확률에서 시작되어 실패에 비해 성공할 확률의 비를 의미하며 , odds = p / 1-p로 계산한다.
예를 들어, 게임에서 이길 확률이 1/5, 질 확률이 4/5이면, 게임에서 이길 odds 1/4이 되며, 계산된 값을 바탕으로 5번 중에, 4번 질 동안 1번 이긴다라고 해석한다.

Odds에 Log를 취한 것이 바로 로짓(Log p/1-p)이다.
예를 들어, 아래와 같은 교차표가 있다고 가정해보자.
Odds라는 것은 각 독립변수(drugA, drugB)에 대해 실패/성공에 대한 확률을 구한 뒤, 각각 구하는 것이며, 각 약에 대한 <생존Odds>가 구해지면 -> Odds ratio도 계산할 수 있다.
Odds ratio는 위험요인과 질병발생간의 연관성을 나타낼 때 사용 + 논문기재시 신뢰구간도 같이 제시해야한다.
예를 들어, 대조군(DrugB)와 실험군(DrugA)를 이용해서, 위험요인(DrugA)와 생존/사망의 연관성을 나타낼때, 각각의 Odds -> Odds ratio를 구한 뒤 제시한다.
오즈비 = 교차비 = 승산비 = 대응위험도 라는 표현도 쓴다.

  1. Odds(A)구하기

    • P(A, A에 대해 생존확률) = 20 / 52 = 0.38
    • 1-P(A, 사망확률) = 0.62
    • Odds(A) = 실패(사망)에 비해 생존(성공)할 확률의 비 = 0.38 / 0.62 = 0.61
    • A약 먹으면, 100명 사망할 동안, 61명 생존
  2. Odds(B)구하기

    • P(B, 생존/성공확률) = 24/66 = 0.63
    • 1-P(B, 사망/실패확률) = 0.37
    • Odds(B) = 0.63 / 0.37 = 1.7
    • B약 먹으면, 100명 사망할 동안, 170명 생존
  3. Odds ratio구한 뒤 해석하기

    • B에 대한 A의 Odds ratio = 0.61 / 1.7 = 0.36
    • 해석 : B에 비해 A일 때, 생존(성공)이 0.36배 = 64%가 생존율(성공률)이 떨어진다

로짓 변환

일반 선형회귀모형 glm : f(x) = b0 + b1X1 + b2X2 + .. bpXp

  • f(x)는 링크함수라고 한다. 이 f(x)자리에 특별한 함수들이 들어가서 구체적인 회귀분석을 만든다.
  • 다중선형 회귀분석 : Y = b0 + b1X1 + b2X2 + .. bpXp
  • 로지스틱 회귀분석 : ln( p/1-p ) = = b0 + b1X1 + b2X2 + .. bpXp

즉, 로지스틱 회귀분석은 일반회귀모형의 링크함수를 로짓으로 변형한 분석이다.

선형회귀분석은 Y값이 -무한대 < Y < +무한대의 연속형이다.
그러나 로지스틱 회귀분석의 경우

  • 먼저, p는 0 < p < 1
  • 0< 1-p < 1
  • p가 0에 가까울 경우 : p/1-p = 0/1 = 0
  • p가 1에 가까울 경우 : p/1-p = 1/0 = 무한대
  • p/1-p(오즈)의 범위 : 0 < Odds < 무한대
  • ln( p / 1-p )의 범위 : -무한대 < 로짓 < +무한대

역시.. 링크함수의 범위가 -무한대 < <+무한대 범위를 가지게 된다.

독립변수가 1개인 상황의 로지스틱 회귀분석의 식을 p(독립변수X가 성공할 확률)에 대해서 정리해보자.

그리고 이 식을 X에 대한 P의 그래프로 나타내면, P는 0과 1의 값을 가진다.

관측치x를 대입하면 P는 0 or 1로 fitting시킬 수 있게 된다.

로지스틱 회귀분석에서 통계량의 이해

ln(p/1-p) = b0 + b1X1 + b2X2 + ... + bpXp의 로지스틱회귀분석에서
X1을 위험인자라 가정하고, 아래에 대한 해석을 해보자.
오즈비(Odd ratio)에 대한 해석

  1. 위험인자 있을 때의 로짓1 = 회귀식1(X1=1대입)을 만든다.
  2. 위험인자 없을 때의 로짓2 = 회귀식2(X1=0대입)을 만든다.
    • 회귀식에서 b0, b2X2, ... bpXp는 모두 같고, X1만 대입한 식이 다를 것이다.
  3. 로짓1과 로짓2를 뺀다.
    • 우항은 b1*1 - b1*0 으로 인해 b1만 남는다.
  4. ln(p/1-p) - ln(p'/1-p') = b1
  5. ln( 위험인자있을때의 오즈 / 위험인자없을때의 오즈) = b1
    • ln( 오즈비 ) = b1 ==> b1을 ln(오즈비)로 생각하자.
  6. b1 = ln(오즈비)이므로, b1에 exp취한 값이 오즈비
    • R에서 실제 구해지는 결과는 b1이므로, exp를 취한 것(exp(b1))을 오즈비로 해석하면 된다.
    • exp(b1) = Odds ratio는 기준이 1이며 효과가 없다로 해석한다. 즉, 위험요인 0에 비해 위험요인1인 경우, 사망율 1배 -> 0% 사망율이 떨어진다. = 효과없다.
    • 1보다 클 경우risky로 해석한다. 즉, 위험요인 0에 비해 위험요인 1인 경우 사망률이 1.5배 -> 사망율이 50% 증가한다. risky는 분모오즈의 상황(base line, 대조군, X1=0)에 비해 분자오즈의 상황(위험인자, 실험군, X1=1)이 더 큰 상황
    • 1보다 작을 경우protective로 해석한다. 즉, 위험요인 0에 비해 위험요인 1인 경우 사망률이 0.5배 -> 사망률이 50% 감소한다.
  7. 유의사항1 : 단, 다른효과가 일정(동일)한 상태라는 가정 이 있어야 한다.
  8. 유의사항2 : 신뢰구간(Confidence Interval)가 같이 제시해야하며, 적은 값을 기준으로 소극적(보수적)으로 해석한다.
    • 예를 들어, OR(odds ratio)의 95% CI = 5.4 ( 3.3 ~ 7.8) => 3.3기준으로 최소 3.3배는 위험하다로 소극적 해석


예를 들어보기

종속변수survived(Y)는 0과 1로 구성되어 있고, 0 = 사망, 1 = 생존 이며, 이것을 예측한다고 가정해보자.
R에서 선형회귀분석을 한다면 lm()이며,
R에서 로지스틱 회귀분석을 한다면, glm() + family = 'binomial'인자를 사용해야한다.

  • model <- glm( survived ~ . , family = 'binomial'(link = 'logit'), data= train)

model을 summary()했을 때, Estimated로 나온 것은 각 변수들의 회귀계수이다. 여기에 exp()를 취해야지 Odds ratio가 나온다.

Coefficiets(회귀계수)에는 절편(Intercept) + 각 변수들의 기울기와 표준편차 + wald's z-statistics + p-value 가 나온다.

만약 범주형 변수 sex의 회귀계수를 보면, 범주형이므로 male은 기준이 되어 male에 비해 female 한 단위 증가시 Y의 변화량이 나타날 것이다.
그 추정치는 -2.6609987이다. 이것은 bp(회귀계수, 기울기)이므로, exp()를 취해야지 Odds ratio가 나온다.
exp(-2.66) = 0.069 => *남자(ref, Xp=0)에 비해 female(Xp=1, female)의 생존율 이 0.069배 감소한다 *. 왜냐하면 회귀계수가 음수이므로 반대로 해석한다. = female의 생존율은 93.1% 증가한다.

직접적으로 바로 exp( model$coefficients)오즈비(Odds ratio)만 관찰할 수 있다.
Age의 오즈비가 0.959가 나왔다? => age가 한단위 증가할수록 생존율이 0.959배 증가한다. -> 0.041 감소 -> 생존률이 4.1% 감소한다.

직접적으로 바로 신뢰구간을 포함한 오즈비를 보는 방법은 exp( confint(model) )를 통해 확인할 수 있다. 2.5% cutoff와 97.5% cut off를 제시한다.

회귀분석 이전에 이상치 + 잔차를 통한 가정사항을 확인해야한다.

회귀모델의 이상치 확인

  1. 이상치 확인1 - outlierTest()
    개별적으로 검사하는 것이 아니라 회귀모델 자체를 넣어주면 outlierTest( 모델 )함수로 확인할 수 있다. 잔차가 2배이상으로 크거나 2배이하로 작은 값을 이상치로 detect한다
    결과에서, 해당변수의 P-value가 0.05이하로 나오면 이상치라 판단하고, 제거한 모델을 만들고 다시 회귀분석한다. ( H0는 이상치가 아니다 인가보다)

    x축 = 지레점(Leverage) => 높으면 지렛점
    y축 = 표준 잔차 => 높으면 이상치
    점선 => i번째 변수가 빠진상태에서, 회귀계수에 얼마나 큰 영향을 주는지에 대한 영향점영향관측치)

  2. 이상치확인2 - influencePlot()
    x축이 크면 지레점
    y축이 크면 이상치
    원의크기가 크면 Cook's Distance에 대한 비율로서 정해지는 영향점



잔차진단을 통한 가정사항 확인

잔차 = 관측치(Y, observed) - 추정치(estimated)

제대로 된 모델에서 나온 잔차

  1. 정규분포를 따르고
  2. 분산이 일정하고
  3. 특별판 추세(패턴)이 없어야한다.

=> 잔차에 추세(패턴)을 보인다면, 회귀모형에 포함되어야할 정보가 빠졌다는 것이다.



회귀분석의 이론적 배경

회귀모형( Y = b0 + b1X + e)의 가정

  1. X는 비확률변수이며, 주어진 어떤 값
  2. e는 서로 독립이며, 정규분포 N(0,o^2)을 따른다.
    • 특히 2번의 가정이 맞지 않는 경우, 단순 회귀분석은 의미가 없다.

e(오차, 엡실론)이 서로 독립이 아닌 경우

  • 예를들어, 시계열 데이터는 각 데이터마다 관계성이 있으므로 오차가 독립이 아니다. 이럴때는 Durbin Watson 의 D통계량을 체크해야한다고 한다.

이분산(Heteroscedasticity)의 문제

  • 잔차가 등분산이 아닌 경우는 OLS(최소제곱법, 오차의제곱의 합이 최소가 되도록하는 회귀식 구하기)가 아닌 WLS(Weighted Least Square), GLS(Generalized Least Square)를 사용해야한다고 한다.

이산적(Discrete) 종속변수인 경우

  • 종속변수Y가 연속형(숫자형)이 아닌 경우에는, 정규분포를 따르지 않으므로 로짓/프로빗 모형을 적용해야한다고 한다.


결과적으로 잔차( resid( 모델 )) 에서 체크해야할 사항 3가지

  1. 정규성 검정 : 만약 만족하지 않는 경우, Log, Root를 취해서 정규분포를 취하도록 만든다.
    1) resid( lm() )을 shapiro.test()에 넣으면 된다. H0 : 정규분포를 따른다.
    2) normal Q-Q plot에서 45도 line에 있다면 정규분포를 따른다.
    3) car패키지의 qqPlot()으로 정규성을 평가하면 신뢰구간(CI)까지 표시해준다.

  2. 등분산성 검정 : 잔차가 동일하 분산을 가지지 않는 경우, 가중치를 고려한 WLS, 혹은 GLS를 이용해서 회귀식(선)을 만든다.

    • Fitted Value와 Residual값(or 표준화된 Residual값)plot으로 그려서 평행하게 분포(특별한 패턴X)되면 등분산성을 만족한다. 만약 cone모양으로 점들이 퍼진다면, 등분산성을 만족하지 않는 것이다.
  3. 독립성 검정 : 잔차가 독립적이지 않다면, 시계열분석밖이다.

    • 잔차의 독립성은 durbinWatsonTest( fit )를 통해한다.
    • dw test의 결과인 D-W statistic0 ~ 4의 값을 가지며, 0은 양의 상관관계를 가져 독립x, 4는 음의 상관관계를 가져 독립x, 2가 독립적인 것을 의미한다. 검정결과가 2에 가깝다면 독립인 것이다.
    • p-values는 rho(자기상관관계)에 대한 것이다. 만약 p값이 0.05보다 작다면, 자기상관관계에 있다.
  4. 한번에 검정하기 by gvlma패키지의 gvlma( 모델 )

    • gvlma(모델) 이후 summary()를 하면 Global stat값이 나온다. 이때는 p-value가 0.05보다 커서 H0가 기각 안되어야 H0 : 3+1(비선형회귀가능성)가정이 다 만족하는 것
    • 만약 summary( gvlma(모델) )의 결과 Global stat의 p-value가 0.05보다 작다면 H0가 기각되어 적어도 1가지 이상이 잔차의 가정을 만족하지 x => 1,2,3 다 하나씩 봐야한다. 하지만 잔차의 진단에서는 p-value를 너무 strict하게 보지 않아도 된다.

+ Recent posts