인공지능관련/인공지능(AI)

적합도5

학위논문통계 2017. 7. 21. 01:11

 

 

1. 회귀분석과 피타고라스 정리 또는 삼수선의 정리

 

 

지난번 회귀분석의 적합도를 이야기할 때 다음과 같은 공식을 소개한 적이 있습니다.

 

SST=SSR+SSE

 

또는 분산분석 즉, 아노바(ANOVA)라고 하죠. 거기서는

 

SST=BSS+WSS

 

라고도 합니다. 개념은 같습니다.

 

SST=종속변수 Y의 변동, 즉 분산 개념이고 기하학적으로 거리 개념이 됩니다. 정확하게는 원점에서 Y점 까지를 거리 제곱 개념이 됩니다.

 

SSR=종속변수 Y의 변동 중 독립변수 X가 설명하는 변동, 정확하게는 원점에서 X 벡터들이 생성하는 공간의 점까지 거리 제곱 개념이 됩니다.

 

SSE=종석변수 Y의 변동 중 독립변수 X가 설명하지 못하는 변동. 종속변수 Y를 독립변수들 X가 생성하는 공간에 투사(project)한 점까지 벡터의 거리 제곱 개념이 됩니다.

 

잘 이해가 안되죠. 그럼 단순회귀분석, 즉 독립변수가 하나만 있는 경우를 예를 들어서 설명해보죠. 데이터는 3개입니다. 그래야 삼차원에서 그림을 그릴 수가 있습니다. 아래는 3개의 데이터입니다.

 

    

id

상수

독립변수 X

종속변수 Y

1

1

2

3

2

1

1

2

3

1

1

4

 

 

이걸 3차원 공간에 한번 그려보죠.

 

 

 

 

 

그림에서 빨간색 벡터가 상수에 해당하는 1벡터와 독립변수인 X 벡터를 3차원에 그린 것이고 파란색 벡터가 종속변수인 Y 벡터를 그린 것입니다. 두 개의 빨간 벡터가 만든 사각형 모양의 평면을 두 개의 벡터가 생성한(span, generated) 공간이라고 하고 종속변수인 Y를 이 공간에 투사한 점을 Yhat이라고 합니다.

 

Y와 두 개의 벡터 1X 벡터를 가지고 연립방정식을 풀려고 하니까 안 풀어지죠. 그래서 Y를 두 개의 벡터가 만드는 평면에 떨어뜨려서 방정식을 풀려고 하는 것입니다. Yhat=(Yhat1, Yhat2, Yhat3)이라고 하면

 

Yhat1=b0*1+b1*2

Yhat2=b0*1+b1*1

Yhat3=b0*1+b1*2

 

이렇게 하면 식이 3개지만 bob1가 풀어집니다. 그래서 풀어진 값이 바로 여러분이 통계 프로그램에서 돌려서 나온 회귀계수의 추정치 값입니다.

 

회색으로 칠한 삼각형은 직각삼각형입니다. 왜냐하면 수직으로 투사하였기 때문입니다. 그래서 빗변인 Y 벡터의 거리 제곱이 SST이고 그리고 아래 밑변인 Yhat 벡터의 거리 제곱이 SSR이고 그리고 높이 제곱이 SSE가 됩니다.

 

독립변수를 추가할 때는 삼수선 정리를 이용해야 합니다. 이 그림은 워낙 유명해서 웬만한 회귀분석 책에 다 나오는 그림입니다.

 

정규분포의 제곱을 한 것을 합하면 카이 제곱을 한다는 유명한 정리가 있습니다. 그리고 카이제곱한 것을 자유도로 나누고 그리고 이것 분자, 분모에 두고 서로 독립이면 F 분포를 간다는 유명한 정리가 있고요. 이렇게 직각삼각형 모양으로 만들면 직각인 두 벡터는 서로 독립이 됩니다. 이걸 이용해서 회귀분석에 나오는 F 검증이 나오는 것입니다.

 

 

 

