[DataMining] 회귀분석2

Zoe·2022년 3월 29일
0

DataMining

목록 보기
3/3

회귀분석2


  • caret::featurePlot(x:연속형, y:요인, plot='strip,scatter,box,density') : 하나는 이산형 하나는 연속형일 때 사용

  • featurePlot(x=DF1 %>% select_if(is.numeric), y=DF1$gnd,
    plot='box',
    scales=list(x=list(relation='free'), y=list(relation='free'))) : x축 조건 is.numeric, y축 변수에는 성별, 그림의 형태는 상자, free는 뭔가 하면 내가 갖고 있는 y축의 범위를 자유롭게 풀어주라는 소리, 축이 통일이 안 되고 자유롭게 되어 있지 이 말이다

  • 탐색 끝남

  • 이제 모델 돌리기

  • M <- lm

  • summary(M)

  • predict(M)

  • y ~ 체중(연속형) + 나이(연속형)

  • 예측식을 쓸 줄 알아야 함

  • 예측식 : Estimate -> yhat = 143 + 0.56wt - 0.11age -> 1kg증가할 때 마다 0.56증가, 나이가 1살씩 많아질 때마다 키가 0.11감소

  • 회귀분석은 과정이 여러 개 있음

  • fitted values = yhat

  • residuals = y - yhat

  • 정규확률그림(Normal Q-Q) : 이 데이터는 정규분포하는 것 같냐. 잘 안함. 왜? 41, 53번 때문에. 이 두사람을 빼면 괜찮아짐.

  • 딥러닝할 때는 정규분포하는지는 안 물어봄. 내 데이터에 대한 설명이 필요할 때 사용

  • 루트(표준화 잔차) (Scale-Location) -> 등분산 : 그림의 등분산이 수평으로 나오면 등분산임. 수평아니므로 이분산과 가까움

  • x자료의 중심에서의 거리(Leverage)

  • 쿡의 거리(Cook's distance) : 0.5, 1

  • 영향점: 위험한 점, 모형에 지대한 영향을 끼치는 점

  • yh0 = predict(M, DF1)

  • res0 = ht-yh0

  • 잔차평균 내봤자 소용없다. 절대잔차의 합을 구하거나 제곱해서 더하거나 해야 함

  • met <- function(y, yhat)
    {
    data.frame(mse=mean(y-yhat)^2, na.rm=TRUE), mae=mean(abs(y-yhat), na.rm=TRUE))
    }

  • 평균 사람키 맞추는데 3cm틀리면 잘 맞추는 건가? 그렇다

  • 결론은 괜찮은 모형이라고 친다. 3cm 밖에 안 틀리니까

✅ Mlm0 : ht~wt+age

  • 예측할 때 y값인 ht는 원래 안 넣어도 됨

