AI SCHOOL

[통계분석] 상관분석 / 회귀분석

moru_xz 2023. 2. 16. 17:44

순서

1. 순서형인지 연속형인지 범주형인지

2. 독림표본이나 대응표본이냐

3. 그런데 좀 특이하게 분산분석이 들어간다 

독립표본 t: 두 집단의 평균 비교
대응표본 t: 두 집단의 자료를 쌍으로 묶을 수 있을 때 차이의 평균 비교 
맨-휘트니 U 검정: 두 집단의 순서형 변수를 비교 a, b 집단 비슷할 때 순서 a, b, a, b 이렇게 서고 집단이 안 비슷하면 a,a,a b,b,b 이렇게 되면 귀무가설 기각(밑 이미지 참고) 줄을 섰는데 튀는 데이터가 있어도 순서대로 서기만 하면 되니까 큰 문제가 되지 않음, 극단치 있어도 쓸 수는 있다
분산 분석:  셋 이상 집단의 평균 비교
카이제곱 적합도 검정: 관찰된 빈도가 기대되는 빈도와 일치하는지 확인
카이제곱 독립성 검정: 두 범주 변수 간에 관계가 있는지
맥니마 검정: 두 집단의 자료를 쌍으로 묶을 수 있을 때, 비율을 비교
검정력: 귀무가설이 거짓일 때 기각할 확률(잘했음) -> power

 

 
 
통계적 가설검정에서 흔히 설정하는 귀무가설의 형태는?
집단 간에 차이가 없다
귀무가설을 기각하려면? p < 유의수준 -> 물이 어는점은 0도, 끓는점은 100도로 정한 것 처럼 얘도 이렇게 
귀무가설을 기각하면 그 해석은? 집단 간에 차이가 있다
귀무가설을 기각 못하면 그 해석은? -2, -1, 0, 1, 2 0도 맞는데! 1도 2도 맞을 수 있는 상황 -> 결론을 유보한다

----

사후 검정은 분산분석의 귀무가설  '모든 집단의 평균이 같다'를 기각한 후 (p < α)
조금 더 디테일하게 실제로 여러 집단 중 평균이 같지 않은 집단을 식별하기 위함.

 
 

상관 분석

상관 계수

  • 두 변수의 연관성을 -1~+1 범위의 수치로 나타낸 것
  • 두 변수의 연관성을 파악하기 위해 사용
    - 어휘력과 독해력의 관계(어휘가 돼야 독해가 되는거지 vs 어휘는 대충 해도 독해가 더 중요하지 -> 둘다 상관이 있긴 있다)
    - 주가와 금 가격의 관계
    - 엔진 성능과 고객만족도의 관계

 
  • 1~-1일 때 어떻게 분포하는지를 보여줌 
  • 그런데! 0일 때도 아예 관계가 없는 것은 아님 
 

부호

  • +: 두 변수가 같은 방향으로 변화(하나 증가하면 다른 하나도 증가)
  • -: 두 변수가 반대 방향으로 변화(하나가 증가하면 다른 하나는 감소)

 

크기

  • 0: 두 변수가 독립, 한 변수의 변화로 다른 변수의 변화를 예측하지 못함
  • 1: 한 변수의 변화와 다른 변수의 변화가 정확히 일치

 

기울기

  • 기울기는 𝑦 = 𝑎𝑥 + 𝑏에서 𝑎
    - x가 1만큼 변할 때, y 의 변화량
    - 기울기가 클 수록 y 가 크게 변함
  • 상관계수와 다른 개념이므로 주의

 

기울기가 커도 상관계수 작을 수 있음

 

공분산

  • x의 편차와 y의 편차 곱한 것은 평균(x=y이면 분산과 같음)

  • 우상향하는 추세인 경우 + 로 커짐
  • 우하향 하는 추세인 경우 -로 커짐

분산 = 편차 ** 2

공분산 = 편차(x의 편차) * 편차(y의 편차)

공분산이 0 인 것은 +, - 가 막 섞여있는 것

 

피어슨 적률 상관계수 

  • 가장 대표적인 상관계수

  • 선형적인 상관계수 측정
  • 공분산을 두 변수의 표준편차로 나눔 -> -1 ~ +1 범위

공분산은 범위가 무한대 

 

 

주행거리와 가격의 상관관계 그래프

5.809388e-38 < 0.05

Ture. #귀무가설: 상관이 없다-> 기각 ->상관있다

 

상관계수와 비단조적 관계

  • 상관계수는 우상향 또는 유하향하는 단조적 관계 표현
  • 복잡한 비단조적 관계는 잘 나타내지 못함
  • 상관계수가 낮다고 해서 관계가 없는 것은 아님
  •  

 

상관분석의 가설검정 순서도

