데이터분석응용 in R_회귀분석 pt1 이론
# 다중선형회귀

# 데이터는 n개이고,
# 소문자 x값들은 실제 존재하는 컬럼 값들이다.
# X1에서 Xp의 컬럼값들이 Y에 영향을 준다고 생각하여 데이터에서 저렇게 실값을 가져와 채워놓은것.
# Y 또한 실제 데이터에서 있던 y값이다.
# 우리는 다중선형회귀모형이 Y와 X들 사이의 참 관계에 대한 좋은 근사를 제공한다고 가정한다.
# 단순회귀 : 예측 (설명) 변수가 1개인것
# Y는 반응(종속) 변수
# 주의
# 반응변수 Y와 예측값 Y hat은 다르다!!!
# y hat : 적합값. fitted value

# 최소제곱 회귀방정식
# B0는 절편항이자 상수항
# 잔차 ei = yi-yi^
# 잔차제곱합 : n-p-1의 자유도를 가진다.

# 단순회귀방정식 : 직선 표현
# 다중회귀방정식: 평면(예측변수가 2개인 경우) 혹은 초평면(예측변수가 2개보다 많은 경우)을 표현
# B0는 X1=X2=...=Xp=0일때 Y의 기댓값
# Bj: 편회귀계수(partial regression coefficient)
# Xj를 제외한 나머지 모든 예측변수들을 상수로 고정시킨 상태에서 Xj의 한단위 증가에 따른 Y의 증분
# Bj는 다른 예측변수들에 의하여 반응변수 Y가 조정된 후에 Y에 대한 Xj의 공헌도
# 변화의 크기는 다른 예측변수들이 어떤 값으로 고정되어 있는지에 의존x
# BUT.. in real life. 예측변수들은 서로 밀접하게 연관되어 있고,
# 다른 변수들이 변화할때 어떤 변수들을 상수로 고정시키는 것이 가능하지 않은 경우도 존재
# 조정된다:
# 관심있는 특정 예측 변수 하나만의 순수한 효과를 파악하기 위해
# 나머지 다른 모든 예측 변수들이 미치는 영향을 제거하거나 통제(상수로 고정)했다.

# ex1. X2에 의해 조정된 후 X1의 효과? X2의 값을 고정시키고 X1의 값 보기
# ex2.X1을 조정시킨 후 X2의 효과?
# X2의 계수는 X1이 고정되어 있을때 X2가 한단위 증가하면 Y가 0.7803만큼 감소
# 모형의 적합도
(회귀모형 가정사항에서 다른 형태로 재언급됨)
# 선형모형을 적합한 후 모형의 적합 정도에 대한 고려가 필요하다.
# 모형의 적합도는 크게 4가지 기준에서 판정한다.
# 1. 등분산 2. 독립성 3. 선형성 4. 정규성
# 등분산, 독립성, 선형성은 잔차플랏으로 검증가능하다.
# 선형성은 상관관계(cor)로도 검증가능하다.
# 정규성은 QQplot으로 검증가능하다.
# 잔차플랏은 구처럼 아무 패턴이 없어야 등분산/독립/선형성을 만족한다고 한다.
# QQplot은 y=x를 크게 벗어나지 않으면 정규성을 만족한다고 한다.
# 다중상관계수
# 선형성을 검증가능한 척도
# 반응변수Y와 예측변수들 X1...Xp사이의 선형관계에 대한 강도
# Y와 Y hat의 산점도를 통해 평가

# 번외로 결정계수 (R^2)도 있다.
# 결정계수는 상관계수를 제곱한 값
# 상관계수는 선형관계의 형태와 연관정도를 -1과 1상의 수치로 나타낸다면
# 결정계수(R^2)는 예측변수에 의해 설명되는 변이의 비율을 나타낸다.
# 다중상관계수(R)는 결정계수에 루트를 씌운것인데
# 반응변수Y와 예측변수들 X1...Xp사이의 선형관계 정도를 측정하는 값이다.
# Y와 예측 변수들 X1,,,Xp 사이에 선형관계가 존재한다
# = 모형이 데이터에 잘 적합됨
# = 관측값과 예측값이 서로 가까움
# = 잔차(혹은 잔차제곱합)은 작을것
# = R^2(혹은 R)은 1에 가까울것
# 수정결정계수 Ra^2
# 주로 예측변수들의 개수가 서로 다른 모형들을 비교할때 사용된다.