✅ Mlm1 : ht~wt+age+gnd+bd

  • gnd와 bd는 이산형
  • 연속형과 이산형이 막 들어감
  • y가 이산형이면 분류, 연속형이면 회귀분석
  • Mlm1 <- lm(ht~wt+age+gnd+bd, data=DF1)
  • summary(Mlm1) :결론을 보겠다
  • 바로 예측하고 칠래
  • 등분산인가? 정규분포하나? 잔차중에서 큰 건 있나? 영향점 있나?
  • 잔차가 위로 좀 올라감. 직선으로 분석하기엔 조금 어렵기도 함. 내 데이터가 직선이 아니고 곡선이다.
  • 잔차가 20cm 넘는 사람이 또 있구나
  • 정규분포에서 벗어난 사람도 있음
  • 등분산임
  • 영향점 : 53번 41번은 위험함
  • 그런 사람 있거나 말거나 예측값하고 잔차저장하겠다
  • M0 : mse=25, mae=3.2
  • M1 : mse=21, mae=3.35
  • 제곱오차기준으로는 M1이 나음
  • 회귀분석은 다 기준이 오차의 제곱의 합을 작게 하는 것
  • x가 증가하면 무조건 mse가 감소한다.
  • 쓸데 없는 변수를 집어넣어도 mse가 감소한다는 단점이 있음.
  • 잔차진단 : 성별이 들어가면서 남녀별 구분이 나옴
  • 잔차 제일 크게 나온 사람 41번 사람 : 잔차 24cm
  • 그 다음 53번 : 잔차 16cm
  • 대부분 잔차가 음수임 = 예측값이 다 컸던 것
  • 43번 잔차가 양수 => 예측값이 작음
  • yhat = 154 + 0.29wt - 0.08age
  • 성별 { dF, dM } : 가변수. 여자용 가변수는 뭔가 하면 여자면 1 아니면 0/ 남자용 가변수는 남자면 1 아니면 0.
  • 혈액형 { dA, dAB, dB, dO } : O형 가변수는 O형이면 1 아니면 0,
  • 필요없는 걸 정하는 건? 여자인지 안 물어보고 남자인지만 물어봄 and A형인지 안 물어봄
  • gndM
  • bdAB, bdB, bdO
  • yhat = 154 + 0.29wt - 0.08age + 7.9dM + 0.55bdAB + 0.02bdB - 1.23bdO
  • 키가 제일 큰 혈액형은 AB형임. A형보다 0.55큼
  • 키가 작은 혈액형은 O형임. A형보다 1cm 작음
  • t value가 뭐임...
  • 조금이라도 도움이 될 것 같으면 활용한다.

03.30

  • 오차는 독립성 : 서로 독립적이다. 연결되지 않는다.

  • 오차는 등분산, 정규분포

  • 오차는 관측이 안됨. 잔차가 관측됨

  • 잔차는 0을 기준으로

  • 2,3,4번 그림은 잔차들을 보고 회귀분석에 잘 맞는지 안 맞는지 보는 것

  • 내 잔차는 직선으로 설명이 안된다???

  • 2번그림은 선형성이 깨진것

  • 3번은 어떤 변수에 대해 잔차가 이렇~~게 된 것. 이 쪽 변수가 뭔질 모르지만 잔차가 점점 커지네. 등분산 위배 -> 해결해야 함

  • 비표준화 잔차 : y - yhat

  • 회귀분석 들은 사람은 알겠지만 표준화잔차는 종류가 많음

  • 표준화 잔차 : 평균이 0 분산이1

  • 잔차가 큰 사람들이 주로 찾아와 항의한다.

  • 아웃라이어(이상치) : 데이터가 벗어난 것 -> 반드시 나쁜 것은 아님

  • 영향점 : 내 거에 영향을 미침 -> 안 좋은 것, 정말 잘 맞출 수 있었는데 한 사람 때문에 기울기가 확 바뀜 -> 아웃라이어이자 영향점

  • 레버리지 :

🚨🚨🚨시험문제 : IC는 작을수록 무조건 좋다!!

  • IC(Information Criterion,정보기준) = func(MSE/SSE, 모형복잡도)
  • 모형복잡도 높이면 앞에것이 낮아지고, 모형복잡도를 낮추면 앞에 것이 높아짐. -> 상충
  • 잔차도 줄이고 모형복잡도도 줄이는 방법을 찾으려고 함
  • 적당히 복잡하고 적당히 잔차가 작은 것을 찾기
  • min IC !!
  • 모형 오차측도 = SSE(MAE도 있고 하긴 함)
  • 가급적 단순한 모형을 쓰려고 함
  • 회귀분석은 x를 무조건 많이 넣으면 좋아짐
  • 뭐라도 집어넣으면 잘 맞추게 됨
  • 자꾸만 집어넣으려고 함 -> 쓸데없는 걸 집어넣으면 안됨
  • stepAIC(함수임)
  • air, temp, acid, loss(y)
profile
iOS 개발자😺

0개의 댓글