분산분석에서 나오는 SST=BSS+WSS는 무엇을 말하는 것일까요. 이것도 위의 그림으로 만들어 낼 수 있습니다. 별 어렵지는 않지만 너무 깊게 들어가기는 그렇고요. 관심있는 분은 design 행렬이라는 것을 찾아보시기 바랍니다.

 

고등학생의 국어 성적인 학생이 성별에 따라 차이가 있는지 알고 싶다는 것이죠. 그림 다음 그림처럼 그릴 수가 있습니다.

 

 

  

 

 여기서 남학생 국어 성적 평균, 여학생 국어 성적 평균 이 두 값의 변동을 BSS(between sum of squares)라고 합니다. 즉 그룹간 제곱합, 즉 그룹간 변동입니다. 또 남학생 분포안에서 변동이 있고, 여학생 분포 안에서 변동이 있습니다. 이 두 개의 변동을 합친 것을 WSS(within sum of squares)라고 합니다. 즉 그룹내 변동이라고 하고 이 변동이 성별이 여전히 설명하지 못하는 국어 성적 변동을 이야기 합니다. 이렇게 WSS가 상대적으로 BSS에 크면 학생 국어 성적의 차이를 가져 오는 변수에는 성별 외에도 다른 변수들이 있구나 그렇게 생각한다는 것이죠. 이렇게 수 많은 변수를 집어 넣어도 여전히 설명하지 못하는 변동이 있습니다. 개인적인 타고난 언어 능력 차이라든지 아니면 그날 학생들이 커디션 같은 것이 있을 수 있습니다

 

 

 

 

2. 포화모형(Saturated model)

 

포화모형이 뭐라고 엄격하게 정의한 책을 아직 보지 못해서 저도 장담은 하지 못하겠고요. 일단 책에 보면 데이터 수와 모형 식의 모수의 수가 일치하는 경우, 또는 적합도가 1인 모형 이런 식으로 설명을 하고 있습니다.

 

여기 찾아오시는 분 중 논문 쓰시는 분은 아마 구조방정식 결과물에서 이 포화모형이라는 것을 봤을 겁니다.

 

 

1) 회귀분석

 

데아타 Y=(y1, y2, ..., Yn)이 있다고 하죠. 그럼 이 경우 가장 간단한 경우가 여러분이 많이 아는 Y의 평균을 구하는 것입니다. 그래서 예측은

 

Yi=C

 

가 됩니다. 여기서 C는 우리가 모르는 모수이고 이걸 통상 Y의 평균으로 추정합니다. 데이터는 n 개인데 반해 모수는 1개이죠. 이에 반해 가장 복잡한 모형은

 

Yi=Ci i=1,2,...,n

 

인 모형입니다. Ci 모수이고 모두 n 개입니다. 그래서 Y의 개수와 모수의 개수가 일치합니다.

 

우리가 아는 독립변수라는 것이 없고 첫 번째 데이터인 y1의 평균은 그냥 y1이라고 추정하고, y2의 평균은 y2, 이런 식으로 예측하는 것입니다. 아무 쓸모 없는 모형이죠. 이게 회귀분석에서 포화모형입니다. 책에는 안 나오지만 (표본 수-1)만큼 다항식을 만드는 모형도 포화모형이 될 수 있을 겁니다. n=4이면

 

Y=b0+b1*X+b2*X2+b3*X3

 

이걸 회귀모형이라고 하면 적합도가 정확하게 1이 나옵니다. 즉 결정계수 값이 1이 됩니다.

 

 

 

2) 구조방정식 모형

 

구조방정식을 한 경험이 있는 분들은 아시겠지만 결과물에 3가지 모형의 적합도를 구해 줍니다. 처음이 가장 복잡한 포화모형의 적합도고, 두 번째가 여러분이 설정한 연구모형의 적합도, 세 번째가 가장 단순한 모형인 독립적인 모형의 적합도를 구해 줍니다. 논문에 적은 것은 당연히 두 번째 여러분이 설정한 연구모형의 적합도입니다. 포화모형과 독립모형에 대해 정확하게 설명된 책을 아직 보지 못해 정확하게는 기술하지는 못하겠습니다만 포화모형의 경우 여러분이 설정한 연구모형에서 모든 가능한 상관관계를 더 추가하는 모형이 아닐까 추측합니다. AMOS에서 연구모형의 그림을 그리고, 추가적으로 쌍방향 화살이 그려질 수 있는 모든 가능한 관계를 그려놓은 모형이 아닐까 싶습니다.

 

