2022. 1. 8. 00:07ㆍrequirement fot AI/기초 수학 (AI)
1. 회귀
회귀는 원래 데이터 분석을 위해 개발되었지만, 발전하면서 예측과 이상검출을 위해 사용되고 있다.
단순선형회귀
변수와 또 다른 변수의 크기 사이에 관계를 보여준다. 상관관계 역시 두 변수가 서로 어떤 관계인지를 보여주는 방법 중 하나이다.
두 방법의 차이는 상관관계는 전체적인 관련 강도를 측정하는 것이라면, 회귀는 관계 자체를 수치화(정량화)하는 방법.
회귀식 : Y(응답변수,종속변수) = b0(절편) + b1(회귀계수)*X(독립변수, 예측변수)
독립변수에 회귀계수를 곱하고 절편을 더해서 응답변수를 찾아낸다.
즉 b0와 b1을 찾는 것이 핵심.
적합값과 잔차
적합값이란 우리가 피팅한 모델로 예측을 한 값을 말한다.
잔차는 실제 값과 적합값을 뺀 값이다. (에러값)
모델을 만드는 법
모든 에러 값의 합을 최소화하면 된다. 실무에선 잔차들을 제곱한 값들의 합인 잔차제곱합(RSS)을 최소화하면 된다.
잔차제곱합을 최소화하는 방법을 최소제곱회귀 혹은 보통최소제곱(OLS)이라고 한다.

이 계산의 편의성 때문에 널리 쓰이게 되었다. 최소제곱은 특잇값에 매우 민감하다. 크기가 작거나 중간 정도라면 심각한 문제가 될 수 있다.
회귀 분석은 예측변수와 결과변수 사이에 있을 것으로 추정되는 선형 관계를 밝히는 것이 회귀 분석의 주된 용도였다.
즉 추정값 b를 추정하는 것이었다. 빅데이터의 출현과 함께 회귀분석은 예측 모델을 구성하는 데 널리 사용된다.
회귀방정식 자체가 인과관계를 정확히 증명하는 것은 아니니, 더 폭 넓은 이해를 바탕으로 해야함.
다중선형회귀
예측변수가 여러 개라면 수식은 이들을 모두 포함하는 다음과 같은 형태가 된다.

모형평가
데이터 과학의 관점에서 가장 중요한 성능 지표는 바로 제곱근 평균제곱오차(RMSE)이다.
RSE도 있음. 유일한 차이점은 분모가 데이터 수가 아닌 자유도라는 점이다.

또 다른 유용한 지표는 결정계수라고도 부르는 R 제곱 통계량이다.
0에서 1사이의 값으로 쉽게 말하면 얼마나 모델이 데이터를 잘 설명하는지 평가하는 값이다.
자유도를 고려한 수정 R 제곱도 있지만 일반 R 제곱과 크게 다르지 않다.

