상관분석 !
상관분석의 목적 ⇒ 유사도를 구하기 위해서 (유사도 = 관계성) 유사하다는 의미를 무엇을 기반으로 어떻게 정의할것인가?? 가장 많이 쓰는 방법은
- 데이터 간 떨어진 거리 ⇒ 거리가 멀면 유사도가 낮다!, 거리가 가까우면 유사하다!
- 원점에서 데이터까지 각도 ⇒ 코사인 각도, 두 데이터 사이의 각도가 작을수록 가까운 데이터 (코사인 유사도)
- 데이터의 변화량(유사도) ⇒ 1차 방정식 (pearson-r, R) ⇒ 데이터의 변화패턴(변화량)으로 유사도를 구한다.
상관분석이라하믄 보통 R을 나타낸다.
r = 서로 같이 변하는 정도 / 서로 각기 변하는 정도 = 공분산/ 분산 = a교집합b / a합집합b
S 표본 집단의 표준편차
루트를 씌우는 이유는 뻥튀기된 거리를 되돌리기
분모 ⇒ x,y 데이터의 변화량(분산)의 총량
분자 ⇒ 두 데이터의 변화 패턴이 동일한 구간의 변화량의 총량, 공통된 변화량의 총량, 공통된 분산(공분산)
분산 복습하기
편차 ⇒ 평균에서 각 데이터까지의 거리, 편차의 항상 0
분산 ⇒ 편차 제곱의 평균
분산이 크다 ⇒ 데이터들이 평균에서 거리가 많이 떨어져있다. ⇒ 데이터 변화량이 크다 ⇒델타x가 크다.
분산이 작다 ⇒ 데이터간의 거리가 줄어든다. ⇒데이터 변화량이 작다. ⇒ 델타x가 작다.
상관강도 (유사도가 강한 정도) : 절대값을 씌운다.
피어슨 r에서 알고싶은건 !!!!! ⇒ 변화 패턴이 유사한가 ?
Pearson-r은 -1에서 1사이의 값이 나올 수 있고요.
Pearson-r에서의 부호, -,+는 유사도의 강도를 나타내는 것이 아니라 지금처럼 증가함수인지 감수함수인지 그 방향성만을 알려주게 되구요.
상관 강도, 즉 유사도의 강한 정도는 -와 +가 그냥 방향성만을 나타내 주는 거기 때문에 절대값을 이용해서 나타냅니다.
r이 0인 경우 두 유사도의 강도는 절대값으로 파악해야한다.
해석방법 !!!!!!
상관을 구한다는것은 데이터 간 유사도를 알아보는것
예시 ) 우리나라 20대 성인의 신장과 몸무게 간의 상관값으로 r=0.7이 나왔다. 신장과 몸무게는 관계성이 있는가 ? ⇒ 모르지 ! 기준이 없는데!!!!!
그래서 기준은 어떻게 설정할것인가 ? (절대값)유사도(lrl) < 0.3 : 낮은 상관 0.3 ≤ lrl < 0.7 : 보통 (어느정도 관계성이 있다.) lrl ≥ 0.7 : 아주 강한 관계성이 있다. 아주 높다.
R^2(R스퀘어) ⇒ 설명력, 결정계수 요건 회귀분석할때 적합성같은것을 확인할 때 이 회귀선이 잘찾은건지 확인할 때 많이 보는 수치
예를 들어 신장과 몸무게 간의 상관값이 0.7이면 R스퀘어는 0.49 이 값을 퍼센트로 바꾸면 49%!
즉, 신장과 몸무게 49%정도 관계가 있고 나머지 51%는 식습관, 환경 등등에 관계가 있다.
하지만, 이를 오용하거나 왜곡해서 해석하면 안좋은 결과를 가져올 수 있는데
예를 들어 데이터 x,y가 r=1이면 두 데이터는 아주 높은 상관 관계를 가지고 있다고 볼 수 있다.
그렇기 때문에 x가 y의, y가 x의 원인인다. 라고 생각하면 안된다는것!!!!
이렇게 해석하면 상관 관계로 해석한것이 아닌 인과 관계로 해석하게 된것이다 .
예를 들어 두 데이터 아이스크림 판매수, 익사자 수가 있다고 쳐보자 유사도가 굉장히 높게 나올것이다. 그렇다고 두 데이터가 서로의 원인이 되는가 ?? 아니다 !
상관은 ! 데이터간의 유사도를 파악하기 위함이지 그 이상도 이하도 아니다 이 유사도를 이용해서 회귀 (regression)을 통해서 예측을 할것이다 .
회귀 분석 ! ⇒ 예측을 해보자 !!~!~!~!~!~! 입력값 : 예측에 이용할 값! 출력값 : 예측 결과 X로 Y를 예측 ⇒ 입력은 X, 출력은 Y
예측을 한다는건은 방정식을 정의하는것이다 .
그래야 예측할 수 있으니까~!
상관 : 데이터 간의 변화 패턴으로 유사도(관계성)를 찾는것
회귀 : 정의된 변화 패턴을 이용해서 데이터 간의 관계성을 가장 잘 나타내는 방정식을 찾는 것
회귀분석(Regression) == Data-fitting == Modeling
근데 현실에서는 r = 1인 데이터는 없다. (r = -1, r = 0 이런거 역시 없다 !! ㅠㅠ) 그래서 y=x 처럼 단번에 팍 나오는 방정식도 구하기 어려운데 이런 상황에서 우리는 어떻게 방정식을 구할 것인가 ..ㅠㅠ
특히, 최적의 선 어찌 구할 수 있을까 ?
매개변수(Parameter) = Model을 구하기 위해 반드시 필요한 변수 (기울기와 절편)
Model = 원하는 목표 방정식 (Y = AX + B)
그래프에서 여러 데이터의 점(.)들 ⇒ 산포도(datapoints) 산포도를 선으로 나타낸 것 ⇒ 방정식(Regression) ⇒
오차의 평균이 가장 작은 선 = 최적의 방정식이다 ...
근데 오차를 구하면 방향성이 있따..ㅠㅠㅠ 그러니까 전부 제곱을 해서 부호를 똑같이 만들자.
즉, 최적의 Model이란?
- (실제값 - 예측값)을 오차로 정의하고, 모든 데이터의 오차를 다 구한다.
- 오차를 일일이 다 제곱하고 그 제곱 오차의 평균을 구한다.
- 제곱 오차의 평균이 가장 작은 것이 최적의 Model이다.
이렇게 구해진 값을 최소 제곱법(LMS) 이라한다.
오차 제곱 평균(MSE) : Mean Squared Error
MSE가 작다 라는 의미는 ⇒ 오차가 작다 ⇒ 예측력이 높다. 근데 제곱을 했었으니까 루트를 씌운다.
그래서 RMSE라고 부른다.
Root(루트) Mean(평균) Squared(제곱) Error(오차) ⇒ 예측 모델의 정확도를 나타낼때 자주 사용한다.
Model : 회귀의 목적인 방정식
Parameter : Model을 구해내는데 필요한 매개변수(기울기, Y절편)
즉, '모델의 구하라'라는 말 == '최적의 Parameter를 찾아라'
실제 데이터 - 예측 데이터 = 오차
최소 제곱법(LMS) : 오차 제곱 평균을 구한 후 최소로 만들면 최적이라고 할 수 있다.
오차 제곱 평균(MSE) : 제곱되어 있는 값, 제곱되어 있기떄문에 RMSE를 예측 모델의 정확도를 나타내는데 많이 쓰인다.
RMSE : 예측 모델의 정확도를 나타내는데 많이 사용됨. RMSE가 낮을수록 오차 평균이 작다는 의미이므로 좋은 예측 모델이다.
회귀의 종류
우리는 지금까지 y=ax+b로 입력값이 1개인 경우만 공부하였다. 하지만 실제로는 2개 이상인 경우도 많다.
예를 들어 온도(X1), 습도(X2)로 아이스크림 판매량 (Y) 예측 Y = AX1 + BX2 + C 이렇듯 입력값이 1개인 회귀는 단순 회귀(simple regression)이라고 부른다.
입력값(input)이 2개 이상인 회귀는 다중 회규(중다, Multiple regression)이라고 부른다.
그렇다면 변수가 많으면 더 좋은 결과값을 구하는걸까 ? NO!! 필요없는 변수를 줄이는 것이 결과에 더 좋다.
데이터로 봤을 때 예측 성능에 높은 영향을 끼칠 변수를 찾아라
1차 방정식 모델 ⇒ Linear regression,
선형회귀 2차 이상 ⇒ Non Linear regression, 비선형회귀
회귀는 예측말고 분류도 할 수 있다.
그러한 회귀는 로지스틱 회귀이다.
입력 변수 개수에 따라 Simple regression과 Multiple regression으로 나뉜다.
Modeling 해야 되는 방정식 차수에 따라 Linear regression과 Non-linear regression으로 나뉜다.
데이터 분석의 최종 목적이 예측 또는 분류로 나뉜다.