# 예측변수들의 수가 다르다는 것을 조정함.
# 조정하면 전체 변이 중 예측변수들에 의해 설명되는 비율로 해석 불가
# 즉, 더 이상 순수한 설명력 비율 자체를 의미하지 않게 됨
# 비율의 의미를 잊은 대신,
# 변수 개수가 다른 여러 모형 중 어떤 모형이 더 적합한가 판별할때 상대지표로 사용
# 개별 회귀계수들에 대한 추론
# H0: B0=0
# H0: B1=0
# H0L B2=0....
# 검정통계량: 자유도가 n-p-1인 t분포

# 기각역:

# H0: Bj=0를 기각한다.
# 예측변수 Xj는 다른 모든 예측변수들에 대하여 조정된 후 반응변수 Y에 대하여 통계적으로 유의하다.
# 신뢰구간(신뢰한계)
# 개별 계수 Bj에 대한것

# 신뢰영역(confidence region)
# 모든 회귀계수들의 결합
# 회귀모형 가정사항
# 1. 모형 형태: 선형성 가정
# 2. 오차: 정규성/오차 평균0/등분산/독립성 가정
# 오차 e1...en은 서로 독립(공분산 0)이고,
# 동일한 정규확률변수로서 평균 0과 공통분산 시그마 제곱을 가짐 가정
# 위 가정 불만족 시 자기상관의 문제가 있음
# 3. 예측변수: 예측변수는 선형종속이 아닌것으로 가정.
# 위반시 다중공선성 문제
# 모형 형태 가정
# QQplot(정규확률플롯)
# x축: 정규점수(이론값), y축: 순서화된 표준화잔차(실제값)
# 잔차가 정규분포를 따른다면
# 순서화된 표준화잔차는 근사적으로 순서화된 정규점수와 같아야함
# 즉 y=x형태로 그사되어야
# 표준화잔차? 잔차/(잔차의 표준편차)
# 잔차? y-(y hat)
# 정규점수? 표준정규분포로부터 크기 n의 표본을 취하였을때 얻을것으로 기대되는 값
# 오차/예측변수 가정
# 표준화잔차 vs 각 예측변수들의 산점도(일명 잔차플롯)
# 표준화 잔차는 예측변수들과 상관되어있지 않음
# 플롯에 발견할 수 있는 패턴이 존재한다면 어떤 가정이 위반되었음 의미

# 질적 예측변수(Qualitative Variables as Predictors)
# 질적 또는 범주형 요인들이 회귀분석에서 반응변수의 변화를 설명하는데 사용될 수 있다.
# ex. 성별, 학년, 혈액형 등
# 숫자 아닌 변수들(성별, 지역 등)은 그대로 회귀식에 못넣으니까
# 0/1 숫자로 바꿔서 넣는다.
# 이런 요인들을 예측변수로 이용할 경우
# 지시변수(indicator variable) 또는 가변수(dummy variable) 형식으로 표현됨
# 가변수:
# 범주의 양적 순서를 나타내기 위한 것이 아니라
# 관측개체가 속하는 범주나 집단을 식별하는 역할
# 예시 : 급료조사 데이터 분석
# 급료(salary)의 차이를 결정하는 여러 요인을 식별하고 수량화하는 것이 목표
# 반응변수: 급료(S)
# 예측변수: 경력연수(X), 교육수준(E, 고졸=1,학부졸=2,그이상=3), 관리(M, 책임있음=1, 없음=0)
# 세 변수가 급료에 미치는 영향?
# 필요한 가변수의 개수는 일반적으로 가능한 범주의 수보다 하나 작게 고려
# 교육수준 변수(E)의 3개 범주를 위해 2개의 가변수(E1,E2)를 가정
# E1=E2=0이면 대학원 이상
# E3을 지정하면 E3=1-E1-E2와 같은 관계 형성되어 어느 하나는 불필요