일단 구조방정식에서 적합도에 대해 한번 알아보겠습니다. 구조방정식에서는 전체 데이터가 필요없고 공분산행렬, 또는 상관계수 행렬만 있으면 대부분 결과가 구해집니다.

 

예를 들어 스트레스가 조직효율성에 미치는 영향을 분석한다고 하죠. 그리고 스트레스에는 경제적 스트레스와 인간관계 스트레스 두 개가 있다고 하고, 조직효율성에는 조직몰입과 직무만족이 있다고 하죠. 그럼 기본적인 연구모형은 다음의 그림과 같습니다

 

 

 

 

 

실제 작업상황은 다음과 같습니다. 여러분이 경제적 스트레스, 인간관계 스트레스, 조직몰입, 직무만족에 관한 설문문항을 만들어 만명을 대상으로 설문조사를 실시합니다. 그러면 다음과 같은 데이터를 만들 수 있습니다. 경제스트레스는 4문항, 인간관계 스트레스는 5문항, 조직몰입은 3문항, 직무만족은 5문항이라고 하죠. 그림 아래 회색이 칠해진 데이터를 만들 수 있습니다. 이런 표를 만드는 것을 코딩한다고 합니다. 이건 SPSS 같은 통계프로그램에서 하지 말고 엑셀 같은 프로그램을 이용하는 것이 편합니다. 엑셀로 코딩작업한 후 통계프로그램에서 바로 불러 올 수 있습니다.

 

id

경제1..

경제4

인간1..

인간5

몰입1..

몰입3

만족1..

만족5

경제

인간

관계

조직

몰입

직무

만족

1

5

4

5

3

5

2

4

5

3.3

2.5

3.7

4.23

2

3

4

3

3

4

4

2

3

3.17

4.22

4.7

2.44

3

3

4

4

3

5

2

3

4

2.7

4.33

3.17

2.44

4

 

 

 

 

 

 

 

 

 

 

 

 

...

 

 

 

 

 

 

 

 

 

 

 

 

10000

3

3

3

4

4

2

2

3

3.33

4.11

3.12

2.74

 

 

만 명에 대한 설문지를 보고 왼쪽 회색칠한 부분처럼 코딩한 다음 그 다음으로 해야 할 작업은 실제 분석에 사용될 경제적 스트레스, 인간관계 스트레스, 조직몰입 스트레스, 직무만족 스트레스의 값을 구하는 것입니다. 이건 각 변수에 해당하는 설문문항 값의 평균값을 구하면 됩니다. 이게 오른쪽에 있는 분홍색 칠한 부분입니다.

 

그래서 실제 설문문항이 아무리 많아도 오른쪽의 변수가 적으면 분석이 간단해지고, 설문문항이 적어도 오른쪽 변수가 많으면 분석이 복잡해집니다. 사회과학에서는 개별 설문문항은 분석을 안합니다. 분석 단위가 아닙니다. 그러나 의대, 간호학과, 보건 쪽에서는 개별 설문문항에 대한 것은 조사해 달라는 경우가 많습니다.

 

하여간 오른쪽에 구해진 변수를 관찰변수, 측정변수라고 하고, 연구모형에 타원형으로 그려져 있는 스트레스와 조직효율성 변수는 은닉변수, 잠재변수라 합니다. 이 경우는 구성개념이라고 할 수도 있습니다.

 

그럼 구조방정식에서는 이 만명에 대한 데이터를 전부 다 사용하는 것이 아니고 오른쪽에 있는 관찰변수의 공분산 행렬이나 상관계수 행렬을 사용합니다. 그래서 구조방정식의 기본적인 적합도 개념은

 

모형의 오차= |관찰된 공분산행렬 또는 상관계수 행렬 - 연구모형에

 

나오는 이론적인 공분산 행렬 또는 상관계수 행렬|

 

