데이터 분석 #3 회귀분석 #
#2025-08-07
#1 Oversampling Techinique (p.69-71)
SMOTE
- 소수 클래스 포인트 중 하나를 랜덤하게 고르고
- 이웃 포인트 k개를 찾고
- 이 이웃들과의 연결선을 따라 중간 어딘가에 새로운 샘플을 만든다.
- 즉 원본과 이웃 사이에 위치한 점들을 생성한다.
- 소수 클래스 포인트들 사이의 직선 위에서만 새로운 데이터를 만들기 때문에 실제로는 decision boundary 근처에서 중요한 데이터를 놓칠 수 있다
Borderline-SMOTE
- 소수 클래스의 포인트에 대해 kNN을 수행해서 이웃들을 찾는데
- 이때 이웃 중에서 과반수 이상이 다수 클래스인 경우 위험한 샘플(danger set)으로 간주된다 즉 이 샘플은 결정 경계에 가깝기 때문에 모델 입장에서 헷갈릴 가능성이 높다.
- 그런 danger set에 대해서만 SMOTE를 수행하여 새로운 데이터를 생성해서 decision boundary 근처의 소수 클래스 밀도를 높인다.
- 이렇게 하면 모델이 중요한 경계 영역에서의 소수 클래스를 더 잘 인식하도록 도와줄 수 있다.
- 소수 클래스의 포인트에 대해 kNN을 수행해서 이웃들을 찾는데
ADASYN
- 소수 클래스 포인트마다 kNN을 사용해서 가까운 이웃을 찾고
- 이웃들 중에 다수 클래스 비율 ri를 계산하고 이 ri값이 높을수록 더 많은 데이터를 그 샘플 주변에 생성한다.
- 이렇게 하면 학습 데이터에서 어렵고 복잡한 영역에 더 많은 정보를 제공할 수 있기 때문에 모델이 보다 정밀한 분류를 수행할 수 있게 된다.
#
#2 Learning vs Inference (p.3)
Learning
- 컴퓨터에게 어떤 일을 시키기 위해서는 먼저 그 일을 어떻게 해야 하는지를 가르쳐야 하는데 이게 Learning.
- 예를 들어 “이 사진이 사람 얼굴인지 개 얼굴인지 맞혀봐"라고 한다고 치면 처음에는 컴퓨터가 제대로 못 맞히지만 많은 사진을 보여주고 정답을 알려주고를 반복하면서 컴퓨터는 ‘이런 모양이면 사람 얼굴이고’, ‘이런 구조면 개 얼굴이구나’ 하는 규칙을 배우고
- 예측을 해보고 틀리면 왜 틀렸는지 되돌아가서 네트워크 구조를 수정하는 과정을 계속 반복한다(forward/backward 과정). 이 반복을 통해 점점 더 잘 맞히는 모델로 발전한다.
Inference
- 학습이 끝난 다음에 새로운 사진을 주고 “이건 뭐야?“라고 물어보는 단계. 이때는 정답을 알려주지 않는다.
- 예를 들어 처음 보는 사람 얼굴 사진을 주면 학습 때 봤던 예시들과 비교해서 ‘이건 사람 얼굴이네’라고 추측한다.
- 이 과정에서는 이미 학습된 모델만 사용하고 그 내부 구조를 바꾸지 않는다 즉 지식을 시험 보듯이 적용만 하는 단계.
#
#3 상관 분석은 왜 필요할까? (p.15)
- (a)와 (b)는 모두 x와 y의 평균값과 퍼짐 정도 즉 표준편차는 동일하다.
- 근데 a는 데이터가 거의 직선인반면 b는 흩어져 있어서 서로의 관계가 약해 보인다.
- 즉 단순한 통계량만 보면 같아 보이지만 실제로는 전혀 다른 패턴이다.
- 상관분석은 두 변수 간의 방향과 강도 다시 말해 x가 커질 때 y도 커지는지 혹은 반대로 작아지는지, 그리고 그 관계가 얼마나 뚜렷한지를 숫자로 나타내서 평균과 표준편차가 말해주지 못하는 두 변수 간의 관계를 정량적으로 보여준다.
- 근데 a는 데이터가 거의 직선인반면 b는 흩어져 있어서 서로의 관계가 약해 보인다.
#
#4 자유도 (p.18)
일부 샘플만으로 진짜 모집단의 표준편차를 추정하려면 그냥 단순히 샘플의 평균으로 계산하면 안 되고 조정을 해줘야한다 왜냐면 샘플은 모집단 전체를 대표하지 못하기 때문에 항상 약간의 편향(bias)이 생긴다.
- 그 보정법이 ’n-1’이라는 자유도의 개념인데 1을 빼줌으로써 계산된 분산이 모집단 분산보다 작게 나오는 경향을 보완해즌다.
- 예를 들어 10개의 데이터를 가지고 표준편차를 계산할때 10이아닌 9로 나눠서 평균을 내는데 그 이유는 실제로 자유롭게 움직일 수 있는 값이 10개 중 9개밖에 없기 때문.
편차가 1개밖에 없을 때 즉 데이터가 하나뿐일 때?
- 이때는 표준편차를 구할수없다 왜냐하면 분산을 계산할 때 0으로 나눈 값은 정해질 수 없기 때문에.
- 이 경우는 부정형(indeterminate form)이라고 부른다. 말 그대로 “알 수 없다"는 뜻이다.
올해 10% 수익이면 내년도 10% 수익이 확실하다는 의미?
- 데이터가 하나밖에 없기 때문에 변동성 즉 편차를 측정할 수 없다
- 표준편차가 0이라고 해서 수익이 고정됐다는 뜻이 아니라 아예 그 불확실성을 판단할 방법이 없다.
cf) n-1이 아니라 만약 -2를 하면??
- 모델이 실제보다 데이터의 불확실성을 과대평가하는셈.
#
#5 상관계수와 z-score (p.20)
- 각 관측치에 대해 x와 y의 z-score를 각각 계산할 수 있고
- 모든 관측치에 대해 z_x * z_y를 계산하고 다 더하고 평균낸 값과 똑같다.
- 엄밀히는 n이아니라 n-1로 나눈거랑 똑같다.
- 모든 관측치에 대해 z_x * z_y를 계산하고 다 더하고 평균낸 값과 똑같다.
#
#6 인과관계 (p.25)
- 인과관계는 x와 y의 시차를 틀었을때 regression의 결과가 어떻게 달라지는지를 통해 선후관계를 파악한다.
#
#7 시계열 데이터 (p.33)
- 시계열 데이터에서 일반적인 회귀분석의 가정이 깨진다. 그러면 어떻게 회귀분석을 돌리지? -> 시계열 분석의 시작.
#
#8 회귀직선과 상관계수 (p.34-37)
- 평균보다 키가 1표준편차 큰 사람은 몸무게도 1표준편차 클 것이다?
- 아님 왜냐면 두 변수 간의 관계가 완벽한 선형이 아니기 때문에. 상관계수가 얼만큼 변하는지에 관여한다.
- 즉 키가 평균보다 1표준편차 클 때 몸무게는 평균보다 정확히 1표준편차가 아니라 r배 만큼 증가한다.
- 예를 들어 상관계수가 0.8이면 몸무게는 0.8 표준편차만큼만 증가하고 0.5라면 절반 정도만 따라간다.
#
모의고사 본고사 시험 사이의 점수를 회귀분석으로 분석.
- 모의고사와 본고사 점수 사이에는 어느 정도 상관관계가있다.
- 근데 이게 완벽하게 1:1로 이어지지는 않는데 예를 들어 모의고사에서 160점을 받은 사람이 본고사에서는 약간 낮은 점수를 받는 경우가 많고, 반대로 모의고사에서 평균보다 낮은 110점을 받은 학생들이 본고사에서도 꼭 110점 아래를 받는 게 아니라 평균적으로는 오히려 그보다는 약간 높은 120점 정도를 받는 경향이 있다.
- 그러니까 한쪽으로 극단적인 값을 보였던 사람들은 다음 측정에서는 평균 쪽으로 다시 돌아오는 듯한 모습을 보인다(평균으로의 회귀 현상)
점수라는 건 단지 실력만 반영하는 게 아니라 시험 당일의 컨디션이나 운, 문제 유형 같은 우연한 요소들도 영향을 주기때문에 모의고사에서 아주 높은 점수를 받은 사람은 실력이 좋았을 뿐만 아니라 우연히 좋은 조건이 겹쳤을 수도 있어서 본고사에서는 점수가 조금 낮아질 가능성이 크고 반대로 모의고사에서 낮은 점수를 받은 사람도 사실은 실력보다 약간 덜 나온 걸 수 있어서 본고사에서는 평균으로 되돌아오는 경향을 보인다.
그래프로 보면 모의고사 점수가 x축, 본고사 점수가 y축일 때, 모든 점들을 연결하면 하나의 퍼진 구름처럼 보이고
- 그 위에 회귀선을 그리면 이 선은 꼭 대각선이 아니라 약간 눕는다. 즉 극단적인 점수를 받은 사람일수록 그 다음 점수는 평균 쪽으로 더 가까워진다.
결론
- 회귀효과는 실력과 운이 섞여 있는 측정 결과에서, 두 번째 측정에서는 우연한 요소가 줄어들면서 평균으로 돌아가는 현상.
#
#9 회귀모형의 평가 (p.41)
설명력
- 어떤 현상을 설명하기 위해 회귀선을 그린다
- 예를 들어 키로부터 몸무게를 예측하거나, 공부 시간으로부터 시험 점수를 예측하기위해 회귀선을 그린다.
- 이때 회귀선에서 궁금한건?
- 이 직선 즉 회귀식이 실제 데이터를 얼마나 잘 설명하고 있을까?
- 이걸 수치화한게 결정계수 R².
오차
- 그림의 데이터를 보면 각 점(실제 관측값)이 퍼져 있고 회귀직선은 이 점들을 가장 잘 통과하는 직선.
- 그리고 실제 데이터와 예측값 사이에는 늘 오차가 존재하는데 두가지로 나누면
- 회귀선으로 설명할 수 있는 부분 즉 데이터가 평균에서 얼마나 벗어났는지를 회귀선이 얼마나 잘 설명했는지(SSR)
- 회귀선이 설명하지 못한 부분 즉 예측값과 실제값 사이의 차이(SSE).
- 그리고 실제 데이터와 예측값 사이에는 늘 오차가 존재하는데 두가지로 나누면
R²의 해석
- SSR / SST는 전체 변화량 중에서 회귀선이 설명한 비율. (R² = SSR / SST)
- 회귀선이 설명하지 못한 부분 SSE 기준으로는 R² = 1 - SSE / SST.
- R²이 0.6이면 전체 y의 분산 중 60%는 x로부터 설명된다는 뜻이고, 나머지 40%는 다른 요인이나 노이즈 때문이라는 뜻.
cf) R²도 음수가 나온다?
- 이 지표는 train data가 회귀선에 얼마나 잘붙었는지 지표이니깐 train data로 계산해야 제대로 나오는데 test data에 대고 계산하면 엉뚱한 값으로 -가 나올수 있다.
#
#10 회귀분석 결과 해석 (p.45-46)
목적: 쿠폰을 얼마나 배포하고 가격을 어떻게 책정해야 구매고객 수가 늘어나는지 확인
- 독립변수(쿠폰배포매수와 판매가격)가 종속변수(구매고객수)에 미치는 영향 분석.
회귀분석 결과
회귀식 y = 0.109·x₁ + 0.003·x₂ + 274.375 (x₁은 쿠폰매수, x₂는 판매가격이고 y는 예상 구매고객수)
- 쿠폰을 1장 더뿌릴수록 고객 수 0.109명 늘어난다
- 판매가격이 1원 올라가면 고객 수는 0.003명 늘어난다
근데 단순히 계수 값만 보고 판단하면 안 되고 그 값이 실제로 통계적으로 의미 있는지를 봐야 한다.
- 쿠폰배포매수의 P-값 3.795E-05: 유의미하다
- 판매가격의 P-값은 0.813: 유의하지 않다 즉 가격이 변한다고 해서 구매고객 수가 유의미하게 달라진다고 보기 어렵다.
판매가격 제거하고 회귀모델을 구성: y = 0.108·x + 282.892
- 조정된 결정계수는 0.735
- 즉 이 회귀모델이 전체 구매고객 수의 약 73.5%를 설명할 수 있다.
- (조정: 변수의 개수를 고려해서 모델의 설명력을 평가)
- 유의확률 F가 0.000: 회귀모형이 전체적으로 통계적으로 유의하다.
- 적어도 하나의 독립변수가 종속변수에 영향을 준다. (실제로 2개 중 1개가 유의했음)
- 조정된 결정계수는 0.735
cf) F 통계량이 유의히다 = 3개중에 하나라도 유의하다. 모두라는 표현은 아니다.
#
#11 회귀방정식의 가정 - 등분산성 (p.51)
등분산성?
- x값이 작든 크든 관계없이 y값의 퍼짐 정도 즉 오차의 분산이 항상 일정해야 한다.
- 예를 들어 교육수준이 10년인 사람들과 20년인 사람들 모두 소득이 평균을 중심으로 비슷하게 퍼져 있어야 한다.
- 오차가 일정하다는 말은 예측이 고르게 잘 맞는다는 뜻이기도한데 회귀선에서 멀리 떨어진 사람도 있고 가까운 사람도 있지만, 그 거리(오차)의 평균적인 크기가 x의 값에 따라 달라지는것만 아니면 된다.
- x값이 작든 크든 관계없이 y값의 퍼짐 정도 즉 오차의 분산이 항상 일정해야 한다.
실제 데이터를 보면
- 교육수준이 낮은 사람들은 대부분 소득이 비슷하게 모여 있다 예를 들어 평균이 500만 원이면 대부분이 450~550만 원 안에 있다. 그런데 교육수준이 높아지면 예를 들어 22년 이상 교육을 받은 사람들의 경우 평균은 800만 원이지만 어떤 사람은 600만 원 벌고 어떤 사람은 1200만 원 넘게 벌기도 하는 등 퍼짐이 훨씬 커진다.
- 이건 등분산이 아니라 이분산이고 회귀모델의 중요한 가정을 깨뜨린다.
이 가정이 깨지면?
- 겉으로 보기엔 회귀선이 잘 맞는 것처럼 보여도 실제로는 예측의 신뢰도가 높지 않아진다 즉 평균적인 소득은 맞힐 수 있지만 개별 사람에 대해서는 예측이 크게 틀릴 수 있다.
#
#12 불편 추정량 (p.53)
어떤 값을 추정할 때 그 추정값이 평균적으로 진짜 값을 잘 맞히는지를 판단하는 기준.
- 모집단의 평균이나 계수를 추정한다고 할 때 표본 데이터를 여러 번 뽑아서 그때마다 계산된 추정값들을 평균 내봤더니 그게 진짜 값과 일치한다면 그 추정량이 “편향이 없다” 즉 불편(unbiased)하다고 한다.
- 추정값들이 우연히 왼쪽으로 쏠리거나 오른쪽으로 쏠리지 않고, 중심이 진짜 값을 잘 둘러싸고 있다는 뜻.
- 모집단의 평균이나 계수를 추정한다고 할 때 표본 데이터를 여러 번 뽑아서 그때마다 계산된 추정값들을 평균 내봤더니 그게 진짜 값과 일치한다면 그 추정량이 “편향이 없다” 즉 불편(unbiased)하다고 한다.
^β2는 변수 X가 Y에 얼마나 영향을 주는지를 나타내는 기울기.
- 기대값과 실제값의 차이를 제곱해서 평균내는 방식 즉 분산 공식 그대로 분산을 구한다.
- 식을 보면
- 오차항 ei의 분산인 σ2에 영향을 받고
- X의 분산에도 영향을받는다.
- n이 커질수록 분산이 작아진다.
결론적으로 불편 추정량의 의의?
- 어떤 계수를 추정할 때 그 값이 정확하냐는 문제를 통계적으로 따질 수 있다.
- 정확하다는 건 단순히 한 번의 추정이 맞았다는 뜻이 아니라 여러 번 뽑았을 때 평균적으로 참값 근처에 있다는 것(불편 추정량)
- 회귀계수가 불편 추정량이라면 우리는 평균적으로 정확한 값을 얻고 있다.
#
#cf
- 들어온중에 젤어려웠던수업..
- oversampling technique 설명들으면서 좋은알고리즘만큼 중요한게 알고리즘을 잘보여주는 예시데이터와 플롯 같다고 생각들었다.
그런의미에서 내학위심사ppt는 어떡하지?.. - 자유도 개념이 애매했는데 -1 왜하는지 완전이해할수있어서 좋앗고 등분산성이 헷갈렸는데 위 그림의 예시는 어쨌든 등분산성이 깨진 예시인게 맞겠지? 그러면 제대로 이해했다.
- 그리고 불편 추정량을 처음들었는데 개념은 이해했는데 그래서 이게왜나오는건지는 잘모르겠다.