LDA

Nov 27, 2020 21:13 · 590 words · 3 minute read LDA

library(MASS)
wais <- read.csv('WAIS-data-Table22-12.csv')[,-2]
head(wais)
##   IGROUP INFORMATION SIMILARITIES ARITHMETIC PICTURE
## 1      2           9            5         10       8
## 2      2          10            0          6       2
## 3      2           8            9         11       1
## 4      2          13            7         14       9
## 5      2           4            0          4       0
## 6      2           4            0          6       0

Data description

WAIS Data: Wechsler Adult Intelligence Scale for two categories of people
group1: people who do not present a senile factor(노인성 인자)
group2: people who do present a senile factor

변수명 데이터 타입 변수 설명
\(X_1\) NUM Information
\(X_2\) NUM Similarities
\(X_3\) NUM Arithmetic
\(X_4\) NUM Picture completion

group1은 노인성 인자를 보이지 않는 그룹이고 group2는 노인성 인자를 보인은 그룹이다. 현재 WAIS에 따라 각 피험자에 대한 4가지 지표로 표현된 데이터를 구하였다. 이 때, 이 4가지 지표(\(X_1,\cdots,X_4\))를 기준으로 IGROUP 1,2가 나뉘었을 때 이 분류를 가장 잘 나타내는 선은 무엇일까? 현재 독립변수를 INFORMATION, SIMILIARITIES, ARITHMETIC, PICTURE로 잡고 종속변수를 IGROUP으로 판단할 수 있다. 그리고 이 상황에서 LDA(Linear Discriminant Analysis)를 통하여 regrouping 후 실제 분류값과 비교할 것이다. LDA는 그룹내분산의 최소화, 그룹간거리의 최대화를 기준으로 선을 긋는다. 그룹이 2개로 나누어져있으므로 판별기준은 선으로 나타난다.

Analysis

현재 데이터를 이용해 알 수 있는 sample prior probability는 \(\dfrac{37}{49}(group1)\), \(\dfrac{12}{49}(group2)\)이다. 그리고 실제 LDA를 한 결과는 다음과 같다.

(ld.wais <- lda(formula = IGROUP~. , data=wais))
## Call:
## lda(IGROUP ~ ., data = wais)
## 
## Prior probabilities of groups:
##        1        2 
## 0.755102 0.244898 
## 
## Group means:
##   INFORMATION SIMILARITIES ARITHMETIC  PICTURE
## 1    12.56757     9.567568   11.48649 7.972973
## 2     8.75000     5.333333    8.50000 4.750000
## 
## Coefficients of linear discriminants:
##                       LD1
## INFORMATION  -0.016892707
## SIMILARITIES -0.132789096
## ARITHMETIC   -0.005504696
## PICTURE      -0.285326128
apply(ld.wais$means %*% ld.wais$scaling, 2, mean)
##       LD1 
## -3.039502

계수는 다음과 같이 나타난다.
-0.017(INFO), -0.133(SIM), -0.006(ARTH), -0.285(PICT)

계수는 lda로 계산된 식의 계수를 의미하며. 여기서는 1,2로 두개의 범주가 나눠져있으므로 ld1만 나타난다. apply를 통해 계산한 값은 판별함수의 상수항이며 계수에 평균값을 실제 대입하면 얻을 수 있는 값이다.

library(tibble)
REGROUP = predict(ld.wais, wais)$class
wais <- add_column(wais, REGROUP, .after='IGROUP')
wais$IGROUP <- as.factor(wais$IGROUP)
head(wais)
##   IGROUP REGROUP INFORMATION SIMILARITIES ARITHMETIC PICTURE
## 1      2       1           9            5         10       8
## 2      2       2          10            0          6       2
## 3      2       2           8            9         11       1
## 4      2       1          13            7         14       9
## 5      2       2           4            0          4       0
## 6      2       2           4            0          6       0

wais의 데이터를 실제 LDA를 통해 regrouping한 결과를 열에 추가하였다. 그렇다면 실제 IGROUP과 REGROUP은 얼마만큼의 차이가 있을까?

library(GGally)
## 필요한 패키지를 로딩중입니다: ggplot2
## Registered S3 method overwritten by 'GGally':
##   method from   
##   +.gg   ggplot2
ggpairs(wais[,-2], aes(colour=IGROUP))
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

ggpairs(wais[,-1], aes(colour=REGROUP))
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

table(wais[,1], wais[,2])
##    
##      1  2
##   1 37  0
##   2  6  6

위의 플랏은 IGROUP을 기준으로 색이 나뉜 것이고, 밑의 플랏은 REGROUP을 기준으로 색을 나눈 것이다.
테이블에서 보이듯이 정분류는 43개이며, 오분류는 6개이다. 정분류는 1을 1로 분류한 것이 36개, 2를 2로 분류한 게 6개이다. 그리고 igroup의 2를 regroup에서 1로 오분류 한것이 6개로 나타난다. 오분류의 확률은 \(\dfrac{6}{49}\)로 나타난다.

plot(ld.wais)

위의 그래프는 각 그룹의 데이터가 new axis에 projection된 후의 분포를 나타낸다. 실제 group1과 group2는 new axis의 0을 기준으로 어느정도 판별이 되고 있음을 보인다.