상관계수 신뢰구간

  • + ~ +: 모집단에서 두 변수의 관계가 +
    - ~ + : 모집단에서 두 변수의 관계는 -, 0, + 모두 가능 
  • - ~ - : 모집단에서 두 변수의 관계가 -

 

상관계수 크기 해석

  • 상관계수의 크기에 대해 몇 가지 권장 기준 있으나 엄밀한 근거에 바탕을 둔 것은 아님 
    - 낮음: ~0.1
    - 중간: 0.1 ~ 0.5
    - 높음: 0.5 ~
  • 실제 의사결정에서는 상대적으로 비교하는 것이 바람직 
  • 예를들어 상관계수가 0.2인 요소 A와 0.3인 요소가 B가 있고, 예산상 한가지 요소만 고려할 수 있다면 요소 B를 고려

 

상관 행렬

  • 연속형 변수만 골라서 상관계수를 구함 
  • 상관행렬은 사실상 상관분석을 아~주 많이 한 것 => 다중비교 문제
  • 상식: 데이터 분석을 많이 하면 좋은 거다 
  • 통계적 진실: 데이터 분석을 많이 하면 반드시 이상한 결과가 나온다 

 

스피어만 상관계수(= 순위 상관계수)

  • 실제 변수값 대신 그 서열을 사용하여(비모수적으로) 피어슨 상관계수를 계산
  • 한 변수의 서열이 높아지면 다른 변수의 서열도 높아지는지를 나타냄
  • 두 변수의 관계가 비선형적이나 단조적일 때 사용
    - 행복과 소득의 상관관계 -> 연관 있음 근데 소득이 어느정도 올라가면 그 행복도가 덜 함 

 

켄달 상관계수

  • 모든 사례를 짝지어 X의 대소관계와 Y의 대소관계가 일치하는지 확인
  • 데이터가 작을 때 사용

a 소득도 낮고 행복도 낮고  b c d …

우선 a, b 짝짓기 

xi - xj  는 b가 a 보다 1만큼 행복 다 1만큼 소득, 행복 늘어남 1+1+1+1+1+1

x는 소득 y는 행복

 

c 하나만 돈 더 벌었는데 행복은 줄어들고~ +5 -1 / 6  되는 거임 

x는 소득 y는 행복

pg.corr(df.mileage, df.price, method='spearman') # 스피어만 상관계수: -0.69
pg.corr(df.mileage, df.price, method='kendall') # 켄달 상관계수: -0.50

중고차 시장에서 눈 감고 아무거나 두대 찝어서

 

상관과 인과

  • 두 변수의 상관관계는 인과관계를 담보하지 않음
  • 상관관계가 있다고 반드시 인과관계가 있는 것은 아님
  • 제3변인의 존재
  • 이질적인 집단들의 합(심슨의 역설)
  • 극단치

 

제 3의 변인

  • 도시 내 범죄 발생 견수와 종교 시설의 수는 양의 상관관계가 있음
  • 범죄가 많아서 종교에 의존하는가? 또는 종교가 범죄를 부추기는가?
  • 사실은 인구가 많아지면 범죄도 늘고, 종교 시설도 많아짐
    - 아이스크림이 많이 팔리는 시점에는 범죄도 늘어남 왜지? -> 아이스크림은 날씨 영향 -> 아이스크림을 먹지 않을 때는 추워서 사람들이 밖으로 나오지 않음 -> 그래서 범죄 덜 

 

심슨의 역설

  • 각 집단별 상관관계와 전체 총합의 상관관계는 다를 수 있음
  • 상관분석 결과가 예상과 다를 경우, 이질적인 하위 집단들이 존재하는지 살펴봐야 할 수도 있음 

 

벅슨의 역설

  • A-B 모두 있는 사람이나 모두 없는 사람이 데이터에서 배제되어 나타나는 현상
  • 예시
    - 외모와 성격이 모두 마음에 들지 않는 사람과는 처음부터 만나지 않음
    - 외모와 성격이 독립적이라도, 만난 사람 중에서는 음의 상관관계가 관찰 됨

 

둘다 마음에 안 드는 사람은 애초에 데이터에서 빠져버렸기 때문에

a질병 b질병 둘다 걸렸으면 이미 죽어서… 

변수에 조합에 따라 데이터에서 누락되게 되는 

 

극단치

  • 자료 내 극단치가 있을 때
  • 존재하지 않는 상관관계가 나타나는 경우
  • 존재하는 상관관계가 포착되지 못하는 경우
  • 상관관계 과장되거나 과소평가 될 수도 있음 

-> 말도 안 되는 상관관계가 나올 수 있음 

 

상관분석은 두 변수가 관련이 있느냐, 회귀분석은 두 변수가 어떤 관련이 있느냐

회귀 분석