# 관리(M)도 2개 범주를 나타내는 가변수로서 표현
# 기저범주(base category) 혹은 대조그룹(control group):
# 지시변수에 의해 표현되지 않는 범주
# 즉, 앞의 예시에서와 같이 빠진 범주 하나가 기저 범주 혹은 대조그룹이 된다.
# 지시변수의 회귀 계수를 대조그룹에 대한 상대적인 값으로 해석한다.
# 위 문제에서 가변수들을 사용해 표현한 회귀모형은 다음과 같다.

# 두 범주의 가변수 값에 따라 6개의 가능한 범주 조합에 의한 회귀모형으로 구분가능하다.

# case1. E1, 책임 x
# E1=1, E2=0, M=0이라서 대입하면 회귀방정식 1과 같이 나온다.
# 이후 생략
# 변수 변환
# 데이터가 분석에 적합하지 않은 경우,
# ex. 평균보다 표준편차가 더 크다.(3기준으로 +-10 움직인다 등)
# ex. 한쪽 꼬리가 긴 분포?
# 분석 수행에 앞서 변수들을 변환함
# 선형성 or 정규성의 확보, 분산의 안정화 등의 목적
# 다중회귀는 예측변수가 여러 개이므로 어떤 변수는 변환이 필요하고 다른 변수들은 안필요할수도,,
# 선형성 확보
# 다음과 같이 i가 변수면 로그를 양변에 취해줘야 선형관계된다.

# 이 변수들은 비선형 관계지만 변화된 변수들 사이는 선형 관계가 된다.

# 박테리아 예제
# 노출시간 t 후에 생존한 박테리아수 nt의 관계가 다음과 같다.

# 이 데이터에 단순선형모형을 적합하면


# 설명력은 높고,
# p-value값에 의하면 변수는 모형에 유의하다.
# 그러나..

# 예측변수와 반응변수가 선형성 만족하지 않는다.
# 잔차플롯도 패턴을 보인다.
# 전체 모형으로 보면 위 모형은 적합하지 않다.
# 양변에 로그를 취하는 변수 변환을 하자.



# 설명력 높고, 변수도 유의하다.

# 회귀 모형은 선형성이 있으며 잔차플롯은 패턴이 없다.
# 따라서 회귀모형은 적합하다.
# 분석 대상 변수가 평균에 비해 큰 표준편차를 가지는 경우 이러한 로그변환은 특히 유용하다.
# 추가적으로,, plot만 보고 가장 옳은 변수변환은 뭘지 찾아보자.

# 좌우위아래 순서로 볼때,
# 1번빼고는 모두 선형성이 존재하지만,
# 선형성도 골고루 다 퍼져있어야 좋다.
# 따라서 best 모형은 2번째, 즉 오른쪽 위 모형.
# 다중공선성
# 먼저 한개의 그림부터 보자

# 위와 같은 형태가 이상적인 상태이다.
# 예측 변수간 상호의존관계, 즉 겹침이 존재하지 않는 상태이다.
# 반면,

