Description for Discriminant Analysis
ID x1 x2 x3 x4 y
1 1 -0.448 -0.410 1.086 0.452 1
2 2 -0.563 -0.311 1.513 0.164 1
3 3 0.064 0.015 1.007 0.397 1
4 4 -0.072 -0.093 1.454 0.258 1
5 5 -0.100 -0.091 1.564 0.668 1
6 6 -0.142 -0.065 0.706 0.279 1
x1 x2 x3 x4
1 -0.448 -0.410 1.086 0.452
2 -0.563 -0.311 1.513 0.164
3 0.064 0.015 1.007 0.397
4 -0.072 -0.093 1.454 0.258
5 -0.100 -0.091 1.564 0.668
6 -0.142 -0.065 0.706 0.279
※ 비록 예제에서는 적용하지 않겠지만, 데이터의 전처리는 판별분석의
응용에서 중요하다. 판별분석의 적용에 앞서 수치형 변수는 중심화와 척도화,
즉, 함수 scale(, center = TRUE, scale = TRUE)
를 이용하여
정규화를 수행하여야 한다.
부분집단별 모공분산행렬의 동일성 여부
에 따라 선형
판별분석과 이차 판별분석으로 구분되어 질 수 있다.
biotools
에서 제공하는 함수
boxM()
을 통해 수행할 수 있다.# 모공분산행렬의 동일성에 대한 검정pacman::p_load("biotools")
finance.boxM <- boxM(finance.X, # 데이터행렬NAfinance$y) # 집단변수
finance.boxM
Box's M-test for Homogeneity of Covariance Matrices
data: finance.X
Chi-Sq (approx.) = 64.869, df = 10, p-value = 4.294e-10
Result!
가설 \(H_0 :
\boldsymbol{\Sigma}_1=\boldsymbol{\Sigma}_2\), \(H_1 :
\boldsymbol{\Sigma}_1\ne\boldsymbol{\Sigma}_2\)에 대하여,
카이제곱 검정통계량 \(\chi^2\) 값은
64.869, \(p\)-값은 0에 가깝다. 이에
근거하여, 유의수준 5%에서 \(p\)-값이
0.05보다 작기 때문에 귀무가설 \(H_0\)를
기각할 수 있다. 즉, 두 부분집단의 모공분산행렬은 동일하지 않다.
※ 하지만, 판별분석에 대해 전반적으로 설명하기 위해 모공분산행렬의 동일성 가정을 만족하지 않아도 재무지표 데이터를 이용한다.
# 집단 분류x1 <- as.matrix(finance.X[which(finance$y==1),]) # y = 1인 집단 NAx2 <- as.matrix(finance.X[which(finance$y==2),]) # y = 2인 집단NAn1 <- nrow(x1) # y = 1인 집단의 개체 개수n2 <- nrow(x2) # y = 2인 집단의 개체 개수
# 평균벡터 계산xbar1 <- apply(x1, 2, mean)
print(xbar1,digits=4)
x1 x2 x3 x4
-0.07319 -0.08181 1.36705 0.43786
x1 x2 x3 x4
0.23492 0.05472 2.58040 0.42812
# 합동 표본공분산 행렬
pacman::p_load("Morpho")
# 집단에 대한 합동 표본공분산행렬S <- covW(finance.X, # 데이터행렬NAas.factor(finance$y)) # 집단변수
S
x1 x2 x3 x4
x1 0.044975115 0.017034959 0.05723586 -0.001399235
x2 0.017034959 0.010721643 0.01647615 0.001627191
x3 0.057235863 0.016476150 0.64941902 0.029682931
x4 -0.001399235 0.001627191 0.02968293 0.034807846
attr(,"means")
x1 x2 x3 x4
1 -0.07319048 -0.08180952 1.367048 0.4378571
2 0.23492000 0.05472000 2.580400 0.4281200
Caution!
Package Morpho
에서 제공하는 함수
covW()
를 통해 합동 표본공분산행렬을 얻을 수 있다.
[,1]
[1,] -4.384
[,1]
x1 2.844
x2 -16.625
x3 1.728
x4 11.997
[,1]
[1,] -6.756
[,1]
x1 4.739
x2 -9.065
x3 3.325
x4 10.078
Result!
유도된 선형 판별함수는 다음과 같으며, 각 선형
판별함수들은 집단 1, 2에 속할 확률이다. \[
\begin{align}
L_1(\boldsymbol{x})&=-4.384+2.844x_1-16.625x_2+1.728x_3+11.997x_4,\\
L_2(\boldsymbol{x})&=-6.756+4.739x_1-9.065x_2+3.325x_3+10.078x_4.
\end{align}
\] 또한, 두 집단 선형 판별함수의 차이를 계산하면 다음과 같다.
\[
\begin{align}
L(\boldsymbol{x})=L_2(\boldsymbol{x})-L_1(\boldsymbol{x})=-2.372+1.895x_1+7.560x_2+1.597x_3-1.919x_4.
\end{align}
\] 선형 판별계수들의 부호에 관심을 가지고 이를 해석해보면, \(x_1\)(총부채 대비 현금 유출입), \(x_2\)(총자산 대비 순이익), \(x_3\)(채무 대비 자산)이 클수록 \(L(\boldsymbol{x})\) 값이 커지므로 파산
기업(\(y=1\))에 비해 건전 기업(\(y=2\))에 속할 확률의 추정치가 커지며,
반면에 \(x_4\)(순매출 대비 자산)이
클수록 \(L(\boldsymbol{x})\) 값이
작아지므로 건전 기업(\(y=2\))에 속할
확률의 추정치가 작아짐을 알 수 있다.
Caution!
Package MASS
에서 제공하는 함수
lda()
를 통해 두 집단 선형 판별함수의 차이
\(L(\boldsymbol{x})\)를 쉽게 얻을 수
있다. 다만, 함수 lda()
에서는 각 변수들을 중심화(평균을
0으로 만듦)한 후 분석을 수행하며, 판별계수벡터를 정규화한다. 함수
lda()
에 대한 자세한 옵션은 여기를
참고한다.
# 함수 ldapacman::p_load("MASS")
finance.lda <- lda(y ~ x1 + x2 + x3 + x4, # formula : 반응변수(집단변수) ~ 판별변수수
# prior = c(1/2, 1/2), # 사전확률 data = finance)
finance.lda
Call:
lda(y ~ x1 + x2 + x3 + x4, data = finance)
Prior probabilities of groups:
1 2
0.4565217 0.5434783
Group means:
x1 x2 x3 x4
1 -0.07319048 -0.08180952 1.367048 0.4378571
2 0.23492000 0.05472000 2.580400 0.4281200
Coefficients of linear discriminants:
LD1
x1 1.0023665
x2 3.9998578
x3 0.8450508
x4 -1.0153181
Result!
“Prior probabilities of groups”는 사전확률을
의미하며, 함수 lda()
의 옵션 prior
을 이용하여
직접 지정할 수 있다. 만약 옵션으로 따로 지정해주지 않는다면, 예제처럼
데이터에서 계산된 각 집단의 비율이 사전확률로 지정된다. 즉, 데이터
“finance”에서 파산 기업(\(y=1\))의
비율은 46%, 건전 기업(\(y=2\))의 비율은
54%이다. “Groups means”는 판별변수들의 집단별 평균을 의미한다. 예를
들어, 변수 \(x_4\)(순매출 대비 자산)은
두 집단의 평균이 0.438과 0.428로서 큰 차이가 없으므로, 이 변수는 판별에
기여하는 정도가 작을 것임을 짐작할 수 있다. “Coefficients of linear
discriminants”는 선형 판별계수로 이 계수들을 이용하여 선형 판별함수를
표현하면 다음과 같다. \[
\begin{align}
L(\boldsymbol{x})=1.002(x_1-\bar{x}_1)+3.999(x_2-\bar{x}_2)+0.845(x_3-\bar{x}_3)-1.015(x_4-\bar{x}_4).
\end{align}
\] 여기서, \(\bar{x}_i\)는 \(i\)번째 판별변수의 평균을 의미한다.
선형 판별계수들의 부호에 관심을 가지고 이를 해석해보면, \(x_1\)(총부채 대비 현금 유출입), \(x_2\)(총자산 대비 순이익), \(x_3\)(채무 대비 자산)이 클수록 \(L(\boldsymbol{x})\) 값이 커지므로 파산
기업(\(y=1\))에 비해 건전 기업(\(y=2\))에 속할 확률의 추정치가 커지며,
반면에 \(x_4\)(순매출 대비 자산)이
클수록 \(L(\boldsymbol{x})\) 값이
작아지므로 건전 기업(\(y=2\))에 속할
확률의 추정치가 작아진다.
# 새로운 개체에 대한 집단 예측
pred.finance <- predict(finance.lda, # 함수 lda로부터 출력된 객체NAfinance) # 새로운 데이터pred.finance
$class
[1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 2 1 2 2 2 2 2 2 2 2 2 2 2 2
[34] 1 2 2 2 2 2 2 2 2 2 2 2 2
Levels: 1 2
$posterior
1 2
1 0.9949306255 0.005069374
2 0.9710865699 0.028913430
3 0.7534057857 0.246594214
4 0.7703536176 0.229646382
5 0.8652242888 0.134775711
6 0.9142224102 0.085777590
7 0.7275761568 0.272423843
8 0.7900065070 0.209993493
9 0.6986301491 0.301369851
10 0.8910355393 0.108964461
11 0.9909008401 0.009099160
12 0.5721926558 0.427807344
13 0.5186738620 0.481326138
14 0.9767718689 0.023228131
15 0.2830962416 0.716903758
16 0.1444402841 0.855559716
17 0.7959204159 0.204079584
18 0.7430841132 0.256915887
19 0.7948128315 0.205187169
20 0.4167975396 0.583202460
21 0.9765310652 0.023468935
22 0.0777227190 0.922277281
23 0.4312959648 0.568704035
24 0.0206146974 0.979385303
25 0.1849003795 0.815099620
26 0.0107529268 0.989247073
27 0.0102128980 0.989787102
28 0.3399783669 0.660021633
29 0.3647147773 0.635285223
30 0.1440766724 0.855923328
31 0.3964772846 0.603522715
32 0.2946098358 0.705390164
33 0.3978140247 0.602185975
34 0.8742880520 0.125711948
35 0.1431237130 0.856876287
36 0.2675674570 0.732432543
37 0.1440439732 0.855956027
38 0.2674111138 0.732588886
39 0.0819781313 0.918021869
40 0.3937354665 0.606264534
41 0.2631920057 0.736807994
42 0.0033216079 0.996678392
43 0.2147405101 0.785259490
44 0.0281618125 0.971838188
45 0.1156120162 0.884387984
46 0.0008935622 0.999106438
$x
LD1
1 -2.967536513
2 -2.033574427
3 -0.765301792
4 -0.814741367
5 -1.158132769
6 -1.426330659
7 -0.694143990
8 -0.875400305
9 -0.619242570
10 -1.286156120
11 -2.655911886
12 -0.328273634
13 -0.213959740
14 -2.152494806
15 0.317148807
16 0.766703877
17 -0.894459197
18 -0.736310023
19 -0.890858943
20 0.003303386
21 -2.146907954
22 1.134294600
23 -0.028105557
24 1.868209164
25 0.610423361
26 2.217831504
27 2.245380525
28 0.176545470
29 0.119179080
30 0.768262185
31 0.047866131
32 0.287492462
33 0.044912308
34 -1.200478173
35 0.772361805
36 0.358332875
37 0.768402482
38 0.358755017
39 1.103646750
40 0.053935539
41 0.370206933
42 2.843285122
43 0.511538395
44 1.699071683
45 0.902017830
46 3.539213134
Caution!
함수 predict()
를 이용하면 유도된
선형 판별함수로부터 새로운 개체에 대한 집단 예측을 수행할 수 있다.
Result!
함수 predict()
는 3개의 객체를
생성한다.
x
: 새로운 개체에 대한 선형 판별점수 \(L(\boldsymbol{x})\) 값이 저장되어
있다.posterior
: 예측된 소속 확률 \(P(y=g|\boldsymbol{x})\)이 저장되어
있다.class
: 예측된 소속 집단이 저장되어 있다.
# 선형 판별점수, 예측 확률, 예측 집단pf <- cbind(finance, pred.finance$x, pred.finance$posterior, pred.finance$class)
pf
ID x1 x2 x3 x4 y LD1 1
1 1 -0.448 -0.410 1.086 0.452 1 -2.967536513 0.9949306255
2 2 -0.563 -0.311 1.513 0.164 1 -2.033574427 0.9710865699
3 3 0.064 0.015 1.007 0.397 1 -0.765301792 0.7534057857
4 4 -0.072 -0.093 1.454 0.258 1 -0.814741367 0.7703536176
5 5 -0.100 -0.091 1.564 0.668 1 -1.158132769 0.8652242888
6 6 -0.142 -0.065 0.706 0.279 1 -1.426330659 0.9142224102
7 7 0.035 0.014 1.504 0.708 1 -0.694143990 0.7275761568
8 8 -0.065 -0.056 1.373 0.403 1 -0.875400305 0.7900065070
9 9 -0.072 -0.007 1.372 0.336 1 -0.619242570 0.6986301491
10 10 -0.135 -0.143 1.419 0.434 1 -1.286156120 0.8910355393
11 11 -0.229 -0.296 0.331 0.182 1 -2.655911886 0.9909008401
12 12 0.073 0.020 1.312 0.249 1 -0.328273634 0.5721926558
13 13 0.010 0.001 2.149 0.696 1 -0.213959740 0.5186738620
14 14 -0.227 -0.231 1.191 0.660 1 -2.152494806 0.9767718689
15 15 0.145 0.050 1.876 0.272 1 0.317148807 0.2830962416
16 16 0.370 0.109 1.994 0.382 1 0.766703877 0.1444402841
17 17 -0.075 -0.082 1.507 0.421 1 -0.894459197 0.7959204159
18 18 0.045 0.026 1.675 0.949 1 -0.736310023 0.7430841132
19 19 0.011 -0.003 1.260 0.608 1 -0.890858943 0.7948128315
20 20 0.122 0.105 1.143 0.165 1 0.003303386 0.4167975396
21 21 -0.284 -0.270 1.272 0.512 1 -2.146907954 0.9765310652
22 22 0.513 0.100 2.487 0.536 2 1.134294600 0.0777227190
23 23 0.076 0.019 2.006 0.530 2 -0.028105557 0.4312959648
24 24 0.377 0.107 3.265 0.354 2 1.868209164 0.0206146974
25 25 0.193 0.047 2.250 0.330 2 0.610423361 0.1849003795
26 26 0.324 0.071 4.240 0.627 2 2.217831504 0.0107529268
27 27 0.313 0.051 4.450 0.685 2 2.245380525 0.0102128980
28 28 0.118 0.049 2.251 0.692 2 0.176545470 0.3399783669
29 29 -0.017 0.023 2.053 0.348 2 0.119179080 0.3647147773
30 30 0.216 0.077 2.348 0.397 2 0.768262185 0.1440766724
31 31 0.170 0.069 1.797 0.571 2 0.047866131 0.3964772846
32 32 0.146 0.051 2.169 0.550 2 0.287492462 0.2946098358
33 33 -0.098 -0.012 2.502 0.577 2 0.044912308 0.3978140247
34 34 0.139 -0.031 0.461 0.264 2 -1.200478173 0.8742880520
35 35 0.137 0.072 2.612 0.515 2 0.772361805 0.1431237130
36 36 0.148 0.056 2.234 0.556 2 0.358332875 0.2675674570
37 37 0.163 0.048 2.308 0.197 2 0.768402482 0.1440439732
38 38 0.290 0.059 1.838 0.378 2 0.358755017 0.2674111138
39 39 0.538 0.106 2.329 0.483 2 1.103646750 0.0819781313
40 40 -0.333 -0.085 3.012 0.473 2 0.053935539 0.3937354665
41 41 0.478 0.091 1.244 0.184 2 0.370206933 0.2631920057
42 42 0.560 0.111 4.291 0.444 2 2.843285122 0.0033216079
43 43 0.202 0.079 1.936 0.301 2 0.511538395 0.2147405101
44 44 0.474 0.138 2.916 0.448 2 1.699071683 0.0281618125
45 45 0.166 0.035 2.452 0.137 2 0.902017830 0.1156120162
46 46 0.580 0.037 5.059 0.126 2 3.539213134 0.0008935622
2 pred.finance$class
1 0.005069374 1
2 0.028913430 1
3 0.246594214 1
4 0.229646382 1
5 0.134775711 1
6 0.085777590 1
7 0.272423843 1
8 0.209993493 1
9 0.301369851 1
10 0.108964461 1
11 0.009099160 1
12 0.427807344 1
13 0.481326138 1
14 0.023228131 1
15 0.716903758 2
16 0.855559716 2
17 0.204079584 1
18 0.256915887 1
19 0.205187169 1
20 0.583202460 2
21 0.023468935 1
22 0.922277281 2
23 0.568704035 2
24 0.979385303 2
25 0.815099620 2
26 0.989247073 2
27 0.989787102 2
28 0.660021633 2
29 0.635285223 2
30 0.855923328 2
31 0.603522715 2
32 0.705390164 2
33 0.602185975 2
34 0.125711948 1
35 0.856876287 2
36 0.732432543 2
37 0.855956027 2
38 0.732588886 2
39 0.918021869 2
40 0.606264534 2
41 0.736807994 2
42 0.996678392 2
43 0.785259490 2
44 0.971838188 2
45 0.884387984 2
46 0.999106438 2
# 오분류표
pacman::p_load("DescTools")
# 도수분포표
finance.ctbl1 <- table(finance$y, # 실제 집단 pred.finance$class) # 예측된 집단finance.ctbl1
1 2
1 18 3
2 1 24
Desc(finance.ctbl1, # 도수분포표
digits = 4)
--------------------------------------------------------------------
finance.ctbl1 (table)
Summary:
n: 5e+01, rows: 2e+00, columns: 2e+00
Pearson's Chi-squared test (cont. adj):
X-squared = 28.154, df = 1, p-value = 1.121e-07
Fisher's exact test p-value = 8.054e-09
McNemar's chi-squared = 0.25, df = 1, p-value = 0.6171
estimate lwr.ci upr.ci'
odds ratio 144.000 13.813 1501.237
rel. risk (col1) 21.429 3.116 147.380
rel. risk (col2) 0.149 0.052 0.426
Phi-Coefficient 0.827
Contingency Coeff. 0.637
Cramer's V 0.827
1 2 Sum
1 freq 2e+01 3e+00 2e+01
perc 39.1304% 6.5217% 45.6522%
p.row 85.7143% 14.2857% .
p.col 94.7368% 11.1111% .
2 freq 1e+00 2e+01 2e+01
perc 2.1739% 52.1739% 54.3478%
p.row 4.0000% 96.0000% .
p.col 5.2632% 88.8889% .
Sum freq 2e+01 3e+01 5e+01
perc 41.3043% 58.6957% 100.0000%
p.row . . .
p.col . . .
----------
' 95% conf. level
Caution!
Package DescTools
에서 제공하는
함수 Desc()
를 이용하여 오분류표를 작성할 수 있다.
Result!
원래 집단 1에 속하는 21개의 개체 중
18개(18/21=85.7%)는 집단 1에 제대로 분류되었으나 3개(3/21=14.3%)는 집단
2로 잘못 분류되었다. 또한, 원래 집단 2에 속하는 25개의 개체 중
1개(1/25=4%)는 집단 1로 잘못 분류되었으나 24개(24/25=96%)는 집단 2에
제대로 분류되었다. 유도된 선형 판별함수에 대한 오류율은
(3+1)/46=8.7%이며, 정확도는 (18+24)/46=91.3%이다.
MASS
에서 제공하는 함수
qda()
를 통해 수행할 수 있으며, 자세한 옵션은 여기를
참고한다.# 이차 판별분석pacman::p_load("MASS")
finance.qda <- qda(y ~ x1 + x2 + x3 + x4, # formula : 반응변수(집단변수) ~ 판별변수수
data = finance)
finance.qda
Call:
qda(y ~ x1 + x2 + x3 + x4, data = finance)
Prior probabilities of groups:
1 2
0.4565217 0.5434783
Group means:
x1 x2 x3 x4
1 -0.07319048 -0.08180952 1.367048 0.4378571
2 0.23492000 0.05472000 2.580400 0.4281200
Caution!
이차 판별분석에서는 판별계수벡터를 출력하지
않는다.
# 새로운 개체에 대한 집단 예측
pred2.finance <- predict(finance.qda, # 함수 qda로부터 출력된 객체NAfinance) # 새로운 데이터cbind(finance, pred2.finance$posterior, pred2.finance$class)
ID x1 x2 x3 x4 y 1 2
1 1 -0.448 -0.410 1.086 0.452 1 1.000000e+00 3.116818e-39
2 2 -0.563 -0.311 1.513 0.164 1 1.000000e+00 1.111932e-14
3 3 0.064 0.015 1.007 0.397 1 5.421135e-01 4.578865e-01
4 4 -0.072 -0.093 1.454 0.258 1 9.983000e-01 1.699964e-03
5 5 -0.100 -0.091 1.564 0.668 1 9.999242e-01 7.579056e-05
6 6 -0.142 -0.065 0.706 0.279 1 8.842837e-01 1.157163e-01
7 7 0.035 0.014 1.504 0.708 1 8.582123e-01 1.417877e-01
8 8 -0.065 -0.056 1.373 0.403 1 9.739957e-01 2.600431e-02
9 9 -0.072 -0.007 1.372 0.336 1 5.907891e-01 4.092109e-01
10 10 -0.135 -0.143 1.419 0.434 1 9.999995e-01 4.807386e-07
11 11 -0.229 -0.296 0.331 0.182 1 1.000000e+00 3.046234e-22
12 12 0.073 0.020 1.312 0.249 1 6.209643e-01 3.790357e-01
13 13 0.010 0.001 2.149 0.696 1 5.581252e-01 4.418748e-01
14 14 -0.227 -0.231 1.191 0.660 1 1.000000e+00 3.388701e-17
15 15 0.145 0.050 1.876 0.272 1 2.419224e-01 7.580776e-01
16 16 0.370 0.109 1.994 0.382 1 1.601880e-02 9.839812e-01
17 17 -0.075 -0.082 1.507 0.421 1 9.977404e-01 2.259613e-03
18 18 0.045 0.026 1.675 0.949 1 9.755293e-01 2.447070e-02
19 19 0.011 -0.003 1.260 0.608 1 8.489113e-01 1.510887e-01
20 20 0.122 0.105 1.143 0.165 1 9.869655e-01 1.303450e-02
21 21 -0.284 -0.270 1.272 0.512 1 1.000000e+00 1.199323e-19
22 22 0.513 0.100 2.487 0.536 2 3.561964e-06 9.999964e-01
23 23 0.076 0.019 2.006 0.530 2 3.296200e-01 6.703800e-01
24 24 0.377 0.107 3.265 0.354 2 4.602133e-08 1.000000e+00
25 25 0.193 0.047 2.250 0.330 2 1.477562e-02 9.852244e-01
26 26 0.324 0.071 4.240 0.627 2 1.289663e-14 1.000000e+00
27 27 0.313 0.051 4.450 0.685 2 1.958738e-16 1.000000e+00
28 28 0.118 0.049 2.251 0.692 2 2.487000e-01 7.513000e-01
29 29 -0.017 0.023 2.053 0.348 2 1.896533e-01 8.103467e-01
30 30 0.216 0.077 2.348 0.397 2 2.116533e-02 9.788347e-01
31 31 0.170 0.069 1.797 0.571 2 4.594406e-01 5.405594e-01
32 32 0.146 0.051 2.169 0.550 2 1.360733e-01 8.639267e-01
33 33 -0.098 -0.012 2.502 0.577 2 1.747878e-02 9.825212e-01
34 34 0.139 -0.031 0.461 0.264 2 6.910115e-01 3.089885e-01
35 35 0.137 0.072 2.612 0.515 2 1.254622e-02 9.874538e-01
36 36 0.148 0.056 2.234 0.556 2 1.067476e-01 8.932524e-01
37 37 0.163 0.048 2.308 0.197 2 1.527945e-02 9.847205e-01
38 38 0.290 0.059 1.838 0.378 2 3.006097e-02 9.699390e-01
39 39 0.538 0.106 2.329 0.483 2 2.952091e-06 9.999970e-01
40 40 -0.333 -0.085 3.012 0.473 2 8.847632e-06 9.999912e-01
41 41 0.478 0.091 1.244 0.184 2 3.000447e-04 9.997000e-01
42 42 0.560 0.111 4.291 0.444 2 5.720113e-20 1.000000e+00
43 43 0.202 0.079 1.936 0.301 2 2.514586e-01 7.485414e-01
44 44 0.474 0.138 2.916 0.448 2 2.602885e-06 9.999974e-01
45 45 0.166 0.035 2.452 0.137 2 2.169365e-03 9.978306e-01
46 46 0.580 0.037 5.059 0.126 2 1.908462e-35 1.000000e+00
pred2.finance$class
1 1
2 1
3 1
4 1
5 1
6 1
7 1
8 1
9 1
10 1
11 1
12 1
13 1
14 1
15 2
16 2
17 1
18 1
19 1
20 1
21 1
22 2
23 2
24 2
25 2
26 2
27 2
28 2
29 2
30 2
31 2
32 2
33 2
34 1
35 2
36 2
37 2
38 2
39 2
40 2
41 2
42 2
43 2
44 2
45 2
46 2
Caution!
이차 판별분석에서 함수 predict()
는
판별점수를 출력하지 않는다.
# 오분류표
pacman::p_load("DescTools")
# 도수분포표
finance.ctbl2 <- table(finance$y, # 실제 집단 pred2.finance$class) # 예측된 집단finance.ctbl2
1 2
1 19 2
2 1 24
Desc(finance.ctbl2, # 도수분포표
digits = 4)
--------------------------------------------------------------------
finance.ctbl2 (table)
Summary:
n: 5e+01, rows: 2e+00, columns: 2e+00
Pearson's Chi-squared test (cont. adj):
X-squared = 31.3, df = 1, p-value = 2.21e-08
Fisher's exact test p-value = 9.399e-10
McNemar's chi-squared = 0, df = 1, p-value = 1
estimate lwr.ci upr.ci'
odds ratio 2.28e+02 1.92e+01 2.71e+03
rel. risk (col1) 2.26e+01 3.30e+00 1.55e+02
rel. risk (col2) 9.92e-02 2.65e-02 3.72e-01
Phi-Coefficient 0.869
Contingency Coeff. 0.656
Cramer's V 0.869
1 2 Sum
1 freq 2e+01 2e+00 2e+01
perc 41.3043% 4.3478% 45.6522%
p.row 90.4762% 9.5238% .
p.col 95.0000% 7.6923% .
2 freq 1e+00 2e+01 2e+01
perc 2.1739% 52.1739% 54.3478%
p.row 4.0000% 96.0000% .
p.col 5.0000% 92.3077% .
Sum freq 2e+01 3e+01 5e+01
perc 43.4783% 56.5217% 100.0000%
p.row . . .
p.col . . .
----------
' 95% conf. level
Result!
원래 집단 1에 속하는 21개의 개체 중
19개(19/21=90.5%)는 집단 1에 제대로 분류되었으나 2개(5/21=9.5%)는 집단
2로 잘못 분류되었다. 또한, 원래 집단 2에 속하는 25개의 개체 중
1개(1/25=4%)는 집단 1로 잘못 분류되었으나 24개(24/25=96%)는 집단 2에
제대로 분류되었다. 유도된 선형 판별함수에 대한 오류율은
(2+1)/46=6.5%이며, 정확도는 (19+24)/46=93.5%이다. 이는 앞선 선형 판별분석보다 정확도가 증가하였음을
의미한다.
Caution!
Package klaR
에서 제공하는 함수
partimat()
을 통해 판별분석의 분류 영역을 각 판별변수의 쌍에
대하여 표현할 수 있다.
# 그래프적 표현NApacman::p_load("klaR")
finance$y <- as.factor(finance$y)
# 선형 판별함수partimat(y ~ x1 + x2 + x3 + x4,
data = finance,
method = "lda")
# 이차 판별함수NApartimat(y ~ x1 + x2 + x3 + x4,
data = finance,
method = "qda")
Result!
그래프를 통해 선형 판별함수와 이차 판별함수의
“선형”, “이차”라는 용어의 의미를 이해할 수 있다. 선형 판별함수는 각
판별변수의 쌍에 대하여 집단 1과 2는 선형(직선)으로 분류되었으며, 이차
판별함수는 집단 1과 2는 비선형으로 분류되었다. 또한, 각 집단에 대해 잘못
분류된 개체는 빨간색으로 표시되어 있다.
정준 판별계수
라고 하며, \(V=\boldsymbol{b}^T\boldsymbol{X}=b_1X_1+\ldots+b_pX_p\)를
정준 판별함수
라고 한다.MASS
에서 제공하는 함수 lda()
를 이용하면
된다.모공분산행렬의 동일성
# 정준 판별분석
pacman::p_load("MASS")
finance.lda <- lda(y ~ x1 + x2 + x3 + x4, # formula : 반응변수(집단변수) ~ 판별변수수
data = finance)
finance.lda
Call:
lda(y ~ x1 + x2 + x3 + x4, data = finance)
Prior probabilities of groups:
1 2
0.4565217 0.5434783
Group means:
x1 x2 x3 x4
1 -0.07319048 -0.08180952 1.367048 0.4378571
2 0.23492000 0.05472000 2.580400 0.4281200
Coefficients of linear discriminants:
LD1
x1 1.0023665
x2 3.9998578
x3 0.8450508
x4 -1.0153181
Result!
부분집단이 두 개인 경우, 구해진 정준 판별계수는
(1.002, 3.999, 0.845, -1.015)이며, 정준 판별계수를 이용하여 정준
판별함수를 표현하면 다음과 같다. \[
\begin{align*}
V=1.002(x_1-\bar{x}_1)+3.999(x_2-\bar{x}_2)+0.845(x_3-\bar{x}_3)-1.015(x_4-\bar{x}_4).
\end{align*}
\] 판별점수(\(V\))가 클수록, 즉,
\(x_1\)(총부채 대비 현금 유출입), \(x_2\)(총자산 대비 순이익), \(x_3\)(채무 대비 자산)이 클수록 건전
기업(\(y=2\))에 속할 확률이 커지고,
판별점수(\(V\))가 작을수록, 즉, \(x_4\)(순매출 대비 자산)이 클수록 건전
기업(\(y=2\))에 속할 확률이 작아짐을 알
수 있다.
# 그래프적 표현NAplot(finance.lda)
Result!
유도된 판별함수에 의해 계산된 판별점수의 분포를
그래프로 표현한 결과이다. 첫 번째 그래프는 파산 기업(\(y=1\))에 대한 판별점수의 분포이며, 두 번째
그래프는 건전 기업(\(y=2\))에 대한
판별점수의 분포이다. 파산 기업(\(y=1\))에 대한 판별점수, 즉, \(V\)값은 음수가 나와야 파산 기업(\(y=1\))으로 분류하며, 이는 0보다 큰 점수에
대해 오분류되었다는 것을 의미한다. 건전 기업(\(y=2\))에 대한 판별점수, 즉, \(V\)값은 양수가 나와야 건전 기(\(y=2\))업으로 분류하며, 이는 0보다 작은
점수에 대해 오분류되었다는 것을 의미한다.
# 새로운 개체에 대한 집단 예측
pred.finance <- predict(finance.lda, # 함수 lda로부터 출력된 객체NAfinance) # 새로운 데이터
# 선형 판별점수, 예측 확률, 예측 집단pf <- cbind(finance, pred.finance$x, pred.finance$posterior, pred.finance$class)
# 집단별 판별점수(LD1) 값의 평균aggregate(LD1 ~ y, # 분석 변수 ~ 집단변수변수
data = pf, # 데이터프레임NAmean) # 적용할 통계량NA
y LD1
1 1 -1.0272657
2 2 0.8629032
Result!
파산 기업(\(y=1\))으로 예측된 개체들의 판별점수의
평균은 -1.027이며 건전 기업(\(y=2\))으로 예측된 개체들의 판별점수의
평균은 0.863이다. 즉, 판별점수가 낮을수록 파산 기업(\(y=1\))으로 예측할 확률이 커지는 반면,
판별점수가 높을수록 건전 기업(\(y=2\))으로 예측할 확률이 커진다.
다변량 정규성 및 모공분산행렬의 동일성
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
# 정준 판별분석
pacman::p_load("MASS")
iris.lda <- lda(Species ~ ., data = iris)
iris.lda
Call:
lda(Species ~ ., data = iris)
Prior probabilities of groups:
setosa versicolor virginica
0.3333333 0.3333333 0.3333333
Group means:
Sepal.Length Sepal.Width Petal.Length Petal.Width
setosa 5.006 3.428 1.462 0.246
versicolor 5.936 2.770 4.260 1.326
virginica 6.588 2.974 5.552 2.026
Coefficients of linear discriminants:
LD1 LD2
Sepal.Length 0.8293776 0.02410215
Sepal.Width 1.5344731 2.16452123
Petal.Length -2.2012117 -0.93192121
Petal.Width -2.8104603 2.83918785
Proportion of trace:
LD1 LD2
0.9912 0.0088
Result!
데이터 “iris”의 “setosa”, “versicolor”,
“virginica”의 비율은 0.33으로 동일하며, “virginica”의 “Petal.Length”는
다른 두 종류보다 평균적으로 더 길다. 또한, “proportion of trace”는
판별함수에 의해 설명되는 집단간 변동의 비율이며 유도된 두 판별함수의
설명력은 각각 99.1%, 0.9%임을 알 수 있다. 출력된 정준 판별계수를
이용하여 두 정준 판별함수를 표현하여 보면 다음과 같다. \[
\begin{align*}
V_1&=0.829(x_1-\bar{x}_1)+1.534(x_2-\bar{x}_2)-2.201(x_3-\bar{x}_3)-2.810(x_4-\bar{x}_4),\\
V_2&=0.024(x_1-\bar{x}_1)+2.165(x_2-\bar{x}_2)-0.932(x_3-\bar{x}_3)+2.839(x_4-\bar{x}_4).
\end{align*}
\] 여기서, \(x_1, x_2, x_3,
x_4\)는 각각 “Sepal.Length”(꽃받침조각의 길이),
“Sepal.Width”(꽃받침조각의 폭), “Petal.Length”(꽃잎의 길이),
“Petal.Width”(꽃잎의 폭)에 해당한다.
# 예측
pred <- predict(iris.lda, # 함수 lda로부터 출력된 객체NAiris) # 새로운 데이터
# 선형 판별점수, 예측 확률, 예측 집단iris.pred <- cbind(iris, pred$x, pred$posterior, pred$class)
iris.pred
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
7 4.6 3.4 1.4 0.3 setosa
8 5.0 3.4 1.5 0.2 setosa
9 4.4 2.9 1.4 0.2 setosa
10 4.9 3.1 1.5 0.1 setosa
11 5.4 3.7 1.5 0.2 setosa
12 4.8 3.4 1.6 0.2 setosa
13 4.8 3.0 1.4 0.1 setosa
14 4.3 3.0 1.1 0.1 setosa
15 5.8 4.0 1.2 0.2 setosa
16 5.7 4.4 1.5 0.4 setosa
17 5.4 3.9 1.3 0.4 setosa
18 5.1 3.5 1.4 0.3 setosa
19 5.7 3.8 1.7 0.3 setosa
20 5.1 3.8 1.5 0.3 setosa
21 5.4 3.4 1.7 0.2 setosa
22 5.1 3.7 1.5 0.4 setosa
23 4.6 3.6 1.0 0.2 setosa
24 5.1 3.3 1.7 0.5 setosa
25 4.8 3.4 1.9 0.2 setosa
26 5.0 3.0 1.6 0.2 setosa
27 5.0 3.4 1.6 0.4 setosa
28 5.2 3.5 1.5 0.2 setosa
29 5.2 3.4 1.4 0.2 setosa
30 4.7 3.2 1.6 0.2 setosa
31 4.8 3.1 1.6 0.2 setosa
32 5.4 3.4 1.5 0.4 setosa
33 5.2 4.1 1.5 0.1 setosa
34 5.5 4.2 1.4 0.2 setosa
35 4.9 3.1 1.5 0.2 setosa
36 5.0 3.2 1.2 0.2 setosa
37 5.5 3.5 1.3 0.2 setosa
38 4.9 3.6 1.4 0.1 setosa
39 4.4 3.0 1.3 0.2 setosa
40 5.1 3.4 1.5 0.2 setosa
41 5.0 3.5 1.3 0.3 setosa
42 4.5 2.3 1.3 0.3 setosa
43 4.4 3.2 1.3 0.2 setosa
44 5.0 3.5 1.6 0.6 setosa
45 5.1 3.8 1.9 0.4 setosa
46 4.8 3.0 1.4 0.3 setosa
47 5.1 3.8 1.6 0.2 setosa
48 4.6 3.2 1.4 0.2 setosa
49 5.3 3.7 1.5 0.2 setosa
50 5.0 3.3 1.4 0.2 setosa
51 7.0 3.2 4.7 1.4 versicolor
52 6.4 3.2 4.5 1.5 versicolor
53 6.9 3.1 4.9 1.5 versicolor
54 5.5 2.3 4.0 1.3 versicolor
55 6.5 2.8 4.6 1.5 versicolor
56 5.7 2.8 4.5 1.3 versicolor
57 6.3 3.3 4.7 1.6 versicolor
58 4.9 2.4 3.3 1.0 versicolor
59 6.6 2.9 4.6 1.3 versicolor
60 5.2 2.7 3.9 1.4 versicolor
61 5.0 2.0 3.5 1.0 versicolor
62 5.9 3.0 4.2 1.5 versicolor
63 6.0 2.2 4.0 1.0 versicolor
64 6.1 2.9 4.7 1.4 versicolor
65 5.6 2.9 3.6 1.3 versicolor
66 6.7 3.1 4.4 1.4 versicolor
67 5.6 3.0 4.5 1.5 versicolor
68 5.8 2.7 4.1 1.0 versicolor
69 6.2 2.2 4.5 1.5 versicolor
70 5.6 2.5 3.9 1.1 versicolor
71 5.9 3.2 4.8 1.8 versicolor
72 6.1 2.8 4.0 1.3 versicolor
73 6.3 2.5 4.9 1.5 versicolor
74 6.1 2.8 4.7 1.2 versicolor
75 6.4 2.9 4.3 1.3 versicolor
76 6.6 3.0 4.4 1.4 versicolor
77 6.8 2.8 4.8 1.4 versicolor
78 6.7 3.0 5.0 1.7 versicolor
79 6.0 2.9 4.5 1.5 versicolor
80 5.7 2.6 3.5 1.0 versicolor
81 5.5 2.4 3.8 1.1 versicolor
82 5.5 2.4 3.7 1.0 versicolor
83 5.8 2.7 3.9 1.2 versicolor
84 6.0 2.7 5.1 1.6 versicolor
85 5.4 3.0 4.5 1.5 versicolor
86 6.0 3.4 4.5 1.6 versicolor
87 6.7 3.1 4.7 1.5 versicolor
88 6.3 2.3 4.4 1.3 versicolor
89 5.6 3.0 4.1 1.3 versicolor
90 5.5 2.5 4.0 1.3 versicolor
91 5.5 2.6 4.4 1.2 versicolor
92 6.1 3.0 4.6 1.4 versicolor
93 5.8 2.6 4.0 1.2 versicolor
94 5.0 2.3 3.3 1.0 versicolor
95 5.6 2.7 4.2 1.3 versicolor
96 5.7 3.0 4.2 1.2 versicolor
97 5.7 2.9 4.2 1.3 versicolor
98 6.2 2.9 4.3 1.3 versicolor
99 5.1 2.5 3.0 1.1 versicolor
100 5.7 2.8 4.1 1.3 versicolor
101 6.3 3.3 6.0 2.5 virginica
102 5.8 2.7 5.1 1.9 virginica
103 7.1 3.0 5.9 2.1 virginica
104 6.3 2.9 5.6 1.8 virginica
105 6.5 3.0 5.8 2.2 virginica
106 7.6 3.0 6.6 2.1 virginica
107 4.9 2.5 4.5 1.7 virginica
108 7.3 2.9 6.3 1.8 virginica
109 6.7 2.5 5.8 1.8 virginica
110 7.2 3.6 6.1 2.5 virginica
111 6.5 3.2 5.1 2.0 virginica
112 6.4 2.7 5.3 1.9 virginica
113 6.8 3.0 5.5 2.1 virginica
114 5.7 2.5 5.0 2.0 virginica
115 5.8 2.8 5.1 2.4 virginica
116 6.4 3.2 5.3 2.3 virginica
117 6.5 3.0 5.5 1.8 virginica
118 7.7 3.8 6.7 2.2 virginica
119 7.7 2.6 6.9 2.3 virginica
120 6.0 2.2 5.0 1.5 virginica
121 6.9 3.2 5.7 2.3 virginica
122 5.6 2.8 4.9 2.0 virginica
123 7.7 2.8 6.7 2.0 virginica
124 6.3 2.7 4.9 1.8 virginica
125 6.7 3.3 5.7 2.1 virginica
126 7.2 3.2 6.0 1.8 virginica
127 6.2 2.8 4.8 1.8 virginica
128 6.1 3.0 4.9 1.8 virginica
129 6.4 2.8 5.6 2.1 virginica
130 7.2 3.0 5.8 1.6 virginica
131 7.4 2.8 6.1 1.9 virginica
132 7.9 3.8 6.4 2.0 virginica
133 6.4 2.8 5.6 2.2 virginica
134 6.3 2.8 5.1 1.5 virginica
135 6.1 2.6 5.6 1.4 virginica
136 7.7 3.0 6.1 2.3 virginica
137 6.3 3.4 5.6 2.4 virginica
138 6.4 3.1 5.5 1.8 virginica
139 6.0 3.0 4.8 1.8 virginica
140 6.9 3.1 5.4 2.1 virginica
141 6.7 3.1 5.6 2.4 virginica
142 6.9 3.1 5.1 2.3 virginica
143 5.8 2.7 5.1 1.9 virginica
144 6.8 3.2 5.9 2.3 virginica
145 6.7 3.3 5.7 2.5 virginica
146 6.7 3.0 5.2 2.3 virginica
147 6.3 2.5 5.0 1.9 virginica
148 6.5 3.0 5.2 2.0 virginica
149 6.2 3.4 5.4 2.3 virginica
150 5.9 3.0 5.1 1.8 virginica
LD1 LD2 setosa versicolor virginica
1 8.0617998 0.300420621 1.000000e+00 3.896358e-22 2.611168e-42
2 7.1286877 -0.786660426 1.000000e+00 7.217970e-18 5.042143e-37
3 7.4898280 -0.265384488 1.000000e+00 1.463849e-19 4.675932e-39
4 6.8132006 -0.670631068 1.000000e+00 1.268536e-16 3.566610e-35
5 8.1323093 0.514462530 1.000000e+00 1.637387e-22 1.082605e-42
6 7.7019467 1.461720967 1.000000e+00 3.883282e-21 4.566540e-40
7 7.2126176 0.355836209 1.000000e+00 1.113469e-18 2.302608e-37
8 7.6052935 -0.011633838 1.000000e+00 3.877586e-20 1.074496e-39
9 6.5605516 -1.015163624 1.000000e+00 1.902813e-15 9.482936e-34
10 7.3430599 -0.947319209 1.000000e+00 1.111803e-18 2.724060e-38
11 8.3973865 0.647363392 1.000000e+00 1.185277e-23 3.237084e-44
12 7.2192969 -0.109646389 1.000000e+00 1.621649e-18 1.833201e-37
13 7.3267960 -1.072989426 1.000000e+00 1.459225e-18 3.262506e-38
14 7.5724707 -0.805464137 1.000000e+00 1.117219e-19 1.316642e-39
15 9.8498430 1.585936985 1.000000e+00 5.487399e-30 1.531265e-52
16 9.1582389 2.737596471 1.000000e+00 1.261505e-27 2.268705e-48
17 8.5824314 1.834489452 1.000000e+00 6.754338e-25 3.868271e-45
18 7.7807538 0.584339407 1.000000e+00 4.223741e-21 1.224313e-40
19 8.0783588 0.968580703 1.000000e+00 1.774911e-22 2.552153e-42
20 8.0209745 1.140503656 1.000000e+00 2.593237e-22 5.792079e-42
21 7.4968023 -0.188377220 1.000000e+00 1.274639e-19 4.357774e-39
22 7.5864812 1.207970318 1.000000e+00 1.465999e-20 1.987241e-39
23 8.6810429 0.877590154 1.000000e+00 6.569280e-25 7.769177e-46
24 6.2514036 0.439696367 1.000000e+00 8.912348e-15 9.178624e-32
25 6.5589334 -0.389222752 1.000000e+00 1.070702e-15 1.167516e-33
26 6.7713832 -0.970634453 1.000000e+00 2.497339e-16 5.710269e-35
27 6.8230803 0.463011612 1.000000e+00 3.967732e-17 4.378624e-35
28 7.9246164 0.209638715 1.000000e+00 1.548165e-21 1.595360e-41
29 7.9912902 0.086378713 1.000000e+00 9.271847e-22 6.297955e-42
30 6.8294645 -0.544960851 1.000000e+00 9.665144e-17 2.977974e-35
31 6.7589549 -0.759002759 1.000000e+00 2.299936e-16 7.182666e-35
32 7.3749525 0.565844592 1.000000e+00 1.975404e-19 2.788334e-38
33 9.1263463 1.224432671 1.000000e+00 7.100041e-27 2.216408e-48
34 9.4676820 1.825226345 1.000000e+00 1.610295e-28 2.743783e-50
35 7.0620139 -0.663400423 1.000000e+00 1.205219e-17 1.277245e-36
36 7.9587624 -0.164961722 1.000000e+00 1.597186e-21 9.033772e-42
37 8.6136720 0.403253602 1.000000e+00 1.939869e-24 1.662808e-45
38 8.3304176 0.228133530 1.000000e+00 3.310234e-23 7.004971e-44
39 6.9341201 -0.705519379 1.000000e+00 4.190242e-17 6.991441e-36
40 7.6882313 -0.009223623 1.000000e+00 1.769359e-20 3.541694e-40
41 7.9179372 0.675121313 1.000000e+00 1.063014e-21 2.003866e-41
42 5.6618807 -1.934355243 1.000000e+00 2.174217e-11 1.213781e-28
43 7.2410147 -0.272615132 1.000000e+00 1.540753e-18 1.305719e-37
44 6.4144356 1.247301306 1.000000e+00 8.940589e-16 1.315511e-32
45 6.8594438 1.051653957 1.000000e+00 1.616206e-17 3.205992e-35
46 6.7647039 -0.505151855 1.000000e+00 1.714743e-16 7.172435e-35
47 8.0818994 0.763392750 1.000000e+00 2.083089e-22 2.289783e-42
48 7.1867690 -0.360986823 1.000000e+00 2.793482e-18 2.629539e-37
49 8.3144488 0.644953177 1.000000e+00 2.597560e-23 9.820820e-44
50 7.6719674 -0.134893840 1.000000e+00 2.322258e-20 4.241757e-40
51 -1.4592755 0.028543764 1.969732e-18 9.998894e-01 1.105878e-04
52 -1.7977057 0.484385502 1.242878e-19 9.992575e-01 7.425297e-04
53 -2.4169489 -0.092784031 2.088263e-22 9.958069e-01 4.193053e-03
54 -2.2624735 -1.587252508 2.198898e-22 9.996423e-01 3.576502e-04
55 -2.5486784 -0.472204898 4.213678e-23 9.955903e-01 4.409655e-03
56 -2.4299673 -0.966132066 8.127287e-23 9.985020e-01 1.497982e-03
57 -2.4484846 0.795961954 3.549900e-22 9.858346e-01 1.416542e-02
58 -0.2226665 -1.584673183 5.007065e-14 9.999999e-01 1.119811e-07
59 -1.7502012 -0.821180130 5.683334e-20 9.998781e-01 1.218649e-04
60 -1.9584224 -0.351563753 1.241039e-20 9.995027e-01 4.973085e-04
61 -1.1937603 -2.634455704 1.956628e-18 9.999986e-01 1.420841e-06
62 -1.8589257 0.319006544 5.968900e-20 9.992294e-01 7.705716e-04
63 -1.1580939 -2.643409913 2.716128e-18 9.999988e-01 1.220169e-06
64 -2.6660572 -0.642504540 1.184445e-23 9.943267e-01 5.673286e-03
65 -0.3783672 0.086638931 5.574931e-14 9.999984e-01 1.649215e-06
66 -1.2011726 0.084437359 2.369511e-17 9.999573e-01 4.268212e-05
67 -2.7681025 0.032199536 8.429328e-24 9.806471e-01 1.935289e-02
68 -0.7768540 -1.659161847 2.505072e-16 9.999991e-01 9.151716e-07
69 -3.4980543 -1.684956162 1.670352e-27 9.595735e-01 4.042653e-02
70 -1.0904279 -1.626583496 1.341503e-17 9.999967e-01 3.296105e-06
71 -3.7158961 1.044514421 7.408118e-28 2.532282e-01 7.467718e-01
72 -0.9976104 -0.490530602 9.399292e-17 9.999907e-01 9.345291e-06
73 -3.8352593 -1.405958061 7.674672e-29 8.155328e-01 1.844672e-01
74 -2.2574125 -1.426794234 2.683018e-22 9.995723e-01 4.277469e-04
75 -1.2557133 -0.546424197 7.813875e-18 9.999758e-01 2.421458e-05
76 -1.4375576 -0.134424979 2.073207e-18 9.999171e-01 8.290530e-05
77 -2.4590614 -0.935277280 6.357538e-23 9.982541e-01 1.745936e-03
78 -3.5184849 0.160588866 5.639473e-27 6.892131e-01 3.107869e-01
79 -2.5897987 -0.174611728 3.773528e-23 9.925169e-01 7.483138e-03
80 0.3074879 -1.318871459 9.555338e-12 1.000000e+00 1.910624e-08
81 -1.1066918 -1.752253714 1.022109e-17 9.999970e-01 3.007748e-06
82 -0.6055246 -1.942980378 9.648075e-16 9.999997e-01 3.266704e-07
83 -0.8987038 -0.904940034 1.616405e-16 9.999962e-01 3.778441e-06
84 -4.4984664 -0.882749915 4.241952e-32 1.433919e-01 8.566081e-01
85 -2.9339780 0.027379106 1.724514e-24 9.635576e-01 3.644242e-02
86 -2.1036082 1.191567675 1.344746e-20 9.940401e-01 5.959931e-03
87 -2.1425821 0.088779781 3.304868e-21 9.982223e-01 1.777672e-03
88 -2.4794560 -1.940739273 2.034571e-23 9.994557e-01 5.443096e-04
89 -1.3255257 -0.162869550 5.806986e-18 9.999486e-01 5.137101e-05
90 -1.9555789 -1.154348262 5.981190e-21 9.998183e-01 1.816870e-04
91 -2.4015702 -1.594583407 5.878614e-23 9.993856e-01 6.144200e-04
92 -2.2924888 -0.332860296 5.399006e-22 9.980934e-01 1.906591e-03
93 -1.2722722 -1.214584279 3.559507e-18 9.999887e-01 1.128570e-05
94 -0.2931761 -1.798715092 2.104146e-14 9.999999e-01 1.135016e-07
95 -2.0059888 -0.905418042 4.700877e-21 9.996980e-01 3.020226e-04
96 -1.1816631 -0.537570242 1.584328e-17 9.999817e-01 1.826327e-05
97 -1.6161564 -0.470103580 2.802293e-19 9.998892e-01 1.108315e-04
98 -1.4215888 -0.551244626 1.626918e-18 9.999536e-01 4.640488e-05
99 0.4759738 -0.799905482 7.638378e-11 1.000000e+00 1.867332e-08
100 -1.5494826 -0.593363582 4.679301e-19 9.999269e-01 7.305863e-05
101 -7.8394740 2.139733449 7.503075e-52 7.127303e-09 1.000000e+00
102 -5.5074800 -0.035813989 5.213802e-38 1.078251e-03 9.989217e-01
103 -6.2920085 0.467175777 1.231264e-42 2.592826e-05 9.999741e-01
104 -5.6054563 -0.340738058 1.537499e-38 1.068139e-03 9.989319e-01
105 -6.8505600 0.829825394 6.242501e-46 1.812963e-06 9.999982e-01
106 -7.4181678 -0.173117995 4.209281e-49 6.656263e-07 9.999993e-01
107 -4.6779954 -0.499095015 3.797837e-33 4.862025e-02 9.513797e-01
108 -6.3169269 -0.968980756 1.352176e-42 1.395463e-04 9.998605e-01
109 -6.3277368 -1.383289934 1.323390e-42 2.235313e-04 9.997765e-01
110 -6.8528134 2.717589632 3.453358e-46 1.727277e-07 9.999998e-01
111 -4.4407251 1.347236918 5.452660e-32 1.305353e-02 9.869465e-01
112 -5.4500957 -0.207736942 1.182560e-37 1.673875e-03 9.983261e-01
113 -5.6603371 0.832713617 5.204321e-39 2.006352e-04 9.997994e-01
114 -5.9582372 -0.094017545 1.269953e-40 1.948672e-04 9.998051e-01
115 -6.7592628 1.600232061 1.685361e-45 1.000455e-06 9.999990e-01
116 -5.8070433 2.010198817 5.141640e-40 2.605493e-05 9.999739e-01
117 -5.0660123 -0.026273384 1.909820e-35 6.083553e-03 9.939164e-01
118 -6.6088188 1.751635872 1.207799e-44 1.503799e-06 9.999985e-01
119 -9.1714749 -0.748255067 3.181265e-59 1.317279e-09 1.000000e+00
120 -4.7645357 -2.155737197 1.598511e-33 2.207990e-01 7.792010e-01
121 -6.2728391 1.649481407 1.119461e-42 6.451865e-06 9.999935e-01
122 -5.3607119 0.646120732 3.038170e-37 8.272676e-04 9.991727e-01
123 -7.5811998 -0.980722934 6.032879e-50 9.509838e-07 9.999990e-01
124 -4.3715028 -0.121297458 1.951261e-31 9.711942e-02 9.028806e-01
125 -5.7231753 1.293275530 1.956408e-39 8.836845e-05 9.999116e-01
126 -5.2791592 -0.042458238 1.109337e-36 2.679310e-03 9.973207e-01
127 -4.0808721 0.185936572 7.841997e-30 1.883675e-01 8.116325e-01
128 -4.0770364 0.523238483 7.964690e-30 1.342431e-01 8.657569e-01
129 -6.5191040 0.296976389 6.190641e-44 1.303681e-05 9.999870e-01
130 -4.5837194 -0.856815813 1.406448e-32 1.036823e-01 8.963177e-01
131 -6.2282401 -0.712719638 4.108129e-42 1.442338e-04 9.998558e-01
132 -5.2204877 1.468195094 1.555697e-36 5.198047e-04 9.994802e-01
133 -6.8001500 0.580895175 1.320330e-45 3.014091e-06 9.999970e-01
134 -3.8151597 -0.942985932 1.283891e-28 7.293881e-01 2.706119e-01
135 -5.1074897 -2.130589999 1.926560e-35 6.602253e-02 9.339775e-01
136 -6.7967163 0.863090395 1.271083e-45 2.152818e-06 9.999978e-01
137 -6.5244960 2.445035271 3.038963e-44 8.881859e-07 9.999991e-01
138 -4.9955028 0.187768525 4.605973e-35 6.165648e-03 9.938344e-01
139 -3.9398530 0.614020389 4.538634e-29 1.925262e-01 8.074738e-01
140 -5.2038309 1.144768076 2.140232e-36 8.290895e-04 9.991709e-01
141 -6.6530868 1.805319760 6.570902e-45 1.180810e-06 9.999988e-01
142 -5.1055595 1.992182010 6.202588e-36 4.276398e-04 9.995724e-01
143 -5.5074800 -0.035813989 5.213802e-38 1.078251e-03 9.989217e-01
144 -6.7960192 1.460686950 1.073945e-45 1.028519e-06 9.999990e-01
145 -6.8473594 2.428950671 4.048249e-46 2.524984e-07 9.999997e-01
146 -5.6450035 1.677717335 4.970070e-39 7.473361e-05 9.999253e-01
147 -5.1795646 -0.363475041 4.616611e-36 5.898784e-03 9.941012e-01
148 -4.9677409 0.821140550 5.548962e-35 3.145874e-03 9.968541e-01
149 -5.8861454 2.345090513 1.613687e-40 1.257468e-05 9.999874e-01
150 -4.6831543 0.332033811 2.858012e-33 1.754229e-02 9.824577e-01
pred$class
1 setosa
2 setosa
3 setosa
4 setosa
5 setosa
6 setosa
7 setosa
8 setosa
9 setosa
10 setosa
11 setosa
12 setosa
13 setosa
14 setosa
15 setosa
16 setosa
17 setosa
18 setosa
19 setosa
20 setosa
21 setosa
22 setosa
23 setosa
24 setosa
25 setosa
26 setosa
27 setosa
28 setosa
29 setosa
30 setosa
31 setosa
32 setosa
33 setosa
34 setosa
35 setosa
36 setosa
37 setosa
38 setosa
39 setosa
40 setosa
41 setosa
42 setosa
43 setosa
44 setosa
45 setosa
46 setosa
47 setosa
48 setosa
49 setosa
50 setosa
51 versicolor
52 versicolor
53 versicolor
54 versicolor
55 versicolor
56 versicolor
57 versicolor
58 versicolor
59 versicolor
60 versicolor
61 versicolor
62 versicolor
63 versicolor
64 versicolor
65 versicolor
66 versicolor
67 versicolor
68 versicolor
69 versicolor
70 versicolor
71 virginica
72 versicolor
73 versicolor
74 versicolor
75 versicolor
76 versicolor
77 versicolor
78 versicolor
79 versicolor
80 versicolor
81 versicolor
82 versicolor
83 versicolor
84 virginica
85 versicolor
86 versicolor
87 versicolor
88 versicolor
89 versicolor
90 versicolor
91 versicolor
92 versicolor
93 versicolor
94 versicolor
95 versicolor
96 versicolor
97 versicolor
98 versicolor
99 versicolor
100 versicolor
101 virginica
102 virginica
103 virginica
104 virginica
105 virginica
106 virginica
107 virginica
108 virginica
109 virginica
110 virginica
111 virginica
112 virginica
113 virginica
114 virginica
115 virginica
116 virginica
117 virginica
118 virginica
119 virginica
120 virginica
121 virginica
122 virginica
123 virginica
124 virginica
125 virginica
126 virginica
127 virginica
128 virginica
129 virginica
130 virginica
131 virginica
132 virginica
133 virginica
134 versicolor
135 virginica
136 virginica
137 virginica
138 virginica
139 virginica
140 virginica
141 virginica
142 virginica
143 virginica
144 virginica
145 virginica
146 virginica
147 virginica
148 virginica
149 virginica
150 virginica
Caution!
함수 predict()
를 통해 유도된
판별함수에 의한 새로운 개체의 정준 판별점수 값, 예측 확률, 예측 집단을
출력할 수 있다.
Result!
예를 들어, 유도된 판별함수에 의한 첫 번째 객체의
정준 판별점수 (LD1, LD2)는 (8.062, 0.300)이다.
# 판별점수에 대한 산점도 11
plot(iris.lda, # 함수 lda로부터 출력된 객체NA= as.integer(iris$Species)) # 각 집단별로 동일한 색깔 지정
# 판별점수에 대한 산점도 22
pacman::p_load("ggplot2")
ggplot(iris.pred, aes(LD1, LD2)) + # 선형 판별점수, 예측 확률, 예측 집단 데이터 NAgeom_point(aes(color = Species)) + # 각 집단별로 동일한 색깔 지정 theme_bw()
Caution!
함수 plot()
과
ggplot()
을 이용해서 두 판별점수 (LD1, LD2)에 대한 산점도를
작성할 수 있다.
Result!
“Species”의 “setosa”는 첫 번째 판별함수에 의한
판별점수 LD1
이 다른 두 종류와 달리 큰 양수값이다. 게다가,
“setosa”는 다른 두 품종과 멀리 분리되어 있으나, “versicolor”와
“virginica”는 가깝게 인접해 있음을 볼 수 있다.
# 히스토그램
plot(iris.lda, # 함수 lda로부터 출력된 객체NA= 1, # 첫 번째 정준 판별점수만을 이용 type = "both") # 히스토그램과 분포도 모두 출력
Result!
위의 산점도에서 확인한 것처럼 “Species”의
“setosa”는 첫 번째 판별함수에 의한 판별점수 LD1
이 다른 두
종류와 달리 큰 양수값이며, 두 번째로 “versicolor”의 판별점수 값이
높으며, 마지막으로 “virginica”의 판별점수 값이 가장 낮다.
pacman::p_load("klaR")
partimat(Species ~ .,
data = iris,
method = "lda")
# 오분류표
pacman::p_load("DescTools")
# 도수분포표
iris.ctbl <- table(iris$Species, # 실제 집단 pred$class) # 예측된 집단iris.ctbl
setosa versicolor virginica
setosa 50 0 0
versicolor 0 48 2
virginica 0 1 49
Desc(iris.ctbl, # 도수분포표
digits = 4)
--------------------------------------------------------------------
iris.ctbl (table)
Summary:
n: 2e+02, rows: 3e+00, columns: 3e+00
Pearson's Chi-squared test:
X-squared = 282.59, df = 4, p-value < 2.2e-16
Likelihood Ratio:
X-squared = 302.95, df = 4, p-value < 2.2e-16
Mantel-Haenszel Chi-squared:
X-squared = 144.6, df = 1, p-value < 2.2e-16
Phi-Coefficient 1.373
Contingency Coeff. 0.808
Cramer's V 0.971
setosa versicolor virginica Sum
setosa freq 5e+01 0 0 5e+01
perc 33.3333% 0.0000% 0.0000% 33.3333%
p.row 100.0000% 0.0000% 0.0000% .
p.col 100.0000% 0.0000% 0.0000% .
versicolor freq 0 5e+01 2e+00 5e+01
perc 0.0000% 32.0000% 1.3333% 33.3333%
p.row 0.0000% 96.0000% 4.0000% .
p.col 0.0000% 97.9592% 3.9216% .
virginica freq 0 1e+00 5e+01 5e+01
perc 0.0000% 0.6667% 32.6667% 33.3333%
p.row 0.0000% 2.0000% 98.0000% .
p.col 0.0000% 2.0408% 96.0784% .
Sum freq 5e+01 5e+01 5e+01 2e+02
perc 33.3333% 32.6667% 34.0000% 100.0000%
p.row . . . .
p.col . . . .
Result!
원래 집단 “setosa”에 속하는 50개의 개체 모두
집단 “setosa”에 제대로 분류되었다. 원래 집단 “versicolor”에 속하는
50개의 개체 중 48개(48/50=96%)는 제대로 분류되었으나 2개(2/50=4%)는 잘못
분류되었다. 또한, 원래 집단 “virginica”에 속하는 50개의 개체 중
49개(49/50=98)는 제대로 분류되었으나 1개(1/50=2)는 잘못 분류되었다.
유도된 선형 판별함수에 대한 오류율은 (2+1)/150=2%이며, 정확도는
(50+48+49)/150=98%이다.
predict()
를 이용할 수 있다.predict()
는
사후확률이 가장 큰 집단
으로 새로운 개체를 분류한다. Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
# 정준 판별분석
pacman::p_load("MASS")
iris.lda <- lda(Species ~ ., data = iris)
# 예측
predict(iris.lda, # 함수 lda로부터 출력된 객체NAiris) # 새로운 데이터
$class
[1] setosa setosa setosa setosa setosa
[6] setosa setosa setosa setosa setosa
[11] setosa setosa setosa setosa setosa
[16] setosa setosa setosa setosa setosa
[21] setosa setosa setosa setosa setosa
[26] setosa setosa setosa setosa setosa
[31] setosa setosa setosa setosa setosa
[36] setosa setosa setosa setosa setosa
[41] setosa setosa setosa setosa setosa
[46] setosa setosa setosa setosa setosa
[51] versicolor versicolor versicolor versicolor versicolor
[56] versicolor versicolor versicolor versicolor versicolor
[61] versicolor versicolor versicolor versicolor versicolor
[66] versicolor versicolor versicolor versicolor versicolor
[71] virginica versicolor versicolor versicolor versicolor
[76] versicolor versicolor versicolor versicolor versicolor
[81] versicolor versicolor versicolor virginica versicolor
[86] versicolor versicolor versicolor versicolor versicolor
[91] versicolor versicolor versicolor versicolor versicolor
[96] versicolor versicolor versicolor versicolor versicolor
[101] virginica virginica virginica virginica virginica
[106] virginica virginica virginica virginica virginica
[111] virginica virginica virginica virginica virginica
[116] virginica virginica virginica virginica virginica
[121] virginica virginica virginica virginica virginica
[126] virginica virginica virginica virginica virginica
[131] virginica virginica virginica versicolor virginica
[136] virginica virginica virginica virginica virginica
[141] virginica virginica virginica virginica virginica
[146] virginica virginica virginica virginica virginica
Levels: setosa versicolor virginica
$posterior
setosa versicolor virginica
1 1.000000e+00 3.896358e-22 2.611168e-42
2 1.000000e+00 7.217970e-18 5.042143e-37
3 1.000000e+00 1.463849e-19 4.675932e-39
4 1.000000e+00 1.268536e-16 3.566610e-35
5 1.000000e+00 1.637387e-22 1.082605e-42
6 1.000000e+00 3.883282e-21 4.566540e-40
7 1.000000e+00 1.113469e-18 2.302608e-37
8 1.000000e+00 3.877586e-20 1.074496e-39
9 1.000000e+00 1.902813e-15 9.482936e-34
10 1.000000e+00 1.111803e-18 2.724060e-38
11 1.000000e+00 1.185277e-23 3.237084e-44
12 1.000000e+00 1.621649e-18 1.833201e-37
13 1.000000e+00 1.459225e-18 3.262506e-38
14 1.000000e+00 1.117219e-19 1.316642e-39
15 1.000000e+00 5.487399e-30 1.531265e-52
16 1.000000e+00 1.261505e-27 2.268705e-48
17 1.000000e+00 6.754338e-25 3.868271e-45
18 1.000000e+00 4.223741e-21 1.224313e-40
19 1.000000e+00 1.774911e-22 2.552153e-42
20 1.000000e+00 2.593237e-22 5.792079e-42
21 1.000000e+00 1.274639e-19 4.357774e-39
22 1.000000e+00 1.465999e-20 1.987241e-39
23 1.000000e+00 6.569280e-25 7.769177e-46
24 1.000000e+00 8.912348e-15 9.178624e-32
25 1.000000e+00 1.070702e-15 1.167516e-33
26 1.000000e+00 2.497339e-16 5.710269e-35
27 1.000000e+00 3.967732e-17 4.378624e-35
28 1.000000e+00 1.548165e-21 1.595360e-41
29 1.000000e+00 9.271847e-22 6.297955e-42
30 1.000000e+00 9.665144e-17 2.977974e-35
31 1.000000e+00 2.299936e-16 7.182666e-35
32 1.000000e+00 1.975404e-19 2.788334e-38
33 1.000000e+00 7.100041e-27 2.216408e-48
34 1.000000e+00 1.610295e-28 2.743783e-50
35 1.000000e+00 1.205219e-17 1.277245e-36
36 1.000000e+00 1.597186e-21 9.033772e-42
37 1.000000e+00 1.939869e-24 1.662808e-45
38 1.000000e+00 3.310234e-23 7.004971e-44
39 1.000000e+00 4.190242e-17 6.991441e-36
40 1.000000e+00 1.769359e-20 3.541694e-40
41 1.000000e+00 1.063014e-21 2.003866e-41
42 1.000000e+00 2.174217e-11 1.213781e-28
43 1.000000e+00 1.540753e-18 1.305719e-37
44 1.000000e+00 8.940589e-16 1.315511e-32
45 1.000000e+00 1.616206e-17 3.205992e-35
46 1.000000e+00 1.714743e-16 7.172435e-35
47 1.000000e+00 2.083089e-22 2.289783e-42
48 1.000000e+00 2.793482e-18 2.629539e-37
49 1.000000e+00 2.597560e-23 9.820820e-44
50 1.000000e+00 2.322258e-20 4.241757e-40
51 1.969732e-18 9.998894e-01 1.105878e-04
52 1.242878e-19 9.992575e-01 7.425297e-04
53 2.088263e-22 9.958069e-01 4.193053e-03
54 2.198898e-22 9.996423e-01 3.576502e-04
55 4.213678e-23 9.955903e-01 4.409655e-03
56 8.127287e-23 9.985020e-01 1.497982e-03
57 3.549900e-22 9.858346e-01 1.416542e-02
58 5.007065e-14 9.999999e-01 1.119811e-07
59 5.683334e-20 9.998781e-01 1.218649e-04
60 1.241039e-20 9.995027e-01 4.973085e-04
61 1.956628e-18 9.999986e-01 1.420841e-06
62 5.968900e-20 9.992294e-01 7.705716e-04
63 2.716128e-18 9.999988e-01 1.220169e-06
64 1.184445e-23 9.943267e-01 5.673286e-03
65 5.574931e-14 9.999984e-01 1.649215e-06
66 2.369511e-17 9.999573e-01 4.268212e-05
67 8.429328e-24 9.806471e-01 1.935289e-02
68 2.505072e-16 9.999991e-01 9.151716e-07
69 1.670352e-27 9.595735e-01 4.042653e-02
70 1.341503e-17 9.999967e-01 3.296105e-06
71 7.408118e-28 2.532282e-01 7.467718e-01
72 9.399292e-17 9.999907e-01 9.345291e-06
73 7.674672e-29 8.155328e-01 1.844672e-01
74 2.683018e-22 9.995723e-01 4.277469e-04
75 7.813875e-18 9.999758e-01 2.421458e-05
76 2.073207e-18 9.999171e-01 8.290530e-05
77 6.357538e-23 9.982541e-01 1.745936e-03
78 5.639473e-27 6.892131e-01 3.107869e-01
79 3.773528e-23 9.925169e-01 7.483138e-03
80 9.555338e-12 1.000000e+00 1.910624e-08
81 1.022109e-17 9.999970e-01 3.007748e-06
82 9.648075e-16 9.999997e-01 3.266704e-07
83 1.616405e-16 9.999962e-01 3.778441e-06
84 4.241952e-32 1.433919e-01 8.566081e-01
85 1.724514e-24 9.635576e-01 3.644242e-02
86 1.344746e-20 9.940401e-01 5.959931e-03
87 3.304868e-21 9.982223e-01 1.777672e-03
88 2.034571e-23 9.994557e-01 5.443096e-04
89 5.806986e-18 9.999486e-01 5.137101e-05
90 5.981190e-21 9.998183e-01 1.816870e-04
91 5.878614e-23 9.993856e-01 6.144200e-04
92 5.399006e-22 9.980934e-01 1.906591e-03
93 3.559507e-18 9.999887e-01 1.128570e-05
94 2.104146e-14 9.999999e-01 1.135016e-07
95 4.700877e-21 9.996980e-01 3.020226e-04
96 1.584328e-17 9.999817e-01 1.826327e-05
97 2.802293e-19 9.998892e-01 1.108315e-04
98 1.626918e-18 9.999536e-01 4.640488e-05
99 7.638378e-11 1.000000e+00 1.867332e-08
100 4.679301e-19 9.999269e-01 7.305863e-05
101 7.503075e-52 7.127303e-09 1.000000e+00
102 5.213802e-38 1.078251e-03 9.989217e-01
103 1.231264e-42 2.592826e-05 9.999741e-01
104 1.537499e-38 1.068139e-03 9.989319e-01
105 6.242501e-46 1.812963e-06 9.999982e-01
106 4.209281e-49 6.656263e-07 9.999993e-01
107 3.797837e-33 4.862025e-02 9.513797e-01
108 1.352176e-42 1.395463e-04 9.998605e-01
109 1.323390e-42 2.235313e-04 9.997765e-01
110 3.453358e-46 1.727277e-07 9.999998e-01
111 5.452660e-32 1.305353e-02 9.869465e-01
112 1.182560e-37 1.673875e-03 9.983261e-01
113 5.204321e-39 2.006352e-04 9.997994e-01
114 1.269953e-40 1.948672e-04 9.998051e-01
115 1.685361e-45 1.000455e-06 9.999990e-01
116 5.141640e-40 2.605493e-05 9.999739e-01
117 1.909820e-35 6.083553e-03 9.939164e-01
118 1.207799e-44 1.503799e-06 9.999985e-01
119 3.181265e-59 1.317279e-09 1.000000e+00
120 1.598511e-33 2.207990e-01 7.792010e-01
121 1.119461e-42 6.451865e-06 9.999935e-01
122 3.038170e-37 8.272676e-04 9.991727e-01
123 6.032879e-50 9.509838e-07 9.999990e-01
124 1.951261e-31 9.711942e-02 9.028806e-01
125 1.956408e-39 8.836845e-05 9.999116e-01
126 1.109337e-36 2.679310e-03 9.973207e-01
127 7.841997e-30 1.883675e-01 8.116325e-01
128 7.964690e-30 1.342431e-01 8.657569e-01
129 6.190641e-44 1.303681e-05 9.999870e-01
130 1.406448e-32 1.036823e-01 8.963177e-01
131 4.108129e-42 1.442338e-04 9.998558e-01
132 1.555697e-36 5.198047e-04 9.994802e-01
133 1.320330e-45 3.014091e-06 9.999970e-01
134 1.283891e-28 7.293881e-01 2.706119e-01
135 1.926560e-35 6.602253e-02 9.339775e-01
136 1.271083e-45 2.152818e-06 9.999978e-01
137 3.038963e-44 8.881859e-07 9.999991e-01
138 4.605973e-35 6.165648e-03 9.938344e-01
139 4.538634e-29 1.925262e-01 8.074738e-01
140 2.140232e-36 8.290895e-04 9.991709e-01
141 6.570902e-45 1.180810e-06 9.999988e-01
142 6.202588e-36 4.276398e-04 9.995724e-01
143 5.213802e-38 1.078251e-03 9.989217e-01
144 1.073945e-45 1.028519e-06 9.999990e-01
145 4.048249e-46 2.524984e-07 9.999997e-01
146 4.970070e-39 7.473361e-05 9.999253e-01
147 4.616611e-36 5.898784e-03 9.941012e-01
148 5.548962e-35 3.145874e-03 9.968541e-01
149 1.613687e-40 1.257468e-05 9.999874e-01
150 2.858012e-33 1.754229e-02 9.824577e-01
$x
LD1 LD2
1 8.0617998 0.300420621
2 7.1286877 -0.786660426
3 7.4898280 -0.265384488
4 6.8132006 -0.670631068
5 8.1323093 0.514462530
6 7.7019467 1.461720967
7 7.2126176 0.355836209
8 7.6052935 -0.011633838
9 6.5605516 -1.015163624
10 7.3430599 -0.947319209
11 8.3973865 0.647363392
12 7.2192969 -0.109646389
13 7.3267960 -1.072989426
14 7.5724707 -0.805464137
15 9.8498430 1.585936985
16 9.1582389 2.737596471
17 8.5824314 1.834489452
18 7.7807538 0.584339407
19 8.0783588 0.968580703
20 8.0209745 1.140503656
21 7.4968023 -0.188377220
22 7.5864812 1.207970318
23 8.6810429 0.877590154
24 6.2514036 0.439696367
25 6.5589334 -0.389222752
26 6.7713832 -0.970634453
27 6.8230803 0.463011612
28 7.9246164 0.209638715
29 7.9912902 0.086378713
30 6.8294645 -0.544960851
31 6.7589549 -0.759002759
32 7.3749525 0.565844592
33 9.1263463 1.224432671
34 9.4676820 1.825226345
35 7.0620139 -0.663400423
36 7.9587624 -0.164961722
37 8.6136720 0.403253602
38 8.3304176 0.228133530
39 6.9341201 -0.705519379
40 7.6882313 -0.009223623
41 7.9179372 0.675121313
42 5.6618807 -1.934355243
43 7.2410147 -0.272615132
44 6.4144356 1.247301306
45 6.8594438 1.051653957
46 6.7647039 -0.505151855
47 8.0818994 0.763392750
48 7.1867690 -0.360986823
49 8.3144488 0.644953177
50 7.6719674 -0.134893840
51 -1.4592755 0.028543764
52 -1.7977057 0.484385502
53 -2.4169489 -0.092784031
54 -2.2624735 -1.587252508
55 -2.5486784 -0.472204898
56 -2.4299673 -0.966132066
57 -2.4484846 0.795961954
58 -0.2226665 -1.584673183
59 -1.7502012 -0.821180130
60 -1.9584224 -0.351563753
61 -1.1937603 -2.634455704
62 -1.8589257 0.319006544
63 -1.1580939 -2.643409913
64 -2.6660572 -0.642504540
65 -0.3783672 0.086638931
66 -1.2011726 0.084437359
67 -2.7681025 0.032199536
68 -0.7768540 -1.659161847
69 -3.4980543 -1.684956162
70 -1.0904279 -1.626583496
71 -3.7158961 1.044514421
72 -0.9976104 -0.490530602
73 -3.8352593 -1.405958061
74 -2.2574125 -1.426794234
75 -1.2557133 -0.546424197
76 -1.4375576 -0.134424979
77 -2.4590614 -0.935277280
78 -3.5184849 0.160588866
79 -2.5897987 -0.174611728
80 0.3074879 -1.318871459
81 -1.1066918 -1.752253714
82 -0.6055246 -1.942980378
83 -0.8987038 -0.904940034
84 -4.4984664 -0.882749915
85 -2.9339780 0.027379106
86 -2.1036082 1.191567675
87 -2.1425821 0.088779781
88 -2.4794560 -1.940739273
89 -1.3255257 -0.162869550
90 -1.9555789 -1.154348262
91 -2.4015702 -1.594583407
92 -2.2924888 -0.332860296
93 -1.2722722 -1.214584279
94 -0.2931761 -1.798715092
95 -2.0059888 -0.905418042
96 -1.1816631 -0.537570242
97 -1.6161564 -0.470103580
98 -1.4215888 -0.551244626
99 0.4759738 -0.799905482
100 -1.5494826 -0.593363582
101 -7.8394740 2.139733449
102 -5.5074800 -0.035813989
103 -6.2920085 0.467175777
104 -5.6054563 -0.340738058
105 -6.8505600 0.829825394
106 -7.4181678 -0.173117995
107 -4.6779954 -0.499095015
108 -6.3169269 -0.968980756
109 -6.3277368 -1.383289934
110 -6.8528134 2.717589632
111 -4.4407251 1.347236918
112 -5.4500957 -0.207736942
113 -5.6603371 0.832713617
114 -5.9582372 -0.094017545
115 -6.7592628 1.600232061
116 -5.8070433 2.010198817
117 -5.0660123 -0.026273384
118 -6.6088188 1.751635872
119 -9.1714749 -0.748255067
120 -4.7645357 -2.155737197
121 -6.2728391 1.649481407
122 -5.3607119 0.646120732
123 -7.5811998 -0.980722934
124 -4.3715028 -0.121297458
125 -5.7231753 1.293275530
126 -5.2791592 -0.042458238
127 -4.0808721 0.185936572
128 -4.0770364 0.523238483
129 -6.5191040 0.296976389
130 -4.5837194 -0.856815813
131 -6.2282401 -0.712719638
132 -5.2204877 1.468195094
133 -6.8001500 0.580895175
134 -3.8151597 -0.942985932
135 -5.1074897 -2.130589999
136 -6.7967163 0.863090395
137 -6.5244960 2.445035271
138 -4.9955028 0.187768525
139 -3.9398530 0.614020389
140 -5.2038309 1.144768076
141 -6.6530868 1.805319760
142 -5.1055595 1.992182010
143 -5.5074800 -0.035813989
144 -6.7960192 1.460686950
145 -6.8473594 2.428950671
146 -5.6450035 1.677717335
147 -5.1795646 -0.363475041
148 -4.9677409 0.821140550
149 -5.8861454 2.345090513
150 -4.6831543 0.332033811
table()
DescTools
에서 제공하는 함수
Desc()
caret
에서 제공하는
confusionMatrix()
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
# 1. 재대입에 의한 오분류율 계산 NA## 정준 판별분석
pacman::p_load("MASS")
iris.lda <- lda(Species ~ ., data = iris)
## 예측
pred <- predict(iris.lda, # 함수 lda로부터 출력된 객체NAiris) # 판별함수를 유도하는 데 사용했던 데이터## 오분류율 계산
## 함수 table()iris.ctbl <- table(iris$Species, # 실제 집단 pred$class) # 예측된 집단iris.ctbl
setosa versicolor virginica
setosa 50 0 0
versicolor 0 48 2
virginica 0 1 49
## 함수 Desc()pacman::p_load("DescTools")
Desc(iris.ctbl, # 도수분포표
digits = 4)
--------------------------------------------------------------------
iris.ctbl (table)
Summary:
n: 2e+02, rows: 3e+00, columns: 3e+00
Pearson's Chi-squared test:
X-squared = 282.59, df = 4, p-value < 2.2e-16
Likelihood Ratio:
X-squared = 302.95, df = 4, p-value < 2.2e-16
Mantel-Haenszel Chi-squared:
X-squared = 144.6, df = 1, p-value < 2.2e-16
Phi-Coefficient 1.373
Contingency Coeff. 0.808
Cramer's V 0.971
setosa versicolor virginica Sum
setosa freq 5e+01 0 0 5e+01
perc 33.3333% 0.0000% 0.0000% 33.3333%
p.row 100.0000% 0.0000% 0.0000% .
p.col 100.0000% 0.0000% 0.0000% .
versicolor freq 0 5e+01 2e+00 5e+01
perc 0.0000% 32.0000% 1.3333% 33.3333%
p.row 0.0000% 96.0000% 4.0000% .
p.col 0.0000% 97.9592% 3.9216% .
virginica freq 0 1e+00 5e+01 5e+01
perc 0.0000% 0.6667% 32.6667% 33.3333%
p.row 0.0000% 2.0000% 98.0000% .
p.col 0.0000% 2.0408% 96.0784% .
Sum freq 5e+01 5e+01 5e+01 2e+02
perc 33.3333% 32.6667% 34.0000% 100.0000%
p.row . . . .
p.col . . . .
## 함수 confusionMatrix()pacman::p_load("caret")
confusionMatrix(pred$class, # 예측된 집단 iris$Species) # 실제 집단
Confusion Matrix and Statistics
Reference
Prediction setosa versicolor virginica
setosa 50 0 0
versicolor 0 48 1
virginica 0 2 49
Overall Statistics
Accuracy : 0.98
95% CI : (0.9427, 0.9959)
No Information Rate : 0.3333
P-Value [Acc > NIR] : < 2.2e-16
Kappa : 0.97
Mcnemar's Test P-Value : NA
Statistics by Class:
Class: setosa Class: versicolor Class: virginica
Sensitivity 1.0000 0.9600 0.9800
Specificity 1.0000 0.9900 0.9800
Pos Pred Value 1.0000 0.9796 0.9608
Neg Pred Value 1.0000 0.9802 0.9899
Prevalence 0.3333 0.3333 0.3333
Detection Rate 0.3333 0.3200 0.3267
Detection Prevalence 0.3333 0.3267 0.3400
Balanced Accuracy 1.0000 0.9750 0.9800
Caution!
Package caret
에서 제공하는 함수
createDataPartition()
은 반응변수의 집단별 비율을 원본
데이터와 같게 유지하면서 판별함수를 유도하는 데 사용할 데이터의 인덱스를
추출한다.
## 정준 판별분석
pacman::p_load("MASS")
iris.lda <- lda(Species ~ ., data = trd)
## 예측
pred <- predict(iris.lda, # 함수 lda로부터 출력된 객체NAted) # 새로운 데이터## 오분류율 계산
## 함수 table()iris.ctbl <- table(ted$Species, # 실제 집단 pred$class) # 예측된 집단iris.ctbl
setosa versicolor virginica
setosa 15 0 0
versicolor 0 15 0
virginica 0 0 15
## 함수 Desc()pacman::p_load("DescTools")
Desc(iris.ctbl, # 도수분포표
digits = 4)
--------------------------------------------------------------------
iris.ctbl (table)
Summary:
n: 4e+01, rows: 3e+00, columns: 3e+00
Pearson's Chi-squared test:
X-squared = 90, df = 4, p-value < 2.2e-16
Likelihood Ratio:
X-squared = 98.875, df = 4, p-value < 2.2e-16
Mantel-Haenszel Chi-squared:
X-squared = 44, df = 1, p-value = 3.284e-11
Phi-Coefficient 1.414
Contingency Coeff. 0.816
Cramer's V 1.000
setosa versicolor virginica Sum
setosa freq 2e+01 0 0 2e+01
perc 33.3333% 0.0000% 0.0000% 33.3333%
p.row 100.0000% 0.0000% 0.0000% .
p.col 100.0000% 0.0000% 0.0000% .
versicolor freq 0 2e+01 0 2e+01
perc 0.0000% 33.3333% 0.0000% 33.3333%
p.row 0.0000% 100.0000% 0.0000% .
p.col 0.0000% 100.0000% 0.0000% .
virginica freq 0 0 2e+01 2e+01
perc 0.0000% 0.0000% 33.3333% 33.3333%
p.row 0.0000% 0.0000% 100.0000% .
p.col 0.0000% 0.0000% 100.0000% .
Sum freq 2e+01 2e+01 2e+01 4e+01
perc 33.3333% 33.3333% 33.3333% 100.0000%
p.row . . . .
p.col . . . .
## 함수 confusionMatrix()pacman::p_load("caret")
confusionMatrix(pred$class, # 예측된 집단 ted$Species) # 실제 집단
Confusion Matrix and Statistics
Reference
Prediction setosa versicolor virginica
setosa 15 0 0
versicolor 0 15 0
virginica 0 0 15
Overall Statistics
Accuracy : 1
95% CI : (0.9213, 1)
No Information Rate : 0.3333
P-Value [Acc > NIR] : < 2.2e-16
Kappa : 1
Mcnemar's Test P-Value : NA
Statistics by Class:
Class: setosa Class: versicolor Class: virginica
Sensitivity 1.0000 1.0000 1.0000
Specificity 1.0000 1.0000 1.0000
Pos Pred Value 1.0000 1.0000 1.0000
Neg Pred Value 1.0000 1.0000 1.0000
Prevalence 0.3333 0.3333 0.3333
Detection Rate 0.3333 0.3333 0.3333
Detection Prevalence 0.3333 0.3333 0.3333
Balanced Accuracy 1.0000 1.0000 1.0000
# 3. 교차타당성에 의한 오분류율 계산
## 정준 판별분석
pacman::p_load("MASS")
iris.lda <- lda(Species ~ ., data = iris,
CV = TRUE)
Caution!
함수 lda()
의 옵션
CV = TRUE
을 지정하면 교차타당성에 의한 오분류율을 계산할 수
있다.
## 오분류율 계산
## 함수 table()iris.ctbl <- table(iris$Species, # 실제 집단 iris.lda$class) # 예측된 집단iris.ctbl
setosa versicolor virginica
setosa 50 0 0
versicolor 0 48 2
virginica 0 1 49
## 함수 Desc()pacman::p_load("DescTools")
Desc(iris.ctbl, # 도수분포표
digits = 4)
--------------------------------------------------------------------
iris.ctbl (table)
Summary:
n: 2e+02, rows: 3e+00, columns: 3e+00
Pearson's Chi-squared test:
X-squared = 282.59, df = 4, p-value < 2.2e-16
Likelihood Ratio:
X-squared = 302.95, df = 4, p-value < 2.2e-16
Mantel-Haenszel Chi-squared:
X-squared = 144.6, df = 1, p-value < 2.2e-16
Phi-Coefficient 1.373
Contingency Coeff. 0.808
Cramer's V 0.971
setosa versicolor virginica Sum
setosa freq 5e+01 0 0 5e+01
perc 33.3333% 0.0000% 0.0000% 33.3333%
p.row 100.0000% 0.0000% 0.0000% .
p.col 100.0000% 0.0000% 0.0000% .
versicolor freq 0 5e+01 2e+00 5e+01
perc 0.0000% 32.0000% 1.3333% 33.3333%
p.row 0.0000% 96.0000% 4.0000% .
p.col 0.0000% 97.9592% 3.9216% .
virginica freq 0 1e+00 5e+01 5e+01
perc 0.0000% 0.6667% 32.6667% 33.3333%
p.row 0.0000% 2.0000% 98.0000% .
p.col 0.0000% 2.0408% 96.0784% .
Sum freq 5e+01 5e+01 5e+01 2e+02
perc 33.3333% 32.6667% 34.0000% 100.0000%
p.row . . . .
p.col . . . .
## 함수 confusionMatrix()pacman::p_load("caret")
confusionMatrix(iris.lda$class, # 예측된 집단 iris$Species) # 실제 집단
Confusion Matrix and Statistics
Reference
Prediction setosa versicolor virginica
setosa 50 0 0
versicolor 0 48 1
virginica 0 2 49
Overall Statistics
Accuracy : 0.98
95% CI : (0.9427, 0.9959)
No Information Rate : 0.3333
P-Value [Acc > NIR] : < 2.2e-16
Kappa : 0.97
Mcnemar's Test P-Value : NA
Statistics by Class:
Class: setosa Class: versicolor Class: virginica
Sensitivity 1.0000 0.9600 0.9800
Specificity 1.0000 0.9900 0.9800
Pos Pred Value 1.0000 0.9796 0.9608
Neg Pred Value 1.0000 0.9802 0.9899
Prevalence 0.3333 0.3333 0.3333
Detection Rate 0.3333 0.3200 0.3267
Detection Prevalence 0.3333 0.3267 0.3400
Balanced Accuracy 1.0000 0.9750 0.9800
Text and figures are licensed under Creative Commons Attribution CC BY 4.0. The figures that have been reused from other sources don't fall under this license and can be recognized by a note in their caption: "Figure from ...".