지도학습

  • 독립변수(알고 있는) x를 이용하여 종속변수(모르는) y를 예측하는 것
  • 독립변수 independent variable: 예측의 바탕이 되는 정보, 인과관계에서 원인, 입력값
  • 종속변수 dependent variable: 예측의 대상, 인과관계에서 결과, 출력값

 

통계에서 예측의 의미

  • 통계학에서 예측은 어떤 값에 대한 추론을 의미
  • 시간적인 의미 아님
  • 지도학습에서 예측은 변수들 사이의 패턴을 파악하여 한 변수로 다른 변 수를 추론하는 것
  • 시계열 분석 등에서 하는 미래에 대한 예측은 forecasting이라고 구분

 

종속변수에 따른 지도학습의 구분

  • 회귀분석 regression
    - 종속변수가 연속
    - 예측값 – 실제값으로 정확성을 계산
  • 분류분석 classification
    - 종속변수가 범주형
    - 예측의 정확성을 다른 방식으로 계산
통계와 머신러닝에서의 회귀분석은 비슷하지만! 
통계에서의 회귀분석: 해석이 더 잘되는 것 / 해석 -> 예측
머신러닝에서의 회귀분석: 예측이 더 잘되는 것 / 예측 -> 해석

선형 모형 linear model

회귀분석 예시: 피부암 사망률

  • 독립변수(x): 위도
  • 종속변수(y): 천만명 당 사망자수

 

잔차

  • 실제값과 예측값의 차이
  • 잔차분산: 잔차를 제곱하여 평균낸 것
    - cf.분산: 편차(실제값과 평균의 차이) 제곱의 평균
  • 잔차분산이 크다 -> 예측이 잘 맞지 않음
  • 잔차분산이 작다 -> 예측이 잘 맞음

https://signature95.tistory.com/49

 

오차, 잔차, 편차의 차이 (기초통계) python