이것이 의미하는 바는 SS Error 면적합이 작아질 수록 "SS Error/SS Total" 값은 0에 가까울 것이고 반대로 R-제곱 값은 1에 가까워 진다는 의미가 됩니다. 즉, 모형에서 오차 기인이 작아지기 때문에 모형의 설명력이 좋아지는 것입니다.
t 통계량과 p 값으로 예측변수가 얼마나 유의미한지 파악할 수 있다. t 통계량은 높을 수록 유의미한 것. (p 값은 낮을 수록) 예측 변수를 선정할 때 유용하게 사용한다.
교차타당성검사
표본 내 지표들이 아닌 표본 밖 데이터를 가져와서 모델의 성능을 확인한다.
홀드아웃 샘플을 사용한다 하더라도, 상대적으로 작은 홀드아웃 샘플의 변동성으로 인해 불확실성을 초래할 수 있다. 다른 홀드아웃 표본을 선택했다면 평가는 어떻게 달라질까?
교차타당성검사 (cross-validation)은 홀드아웃 샘플을 여러 개의 연속된 홀드아웃 샘플로 확장한 것이다. 기본적인 k 다중 k 교차타당성검사 알고리즘(k-fold cross-validation)은 다음과 같다.
1. 1/k의 데이터를 홀드아웃 샘플로 따로 떼어놓는다.
2. 남아 있는 데이터로 모델을 훈련시킨다.
3. 모델을 1/k 홀드아웃에 적용하고 필요한 모델 평가 지표를 기록한다.
4. 데이터의 첫 번째 1/k를 복원하고 다음 1/k (앞에서 선택했던 레코드는 제외)을 따로 보관한다.
5. 2~4를 반복한다.
6. 모든 레코드가 홀드아웃 샘플로 사용될 때까지 반복한다.
7. 모델, 평가 지표들을 평균과 같은 방식으로 결합한다.
모형 선택 및 단계적 회귀
더 많은 변수를 추가한다고 해서 꼭 더 좋은 모델을 얻는 것은 아니다.
모델 선택을 위한 지침으로 오컴의 면도날이라는 원리를 사용한다. 이 원리는 모든 것이 동일한 조건이라면 복잡한 모델보다는 단순한 모델을 우선 사용해야 한다는 원리이다.
모델에 항을 추가할수록 불이익을 주는 AIC라는 측정 기준이 있다.
AIC = 2P + nlog(RSS/ n) (P는 변수의 개수, n은 레코드의 개수.)
P는 변수의 개수이고 n은 레코드의 개수이다. 목표는 AIC를 최소화하는 모델을 찾는 것.
방법은 부분집합회귀, 단계적 회귀 등을 사용하면 된다.
단계적 회귀를 이용하면 예측변수를 연속적으로 추가/삭제하여 AIC를 낮추는 모델을 찾을 수 있다.
즉 모델을 만드는데 필요한 변수들을 자동으로 결정하는 방법이다.
더 단순한 방법으로는 전진선택, 후진선택, 벌점회귀 (능형회귀, 라소) 등이 있음.
가중회귀
다양한 목적으로 가중회귀를 사용한다. 복잡한 설문 분석에서 중요하다.
서로 다른 관측치를 다른 정밀도로 측정했을 때, 역분산 가중치를 얻을 수 있다.
가중치 변수가 집계된 데이터의 각 행이 나타내는 원본 관측치의 수를 인코딩하도록 집계된 형식의 데이터를 분석할 수 있다.
가중회귀는 방정식을 피팅할 때 레코드별로 가중치를 주기 위해 사용한다.
2. 회귀를 이용한 예측
데이터 과학에서 회귀의 주된 목적은 예측이다. 전통적인 통계학에선 왜 오랫동안 예측보다는 설명을 위한 모델링에 더 적합했을까?
신뢰구간과 예측구간
모델에 대한 변동성을 측정하기 위해 회귀계수에 대한 신뢰구간, 그리고 우리가 예측한 값의 신뢰구간인 예측구간을 측정할 수 있다.
데이터 과학자는 일반적으로 특정 개별 예측에 관심이 있으므로 예측구간이 더 적절할 수 있다.
회귀 파라미터(계수)에 대한 신뢰구간을 생성하기 위한 부트스트랩 알고리즘.
1. 각 행(결과변수를 포함)을 하나의 티켓으로 생각하고 개수가 모두 n개인 티켓을 박스에 넣었다고 가정하자.
2. 무작위로 티켓을 뽑아 값을 기록하고 다시 박스에 넣는다.
3. 2번 과정을 n번 반복한다. 이를 통해, 부트스트랩 재표본을 하나 만든다.
4. 이 부트스트랩 표본을 가지고 회귀 모형을 구한다. 그리고 추정된 계수들을 기록한다.
5. 2~4번 과정을 1,000번 반복한다.
6. 이제 각 계수에 대해 1,000개의 부트스트랩 값을 갖게 된다. 각각에 대해 적합한 백분위 수를 구한다.
(90% 신뢰구간을 위해 5번째에서 95번째 백분위수를 구한다.)
회귀모형에 따른 오차와 개별 데이터 값에 따른 오차를 모두 모델링하기 위한 부트스트랩 알고리즘.
1. 데이터로부터 부트스트랩 표본을 뽑는다. (앞에서 자세히 설명했다.)
2. 회귀모형을 찾고 새로운 값을 예측한다.
3. 원래의 회귀 적합도에서 임의로 하나의 잔차를 취하여 예측값에 더하고 그 결과를 기록한다.
4. 1~3단계를 1,000번 반복한다.
5. 결과의 2.5번째 백분위수와 97.5번째 백분위수를 찾는다.
3. 회귀에서의 요인변수
여기서 요인변수는 범주형 변수를 의미한다. 제한된 이산값을 취하는데 예를 들어 교통 수단이라는 변수가 있다면 '지하철', '자가용', '비행기' 등이 될 수 있다.
가변수 표현 (원-핫 인코딩)