간단히 표기해서 우리는 공분산행렬보다 상관계수 행렬을 사용한다고 하고 이 행렬을 R로 표시하면 다음과 같이 쓸 수 있습니다. 여기서 | |는 행렬 norm (거리개념) 이라고 보면 됩니다.

 

모형의 적합 부족분 = | 관찰 R - 이론 R|

 

관찰된 공분산행렬이나 상관계수 행렬은 구하기 싶습니다. 위 데이터 오른쪽에 있는 4개의 변수의 공분산이나 상관계수 행렬을 구하면 됩니다. 상관계수행렬로 한다고 하죠. 그래서 다음과 같은 상관계수 행렬을 나왔다고 하죠.

 

구분

경제

인간관계

조직몰입

직무만족

경제

1

.

.

.

인과관계

0.65

1

.

.

조직몰입

-0.43

-0.18

1

.

직무만족

-0.27

-0.34

0.54

1

 

 

 

그래서 구조방정식에서 사용하는 데이터 수는 n=만명이 아니라 위 상관계수 행렬에 나오는 4+3+2+110개에 불과합니다. 천만명에게 설문조사를 해도 실제 분석에 사용하는 데이터는 이 연구모형에서는 10개뿐입니다. 그래서 포화모형에서 표본 수는 원 데이타의 표본 수가 아니라 실제 통계방법론에서 사용되는 데이터 수를 이야기하는 경우가 많습니다. 이건 나중에 로그 포아송에 경우에서도 나옵니다.

 

문제는 연구모형 이론에서 도출되는 상관계수 행렬을 어떻게 구하는가입니다. 이 부분은 한국에서 나오는 구조방정식 책에서는 설명이 되어 있지 않을겁니다. 궁금하시분들은

 

Latin, Carroll, Green 이라는 사람이 쓴 analyzing multivariate data 라는 책을 참조하시기 바랍니다. 간단한 예로서 이론적 공분산 행렬을 구하는 방법이 설명되어 있습니다.

 

다시 위의 연구모형을 한번 보시죠.

 

 

 

위 연구모형을 통해 다음과 같은 연립방정식을 쓸 수 있습니다.

 

경제적 스트레스=a*스트레스+e1

조직효율성=b*스트레스+n

 

위와 같이 연구모형에서 인과관계의 연립방정식을 쭉 쓴 다음 4개의 측정변수에 대해 풀어냅니다. 그런 다음 상관계수(경제적 스트레스, 인간관계 스트레스), 상관계수(경제적 스트레스, 조직몰입) 등을 구해냅니다. 물론 이렇게 구한 이론 R에서는 우리가 모르는 모수 ab 등이 포함되어 있습니다. 그래서 적합 정도를 알기 위해서는 먼저 데이터에서 ab 값을 먼저 구해야 합니다. 추정하는 방법은

 

모형의 적합 부족분 = | 관찰 R - 이론 R(a, b)|

 

를 최소화하는 ab를 구합니다.

 

이런 식으로 적합 부족분을 최소화하는 방법으로 모수를 추정하는 것이 통계적으로, 이론적으로 좋은 방법일까요. 이건 적합도 처음에 소개한 최소제곱법이랑 개념이 같은 것입니다.

 

. 대부분의 경우 문제가 없습니다. 측정변수가 정규분포를 한다면 위와 같은 방식으로 모수 a, b를 구하는 것이 MLE라는 것이 증명되어 있습니다.

 

따라서 구조방정식에서 포화모형을 이야기할 때 데이타 수 n는 표본 수가 아니고 관찰 변수의 공분산 행렬이나 상관계수 행렬에서 나오는 값의 개수입니다. 이건 로그 포아송 모형에서도 이런 현상이 나옵니다. 이건 다음에 이야기하고요.

 

구조방정식을 돌리면 수많은 적합도 지수가 나옵니다. 그러나 크게 보면 두 가지로 나눌 수 있습니다. 하나는 1에 가까운 적합도 지수이고 하나는 0에 가까운 적합도 지수입니다. 1에 가까운 적합도 지수는 이론적 R이 관찰 R에 얼마나 가까운지를 보는 지수이고 0에 가까운 지수는 | 관찰 R- 이론 R | 이 전체에서 얼마 정도 되는지 보는 지수입니다.

 