# 위는 겹치는게 존재한다.
# 위에서 각각 표시되어 있는 빨강 세모는
# X1, X2,.. 순서대로 각 변수가 Y를 설명할 수 있는 양들이다.
# 다중공선성이 존재하는 경우 겹치는게 있는 X2와 X3는 앞에서 이미 차지했던 부분을 제외하고 설명할 수 있다.
# 즉 Y를 설명할 수 있는 양이 많은데, 실제로 설명할 수 있는게 적은 것이다.
# 그림을 못그리는 관계로 세모들의 양이 밑에서 더 커보인다.
# 그러나 이와 같은 설명에서 알 수 있듯,
# 겹치는게 클수록 모형은 굉장히 비효율적이게 된다.
# 이러한 다중공선성이 없도록
# 우리는 변수간 상관관계(즉, 연관성)를 따져 봐야 한다.
# 다중회귀방정식은 기본적으로 예측변수간 상호의존관계가 심각하지 않다고 가정한다.
# 직교: 예측변수 간에 선형적인 연관관계가 전혀 없는 경우
# 현실에서는 예측변수들이 직교하지 않는 경우가 대부분
# 예측변수들이 너무 강하게 연관되어 있으면 회귀분석의 결과가 부정확할 수 있음
# 예시를 하나 보자.

# 표를 보면 변수들이 죄~다 유의하지 않다.
# 와중에 설명력도 약하다.
# 그러나 전체 모형과 잔차간의 그래프, 즉 잔차플롯을 보면
# 모형은 적합하다고 나온다.
# 즉, 3개의 예측변수가 모두 함께 사용되었을때 전체적으로 유의하나,
# 개별적으로 보았을때는 유의하지 않다.
# 즉 어느 한 예측변수는 나머지 두 변수가 모형에서 보유될 경우 모형으로부터 제거해도 괜찮다.
# 실제로 변수들간 cor를 보자.

# 위는 다중공선성이 존재하는 전형적인 상황
# 예측변수들이 매우 높은 상관관계를 가짐
# 각 예측변수는 전체 설명력에 거의 영향을 끼치지 않고
# 회귀방정식에서 다른 변수의 대리 역할을 한다.
# 즉 예측변수간에 큰 상관계수를 가질 경우 3개의 변수가 사용되었다기 보다
# 실제로는 단 하나의 예측변수만 있다고 결론지어도 무방
# 분산확대인자 VIF

# Rj^2은 다중상관계수의 제곱
# VIF_j가 10보다 크면 데이터에 공선성 있다.
# 값이 1이면 선형적 연관관계가 없다.
# -고 판단하자.
# 변수선택 Variable Selection
# 회귀모형에 포함된 변수들은 보통 사전에 미리 결정되는게 아님
# 예외> 변수들이 연구에 관한 이론이나 다른 고려에 의해 결정된 경우
# 변수 선정 자체가 분석의 첫 단추
# 변수 결정 > 적절한 함수 형태 결정
# ex. X, X2, logX등 변환된 형태 고려
# 1) 전진선택법(Forward selection, FS)
# 2) 후진제거법(Backward Elimination, BE)
# 3) 단계적방법(Stepwise)
# 1,2)는 일단 한번 빠져나간 변수가 있다면
# 그 변수를 다시 보지 xx
# 1)은 첫 예측 변수는 반응변수와 가장 큰 상관계수 가지는게 선택됨
# 이후엔 첫 예측변수 조정 후 최대상관을 가지는 변수 찾기
# 비유의적인 변수나오면 stop. 그전의 변수까지 가져가기
# 2)는 회귀식으로부터 제거되는 첫 변수는 공헌도가 가장 작은것
# 1)과 마찬가지로 비유의적인 변수 나오면 stop.
# 3)은 시작은 전진 선택법.
# 설명력이 줄어들면 그걸 제외. 늘어나면 추가
# 최고 설명력이 생길때까지,,
# 적절한 코드 돌리면 알아서 도출됨
# 앞 단계에서 이루어진 선택에 따라 회귀모형에 일단 포함된 예측변수라 해도
# 나중 단계에서 제거될 가능성 있음.
# 여유가 있으면 셋다 하기
# 1,2가 결과가 너무 상이하면 들여다보아야한다.
# 회귀모형 평가 기준: AIC/BIC
# AIC는
# 감소 많이 되는 얘를 선택해 추가/제거
# 감소가 없으면 중단
# 만약 0.1정도만 줄어드는게 최고면 가져갈지말지 본인이 결정하기

# BIC도 마찬가지