이런 식으로 표현 할 수 있다. 위 표를 살펴보면 열이 하나씩 부족한 것을 알 수 있는데, 가수와 개그맨에 해당하지 않다면 배우이다. 즉 두 열이 0이라면 배우를 의미하기 때문에 배우를 의미하는 열을 추가한다면 다중공선성 오류가 발생할 수 있다.
다수의 수준을 갖는 요인변수들
어떤 요인변수는 가능한 수준의 수가 많아, 많은 양의 이진더미를 생성할 수 있다. 예를 들면 우편번호는 요인 변수이며 데이터에 43,000개의 우편번호가 있다. 이러한 경우 다른 변수에 따라 우편번호를 그룹으로 묶거나, 초기 모델의 잔차를 사용해서 우편번호 그룹을 만드는 방법도 좋다.
순서가 있는 요인 분수
일부 요인변수는 요인의 수준이 순서를 갖는다. 이것을 순서 요인변수 또는 순서 범주형 변수 라고 한다.
예를 들면 대출 등급 A, B, C를 0, 1, 2로 바꾸어도 된다. 순서 요인변수를 수치형 변수로 다루는 것은, 그냥 요인변수로 다루면 잃어버릴 수 있는 순서에 담긴 정보를 유지하기 위함이다.
4. 회귀방정식 해석
때로는 예측변수와 결과 간 관계의 본질을 이해하기 위해 방정식 자체로 통찰을 얻는 것이 중요할 때도 있다.
예측변수 간 상관
다중회귀분석에서 예측변수는 종종 서로 상관성이 있다. 상호 연관된 예측변수들을 사용하면 회귀계수의 부호와 값의 의미를 해석하기가 어려울 수 있다. (또한 추정치의 표준오차가 커진다.)
다중공선성
변수 상관의 극단적인 경우 다중공선성이 나타난다. 이는 예측변수 사이의 중복성을 판단하는 조건이 된다. 완전 다중공선성은 한 예측변수가 다른 변수들의 선형결합으로 표현된다는 것을 의미한다.
다중공선성은 다음 경우 발생한다.
1. 오류로 인해 한 변수가 여러 번 포함된 경우
2. 요인변수로부터 p-1개가 아닌 p개의 가변수가 만들어진 경우
3. 두 변수가 서로 거의 완벽하게 상관성이 있는 경우
회귀분석에서는 다중공선성 문제를 반드시 해결해야 한다. 다중공선성이 사라질 때까지 변수를 제거해야 한다.
완전 다중 공선성이 존재하는 상황에서는 회귀를 통해 제대로 된 답을 얻을 수가 없다. 많은 패키지에서 실수로 한 변수가 여러 번 포함된 경우에는 자동으로 배제해주기도 한다. 하지만 3번째 문제의 경우는 결과가 불안정할 수 있다.
그리고 회귀가 아닌 트리, 클러스터링, 최근접 이웃 알고리즘에서는 그다지 문제가 되지 않고 요인변수가 p개인 것이 좋다.
교란변수
변수 상관은 응답변수와 비슷한 예측 관계를 갖는 다른 변수가 포함되는 바람에 비롯된 문제인 반면, 교란변수는 회귀방정식에 중요한 변수가 포함되지 못해서 생기는 누락의 문제이다. 회귀방정식에 중요한 변수가 포함되지 못해서 생기는 누락의 문제이다. 이 경우 방정식 계수에 대한 해석은 잘못된 결론으로 이어질 수 있다.
상호작용과 주효과
예측변수간의 상호작용을 모델에 포함시킬 수 있다. 예를 들어 주택의 위치와 크기는 주택의 가격을 맞추는 문제에서 중요한 변수이다. 그 중 위치가 가장 중요하다. 임대료가 싼 지역에 지어진 큰 집은 비싼 지역에 지어진 큰 집과 같은 가치를 유지하기가 어려울 것이다. 다시 말해 가격대가 가장 비싼 지역에서는 주택의 크기가 1 제곱피트 늘어날 때 굉장히 큰 값으로 가격이 올라갈 것이다.
싱호작용 항들을 이용한 모델 선택 방법
1. 어떤 문제에서는 사전 지식이나 직관이 이러한 상호작용을 결정하는데 큰 도움이 된다.
2. 단계적 선택을 사용해서 다양한 모델들을 걸러낼 수 있다.
3. 벌점을 부여하는 방식의 회귀 방법을 사용하여 자동으로 가능한 상호작용들을 최대한 가려내도록 한다.
4. 아마도 랜덤 포레스트나 그레디언트 부스팅 트리 같은 트리 모델을 일반적으로 사용할 수 있다. 이러한 모델들은 자동으로 최적의 상호작용 항들을 걸러낸다.
4.6 가정 검정: 회귀 진단
설명을 위한 모델링에서는 여러 측정 지표(RMSE, R2)들을 고려하여, 매 단계마다 모델이 데이터에 얼마나 적합한지를 평가한다.
대부분은 모델을 뒷받침하는 가정들을 검정할 수 있는 잔차 분석을 기본으로 한다. 예측 설정에 중요한 통찰을 줄 수 있음.
특잇값
특잇값은 대부분의 측정치에서 멀리 벗어난 값을 의미합니다. 위치와 변이를 추정할 때처럼, 회귀모형에서도 동일한 문제를 야기할 수 있다. 회귀에서 특잇값은 실제 y 값이 예측된 값에서 멀리 떨어져 있는 경우를 말한다.
잔차를 표준오차로 나눈 값을 표준화잔차라고 하는데 바로 이 값을 조사해서 특잇값을 발견할 수 있다. 회귀에서는 이 표준화잔차로 특잇값을 검출하는 데 주로 사용된다.
영향값
회귀모형에서 제외됐을 때 모델에 중요한 변화를 가져오는 값을 주영향관측값이라고 한다. 회귀분석에서, 잔차가 크다고 해서 모두 이런 값이 되는 것은 아니다. 높은 레버리지를 가져야 한다. 단일 레코드의 영향력을 결정하는 몇 가지 지표가 있다.
레버리지를 측정하는 햇 값과 레버리치와 잔차의 크기를 합쳐서 판단하는 쿡의 거리가 사용이 된다. 영향력그림 또는 거품그림은 표준화잔차, 햇 값, 쿡의 거리를 한 그림에 표현한다.
작은 데이터를 이용해서 모델을 만들 때 믿을 만한 예측값을 얻을 때 영향값으로 데이터를 제거해주는 작업이 유효하다. 데이터의 수가 클 경우, 어떤 한 값이 회귀방정식에 엄청난 변화를 가져오기란 쉽지 않다. 물론 이상 검출이 목적이라면 높은 영향력의 값들을 찾는 것이 큰 도움이 된다.
이분산성, 비정규성, 오차 간 상관
통계학자들은 잔차 분포에 상당한 주의를 기울이지만, 대부분의 문제에서 데이터 과학자라면 잔차 분포에 너무 많은 신경을 쓸 필요는 없다. 잔차에 대한 가정으로 예상 값에 대한 신뢰구간을 계산하는 방법이 유효하다.
3가지 가정 중 먼저 이분산성은 다양한 범위의 예측값에 따라 잔차의 분산이 일정하지 않은 것을 의미한다. x축에 예측값이 있고 y축에 잔차의 절대값을 두는 산점도를 그리면 된다. 예측값의 정도에 따라 잔차의 분산을 보고 분석을 하면 된다.
예를 들면 가격이 너무 높거나 낮은 물건일 때 잔차의 분산이 크다면 해당 물건을 모델이 잘 설명하지 못한다는 것을 의미한다.
두 번째는 표준화잔차에 대한 히스토그램이다. 세 번쨰는 오차가 독립적이라는 가정을 점검할 때 사용하는 더빈 - 왓슨 통계량을 사용할 수 있다.
데이터 과학에서 가장 중요한 것은 예측 정확도이기 때문에, 이분산성에 대한 검토는 그다음으로 이루어질 수 있다. 검토 결과 모델이 설명하지 못하는 데이터가 있음을 발견할 수 있다. 검토 결과 모델이 잘 설명하지 못하는 데이터가 있음을 발견할 수 있을지도 모른다.
편잔차그림과 비선형성
편잔차그림은 예측 모델이 예측변수와 결과변수 간의 관계를 얼마나 잘 설명하는지 시각화하는 방법이다. 특잇점의 검출과 함께 이것은 데이터 과학자들에게 가장 중요한 모델 진단 방법이다. 편잔차그림의 기본 개념은 하나의 예측변수와 응답변수 사이의 관계를 모든 다른 예측 변수로부터 분리하는 것이다. 즉 편잔차는 단일 예측변수를 기반으로 예측값을 얻어내고 전체를 고려한 회귀식의 실제 잔차를 결합하여 만든 결과라고 할 수 있다.
편잔차는 잔차와 특정 변수의 회귀 항을 더한 값이다.
편잔차 = 잔차 + ^b1X (X는 특정 예측변수)
편잔차그림에서 x축은 X를 의미하고 y축은 편잔차를 의미한다. 만일 만든 그림이 비선형성을 가진다면 단순성형 항 대신, 비선형 항을 고려할 것을 생각해볼 수 있다.
다항회귀와 스플라인 회귀
응답변수와 예측변수 간의 관계가 반드시 선형일 필요가 없다. 약물 복용량, 제품에 대한 수요, 마케팅 비용 등은 선형 함수가 아니다. 비선형 효과를 회귀분석에 담기 위해 회귀모형을 확장하는 몇 가지 방법이 있다.
다항식
다항회귀란, 회귀식에 다항 항을 포함한 것을 말한다. (선을 구부릴 수 있게 됨.)
스플라인
다항회귀는 비선형 관계에 대하 어느 정도의 곡률을 담아낼 수 있다. 하지만 3차, 4차 다항식과 같이 고차 항을 추가하는 것은 종종 회귀 방정식에 바람직하지 않은 '흔들림'을 초래한다. 비선형 관계를 모델링하는 또 다른 더 나은 방법은 구간별 다항식인 스플라인을 사용하는 것이다. 스플라인 항들을 구분하는 값인 매듭과 다항식의 차를 설정해서 모델을 만들 수 있다. 선형 항에서는 계수가 변수에 대한 직접적인 의미를 갖는 반면, 스플라인 항의 계수는 해석하기 어렵다. 대신 스플라인의 적합도를 확인하기 위해 시각화 방법을 사용하는 것이 더 유용하다.
교란변수의 영향으로 예측 결과가 잘 맞지 않을 수도 있다.
일반화가법모형
사전 지식이나 회귀 진단을 통해 응답변수와 예측변수 사이에 비선형 관계가 있다는 것을 알았다고 하자. 다항 항은 관계를 포착하기에 유연성이 부족할 수 있으며 스플라인 항은 매듭을 어디로 할지 정해줘야 한다. 일반화가법모형(GAM)은 스플라인 회귀를 위한 최적의 매듭을 자동으로 찾는 기술이다.
'requirement fot AI > 기초 수학 (AI)' 카테고리의 다른 글
| 순열과 조합 그리고 중복순열과 중복조합 (파이썬에서 사용 방법) (0) | 2022.02.06 |
|---|---|
| 통계 : 다양한 분포들을 간단히 알아보자. (0) | 2022.01.02 |
| 4. 경사하강법 (Gradient Descent) (0) | 2021.12.08 |
| 3. 행렬 개념 정리 (0) | 2021.12.08 |
| 통계 : p-value (0) | 2021.12.08 |