적합도는 변수가 많아질수록, 또는 모수의 개수가 많아질수록 무조건 적합도가 좋아진다고 했습니다. 그래서 변수의 개수, 모수의 개수를 고려한 적합도 지수를 사람들이 만들어 냈습니다. 이 대표적인 것이 회귀분석에서 수정 결정계수입니다. 이 개념은 구조방정식 적합도 지수에서도 나옵니다.

 

일반적으로 모수가 많아질 때 적합도 지수가 좋아지는 것을 방지하기 위해 적합도 지수 구할 때 모수의 개수를 고려합니다. 이럴 것을 전문용어로 벌칙 항(penalty term)이라고 합니다.

 

 

 

3. 로그 포아송 모형

 

로그 포아송 모형은 다음에 쓰기로 하고 앞에서 쓴 지수분포와 포아송분포에 관한 글을 다시 올립니다.

 

며칠 전 기사에 보니까 최종학력 졸업 후 직장을 구하는데 걸리는 기간이 약 1년 정도라고 하네요. 이건 현재 쓰고 있는 적합도에서도 다시 쓰겠습니다. 지금 열심히 쓰고 있는데 시간이 많이 걸리네요. 제 먹고 사는 일도 같이 해야 하기 때문에요.

 

이게 정규분포를 한다고 생각하면 직장을 구하는데 1년 이상 걸리는 청년들이 50%로 나와야 합니다. 왜냐하면 정규분포는 평균을 중심으로 대칭모양을 하니까요. 그러나 통계학 이론을 보면 특정 사건이 일어날 때까지 걸리는 시간은 통상 지수분포(exponetial distribution)한다고 되어 있습니다. 이건 대칭 분포가 아니고 왼쪽으로 기울어진 모양을 하고 있습니다. 그래서 제가 한번 구해 봤습니다.

 

1년 이상 걸리는 사람은 36.8% 정도, 2년 이상 걸리는 사람은 13.5%, 3년 이상 걸리는 사람은 3.5%로 나옵니다. 실제 데이터와 비교해서 이 수치와 차이가 많이 나면, 즉 적합도가 떨어지면 지수분포 가정을 하면 안됩니다. 그럼 이 경우는 어떻게 할까여. 감마분포(Gamma Distribution)을 사용하면 됩니다. 지수분포는 감마분포의 특수한 형태입니다. 즉 모수가 하나 더 있어 지수분포보다 좀 더 탄력적입니다.

 

포아송의 경우도 마찬가지입니다. 포아송은 지수분포와 동전의 앞뒤면 같은 분포인데 포아송은 특정 시간이나 거리, 지역 내에서 일어나는 사건의 횟수의 분포의 경우 사용합니다. 이 경우도 포아송 분포를 사용하니까 적합도가 떨어지면 부이항분포(negative binomial)라는 것을 사용합니다. 포아송 분포가 브이항분포의 특수한 경우입니다. 이 분포는 자주 이야기에 나오는데 대부분 데이터가 over dispersion 현상을 보이기 때문입니다. 포아송 분포의 경우 평균과 분산은 이론적으로 같은 값이 나오는데 현실 데이터에서는 이렇게 잘 안 나옵니다.

 

그런데 여기서 직장이라는게 알바 이런 것도 포함되어 있는지 모르겠네요. 하여간 취직한 후 그만 둘 때까지 평균 18개월 정도 걸린다네요. 이것도 지수 분포 가정을 하면 18개월 이상 일하는 사람은 36.8% 정도, 3년 이상 일하는 사람은 13.5%, 4년 반 이상 일하는 사람은 3.5% 정도로 볼 수 있네요.

 

 

 

 

 

 

'인공지능관련 > 인공지능(AI)' 카테고리의 다른 글

적합도4  (0) 2017.07.09
적합도3  (0) 2017.06.12
적합도3  (0) 2017.05.21
적합도2  (0) 2017.05.20
적합도1, 모형 선택  (0) 2017.05.11