흔히 통계에서는 오차, 잔차, 편차에 대해 얘기하곤 합니다. 그렇다면 이 3가지의 차이는 어떻게 정의되는 것인지 살펴보도록 하겠습니다. 먼저 들어가기 앞서 데이터를 불러옵니다. (삼성전자

signature95.tistory.com

 

최소제곱법

  • 최소제곱법: 잔차 분산이 최소가 되게 하는 w, b등 계수를 추정
  • 최소 제곱법인 이유: 분산의 계산에 제곱이 들어가므로
  • 가장 널리 사용되는 추정방법

 

관계식

  • R과 Python에서 회귀분석 모형 설정을 위한 문법
  • 종속변수(y) ~ 독립변수(x) 형식으로 관계식을 표현
  • 종속변수(y)가 먼저 나오는 것에 주의

 

Python 회귀분석

# 가져오기
from statsmodels.formula.api import ols

#분석
m = ols("price ~ mileage", data = df).fit()

# 결과 
m.summary()

 

회귀계수 추정결과

t값이 큰게 종속변수에 많은 영향을 미치는 것

 

회귀계수의 가설검정

  • 귀무가설: 모집단에서 회귀계수 = 0

 

R제곱 R Squared(= 에타제곱, 분산분석에서는 에타제곱, 회귀분석에서는 R제곱)

  • 회귀 분석에서 예측의 정확성을 알기 쉽게 판단할 수 있게 만든 지표 (0~1)
  • R제곱 = 0:  분석결과가 y의 예측에 도움이 안 됨
  • R제곱 = 1: y를 완벽하게 정확히 예측할 수 있음 

-> 오차가 얼마나 줄었는지 확인하는

 

 

R제곱과 피어슨 상관계수

  • 단순회귀분석(독립변수가 1개인 회귀분석)의 경우
  • 회귀분석의 R제곱 = 독립변수와 종속변수의 피어슨 상관계수의 제곱 
  • 상관계수 ** 2 = R 제곱 = 에타제곱

 

R제곱 읽는 법

  • R제곱을 읽을 때는 "모형이 종속변수의 분산의 ~%를 설명한다"라고 함
  • 예: R제곱 = 0.3→"분산의 30%를 설명한다"
  • R제곱은 TSS(분산)에 비해 RSS가 얼마나 작아졌는지를 나타냄
  • TSS와 RSS는 모두 평균, 또는 예측에 대한 변산성(불확실성)
  • 변산성이 줄어들었다→불확실성이 줄어들었다→설명이 되었다
귀무가설: 기울기 = 0이다
p < 0.05 -> 귀무가설 기각 => 계수≠0
p>0.05 -> 귀무가설 기각 못함 => 결론 유보

 

다중 회귀 분석

 다중회귀분석

  • 독립변수가 2개 이상인 회귀분석
  • R과 Python에서는 관계식에서 +로 변수를 구분 -> 더하라는 뜻 아님
  • +는 통계적 통제를 통해 다른 변수의 영향을 막는 역할
price ~ mileage + model

price = a          + b * mileage + c * year

       -1.688e+5 -0.0023           +84.3822

통계적 통제

  • 독립변수 x와 상관관계가 높은 요소 z가 존재할 경우 
  • z가 종속변수 y에 미치는 영향이 x의 기울기에 간접 반영될 수 있음
  • 실험적 통제
    : 데이터에서 z를 일정하게 유지, z의 영향을 제거
  • 통계적 통제
    : z모형에 독립변수로 함께 포함하여, x의 기울기에 z의 영향이 간접 반영되지 않도록 함

 

 

표준화

 

  • 다중회귀분석에서 독립변수는 단위가 다르므로 종속변수에 대한 영향력 을 비교하기 어려움
  • 표준화를 하면 평균 = 0, 표준편차 = 1이 됨
  • 표준화를 통해 변수의 단위를 제거하여 상대적인 영향력을 비교할 수 있음
    - 표준편차는 단위를 없애기 위한 도구 

 

관계식에서

  • scale 함수를 이용하여 표준화를 할 수 있음
  • 연속 독립변수 x1, x2를 이용하여 회귀분석 할 경우
  • price ~scale(mileage) + scale(year)
  • 범주형 독립변수는 표준화하지 않음

[연습문제]

 

1. 변수 PIQ는 동작성 지능, Brain은 두뇌의 크기, Height는 키(inch), Weight는 몸무게(pound)를 나타냅니다. 동작성 지능을 종속 변수로, 몸무게와 키를 독립변수로 다중회귀분석을 하려면 관계식을 어떻게 세워야 합니까?

->
 
PIQ ~ Height + Weight
r제곱 1.8 별로 안 맞는다
height의 pvalue 0.433 > 0.05 => 귀무가설(기울기 =0) 기각할 수없다 = 큰 관련이없다 
 
 
2. 동작성 지능을 종속 변수로, 몸무게 Weight와 키 Height를 독립변수로 하는 모형 1로 다중회귀분석을 해보세요. Height의 기울기는 p-value가 .05보다 작습니까?
 
크다(p > .05)

3. 모형 1에 두뇌의 크기 Brain을 추가한 모형 2로 다중회귀분석으로 분석해보세요. Height의 기울기는 p-value가 .05보다 작습니까?*

이거 다시 의미
 
작다(p < .05)
 
 
키 p 0.033 < 0.05 귀무가설(기율기= 0) 기각 => - 관계가 있음 
키 는 piq에 - 관계 이고  뇌는 + 관계
브레인까지 하니까 키와의 관계 더 잘 보인다 
 

3. 모형 1과 모형 2의 분석 결과를 비교할 때 알 수 있는 사실은?

Brain의 통계적 통제 여부에 따라 Height의 기울기에 대한 분석 결과가 달라질 수 있다
= 회귀분석은 무엇을 통제하느냐에 따라 기울기가 달라질 수 있다 

4.

지금부터는 모형 2에 대해서만 살펴봅시다. 모형 2에서 Brain의 기울기는 얼마입니까?

2.0604

 

5. Brain의 p-value는 .05보다 작습니까?

작다(p < .05) -> 0.001
 
6. 다른 변수가 같을 때, 두뇌가 클 수록 동작성 지능은 어떻게 된다고 결론내릴 수 있습니까(유의수준 5%)?
신뢰구간이 +임 추정치 = 2 
통계적 가설검정을 봐도, 신뢰구간을 봐도 +라 높아진다라고 할 수 있음 
 
 
7. 모형 2에서 Height의 기울기는 얼마입니까?*

-2.7319

 

8. Height의 기울기의 95% 신뢰구간은 얼마입니까?

 -5.230 -0.233

 
9. 다른 변수가 같을 때, 키가 클 수록 동작성 지능은 어떻게 된다고 결론내릴 수 있습니까(유의수준 5%)?*
낮아진다 -5.230 -0.233
이게 마이너스
 
10. 모형 2에서 Weight의 기울기는 얼마입니까?*
 
11. 다른 변수가 같을 때, 몸무게가 무거워질 수록 동작성 지능은 어떻게 된다고 결론내릴 수 있습니까(유의수준 5%)?*

결론을 유보한다

신뢰구간이 -0.400 0.401 -> -일수도 0 일수도 +일수도 있어서 

 

'AI SCHOOL' 카테고리의 다른 글

[ML] Decision Tree  (0) 2023.03.17
[ML] Clustering  (0) 2023.03.12
[통계분석]  (0) 2023.02.15
[통계분석] 확률분포 / 정규분포 / 기술통계(분위수, 편차)  (0) 2023.02.13
[WIL] 4주차  (0) 2023.01.19