Regression Model(회귀 분석)
변수들 간의 상호 관련성을 구명하고 어떤 변수들의 변화로부터 다른 변수들의 변화를 예측하는 통계 기법
모델을 만든 다음 독립변수들을 이용해서 종속변수 결과를 내는것 -> Prediction.
ex)
- 매출액은 광고 횟수에 따라 어떻게 변하는가?
- 담배 판매량과 폐암 환자수와의 관계는 어떠한가?
Least Square Method(최소자승법)
모델의 파라미터를 구하기 위한 대표적인 방법 중 하나로서 모델과 데이터와의 Residual^2의 합을 최소화 하도록 파라미터를 결정하는 방법.
여기서 Residual은 실제값과 예측값의 차이 제곱의 합을 의미한다.
최소자승법으로 만든 회귀선은 선형이 overfitting의 문제를 피할수 있다.
회귀 예측 모델은 잔차(실제값 - 예측값)의 최소가 되는 선을 만드는것(회귀선)
모형의 평가
모형 평가는 걸정계수, 모수 추정치의 유의도, 표준에러 정보를 참고하여 판단.
- 결정계수(Coefficient of determination) : R^2
= 회귀식에 의해 독립변수가 종속변수를 설명할 수 있는 비율
= 전체 변동에 있어 회귀선의 영향력
잔차가 작아질수록 결정계수는 커진다.(잔차=에러가 작아질수록 설명력이 좋아지므로.)
결정계수(R^2)
SST = SSE + SSR
SST - (실제값과 평균값의 차를 제곱한 것의 합.)
SSE - (실제값과 예측값의 차를 제곱한 것의 합)
SSR - (예측값과 평균값의 차를 제곱한것의 합).
SSR/SST = R^2
Adjusted R^2 = 독립 변수가 늘어나면 불필용한 변수가 늘어나고 효율성이 떨어지므로, 독립 변수가 늘어나면 R^2이 줄어들도록 만든것.
R^2이 1이면 x와 y가 서로 관련이 있다.
R^2가 0이면 x와 y가 서로 관련이 없다.
R^2가 0.8일때는 80%의 설명력을 가짐.
P-Value < 0.05 이하면 유의 하다고라고 판단. = 오차범위가 5% 이내.
모형의 평가
RMSE(Root Mean Squared Error : 제곱근 평균 오차)
MAE(Mean Absolute Error)
같은 데이터 셋으로 했을 때 내 모델의 RMSE가 더 작다고 하면 나의 모델의 우수성 증명가능.
Partial Search Algorithms
- Forward : 하나씩 넣기
- Backward : 모두 넣고 하나씩 빼기
- Stepwise : Forward Backward 혼합
## Linear Regression by R
setwd("C:/Users/rucrazia/Google 드라이브/GBSA Data scientist academy")
insuranceData <- read.csv("insurance.csv", stringsAsFactors = TRUE)
str(insuranceData)
summary(insuranceData$age)
hist(insuranceData$charges)
cor(insuranceData[c("age","bmi","children","charges")])
pairs(insuranceData[c("age","bmi","children","charges")])
insuranceModel <- lm(charges ~ children+age+sex+bmi+smoker+region, data = insuranceData) #lm(y ~ x1+x2+x3, data = dataName)
insuranceModel <- lm(charges ~ ., data = insuranceData) #lm(y ~ ., data = dataName) .(comma는 전체를 의미)
#Linear Regression에서 Coefficients에서 만약 Rogistic 값이면 자동으로 더미변수를 만들어준다.
insuranceModel
나이가 1살 많아질수록 보험비가 256.9 달러가 높아진다.
남자이면 여성보다 -131.3 달러가 덜 낸다.
bmi는 1이 커질수록 339.2 달러가 높아진다.
northwest에 살면 northeast보다 -353 달러가 덜 낸다.
Rogistic Regression
0과 1 처럼 범주형 변수로 이루어진 변수들을 판별하는 분석법
결과도 class(x)로 나오게 한다.(0,1)
Odds(승산)
사건이 일어날 가능성 대 그 사건이 일어나지 않을 가능성에 대한 비율.
ex) 확률 = 0.9 -> Odds = 90:10 즉, 9
Log Odds(로그 승산)
Odds에 로그(밑 2)를 취한다.
ex) Log_2(9) = 2.19
Odds Ratio는 두개의 오즈에 대한 비율을 의미한다.
A라는 상점의 주인과 B라는 샐러리 맨이 있는데, default(파산) 날 확률이 A는 0.25이고 B는 0.10이다.
A가 파산이 될 확률은 0.25/0.75 = 1/3
B가 파산이 될 확률은 0.1/0,9 = 1/9
Odds Ratio (A:B) = 1/3 / 1/9 = 3
확률을 직접 자영업자가 샐러리맨보다 망할 위험이 2.5배라고 하면 잘못된 해석이고, 그렇기 때문에 Odds Ratio를 구해서 자영업자가 샐러리맨보다 망할 위험이 3배라고 해야 한다.
해석 방법 = Odds Ratio (A:B) = 1.5 => 'A가 B에 비해 ~~ 할 가능성이 1.5배 크다'
상대 위험도 ( relative risk ) =
Bassassinator를 사용하고 물고기를 잡을 확률 /no bait의 경우 물고기를 잡을 확률 = 0.5/0.02 = 25
위에서 보듯 누구에게나 직관적이고 쉬운 개념은 상대위험도이다. 위의 경우 해석을 한다면 당신이 Bassassinator을 사용한 경우에 물고기를 잡을 확률이 25배가 높다고 할 수 있다. 너무나 간단하게 해석이 된다. 그렇다면 왜 오즈비를 사용하는 것일까?
여기서 이런 의문이 생길 수 밖에 없다. 이 답은 다음과 같다.
거의 모든 연구는 실제로 처리(treatment)그룹과 대조(control)그룹의 모집단수를 알 수 없다. 왜냐하면 연구자가 할 수 있는 것은 샘플수를 조정할 수 있을 뿐이다. 가령 위의 예를 다음과 같이 바꿔보자.
아래의 표는 물고기를 잡은 100명의 낚시꾼을 조사한 결과 이들중 40명이 Bassassinator를 사용하였다. 그리고 100명의 물고기를 한마리도 잡지 못한 낚시꾼을 조사한 결과 단지 이들중 20명이 Bassassinator를 사용한 것으로 조사되었다. 즉 전체 물고기를 잡은 사람수를 구할 수 있는 방법은 없다. 즉, 연구자는 각각의 모집단의 수를 알 수 없다.
그래서 이때 모집단을 알 수 없기 때문에 대신 오즈비를 사용하게 된다.
로지스틱 실습 결과
Coefficients: (2 not defined because of singularities)
Estimate Std. Error z value Pr(>|z|)
(Intercept) 2.0683207 0.9773496 2.116 0.034323 *
AGE -0.0373678 0.0044538 -8.390 < 2e-16 ***
BUY12 0.0819698 0.1376431 0.596 0.551493
BUY6 -0.0866235 0.1621316 -0.534 0.593149
CLIMATE20 -0.2154789 0.1786084 -1.206 0.227651
CLIMATE30 -0.3229123 0.1982291 -1.629 0.103316
COA6 0.2310992 0.2023611 1.142 0.253448
DISCBUY -0.0653153 0.0889775 -0.734 0.462909
FICO -0.0048295 0.0013312 -3.628 0.000286 ***
INCOME -0.0004107 0.0025064 -0.164 0.869846
LOCB 0.0509743 0.1302057 0.391 0.695435
LOCC 0.2898139 0.2063472 1.404 0.160171
LOCD 0.3018812 0.2068856 1.459 0.144518
LOCE 0.0681187 0.1243186 0.548 0.583736
LOCF NA NA NA NA
LOCG 0.0347984 0.1739315 0.200 0.841426
LOCH NA NA NA NA
MARRIED1 0.5297440 0.0900078 5.886 3.97e-09 ***
ORGSRCC 0.0517075 0.2062089 0.251 0.802005
ORGSRCD -0.0852036 0.1995547 -0.427 0.669402
ORGSRCI 0.1268947 0.4353997 0.291 0.770712
ORGSRCO 0.1271104 0.1928021 0.659 0.509717
ORGSRCP 0.1808338 0.1982894 0.912 0.361785
ORGSRCR 0.0769986 0.2059555 0.374 0.708508
ORGSRCU 0.0911348 0.1976674 0.461 0.644762
OWNHOME -0.4111145 0.0922824 -4.455 8.39e-06 ***
RETURN24 -0.0580683 0.1555311 -0.373 0.708884
SEXM -0.0864359 0.0798599 -1.082 0.279100
VALUE24 0.0011545 0.0002784 4.147 3.37e-05 ***
연령이 한살 적어질수록 -0.0373678이 작아진다라고 하면 안된다. 왜냐하면, Odds Ratio를 구해야 하므로.
오즈비를 구하려면 coef를 구해줘야 한다.
> exp(coef(buyRogisticModel))
(Intercept) AGE BUY12 BUY6 CLIMATE20 CLIMATE30 COA6 DISCBUY FICO INCOME
7.9115263 0.9633218 1.0854230 0.9170223 0.8061553 0.7240374 1.2599842 0.9367721 0.9951821 0.9995894
LOCB LOCC LOCD LOCE LOCF LOCG LOCH MARRIED1 ORGSRCC ORGSRCD
1.0522958 1.3361788 1.3524005 1.0704923 NA 1.0354110 NA 1.6984974 1.0530677 0.9183253
ORGSRCI ORGSRCO ORGSRCP ORGSRCR ORGSRCU OWNHOME RETURN24 SEXM VALUE24
1.1352975 1.1355424 1.1982160 1.0800406 1.0954167 0.6629110 0.9435855 0.9171944 1.0011552
연령이 한살 높아질수록 0.9633218배 만큼 늘어난다.(1보다 작으므로 낮아진다.)
집을 가지고 있는 사람은 0.6629110배 만큼 집이 없는 사람보다 구매율이 차이난다.
Naive Bayes
실제로는 생길 수 없는 강한 독립 사건에 대한 가정을 포함한다는 사실 때문에 의도적으로 naive 라는 말을 사용한다.
조건부 확률 (A가 일어났을때 B가 일어날 확률)
- 확률이 0이 아닌 두 사건 A,B에 대하여 사건 A가 일어났다고 가정했을 때 사건 B가 일어날 확률을 조건부 확률 P(B|A)로 정의한다.
즉, 사건 A의 발생여부에 따라 B가 일어날 확률이 달라질수 있음을 의미.
P(A교집합B) = P(B)*P(A|B) = P(A)*P(B|A)
VEH_INVL
Y 1 2 3
0 0.29612018 0.63641376 0.06746606
1 0.31145577 0.56892764 0.11961659
2대의 자동차가 부딛혔을때,
부상안했을 확률이 0.63
부상했을 확률이 0.56
3대의 자동차가 부딛혔을때,
부상안했을 확률이 0.0675
부상했을 확률이 0.11196
CrossTable(test_set$MAX_SEV_IR, test_set$predict_nb, prop.chisq=FALSE, prop.t=TRUE,prop.c=FALSE, prop.r=FALSE)
| test_set$predict_nb
test_set$MAX_SEV_IR | 0 | 1 | Row Total |
--------------------|-----------|-----------|-----------|
0 | 4154 | 2059 | 6213 |
| 0.328 | 0.163 | |
--------------------|-----------|-----------|-----------|
1 | 3010 | 3432 | 6442 |
| 0.238 | 0.271 | |
--------------------|-----------|-----------|-----------|
Column Total | 7164 | 5491 | 12655 |
--------------------|-----------|-----------|-----------|\\
출처
GBSA 경기도경제과학진흥원 2017 SW - tech 전문교육 2주차