회귀분석/회귀분석,Regression

회귀분석 문제점이나 질문 사안에 대한 답

학위논문통계 2022. 2. 16. 11:54

 

일이 바빠 그 동안 글을 못썼는데요. 지금도 시간이 없어서 몇 분이 전화를 통해 질문한 것 간단하게 몇 개 쓰겠습니다.

 

 

 

1. 회귀분석에서 적합도인 결정계수 값이 너무 낮아요.

 

결정계수 R제곱이 너무 낮다는 이야기는 정확하게 이렇습니다. 어떤 경우에는 수정 결정계수가 음수로 나오는 경우도 있습니다.

 

연구모형에서 독립변수로 설정한 것 외에 종속변수 Y를 설명하는 요인 중에서 고려하지 않는 매우 중요한 요인이 있다는 이야기입니다.

 

하여간 지금 와서 새로운 독립변수를 더 추가해서 분석하는 것은 힘들죠. 다시 설문조사를 해야 하거든요.

 

그럼 이 경우 조금이라도 R제곱을 올리려면 통제변수를 추가하는 수 밖에 없습니다. 대표적으로 성별, 연령 등 순위형 인구통계 변수를 추가하는 것입니다.

 

통제변수는 이론적 배경에서 따로 내용을 추가할 필요가 없습니다. 왜냐하면 이 통제변수는 우리가 연구할 대상 변수가 아니기 때문입니다. 단지 우리 연구모형에서는 이 변수를 고려하지는 않지만 종속변수에 영향을 미치는 변수이기때문이 이 변수의 영향력을 제외하려고 넣는 변수에 불과합니다.

 

 

통제변수는 이론적으로는 회귀분석에서 다 독립변수입니다. 조절변수도 이론적으로는 다 독립변수입니다. 단지 개념이 다를 뿐입니다.

 

그럼 어떤 통제변수를 넣는 것이 맞을까요.

 

이론적으로는 종속변수와 상관관계가 높고, 또 연구모형에 있는 독립변수와도 상관관계가 높은 변수를 통제변수로 넣는 것이 원칙입니다.

 

그러나 이렇게 넣으면 결과가 나빠질 수 있습니다. 즉 통제변수가 없는 경우 독립변수가 유의적으로 나왔는데 통제변수를 넣으면 유의하지 않게 나오는 경우가 생길 수 있습니다.

 

원칙:

 

회귀분석에서 독립변수를 많이 넣으면 적합도, R제곱은 무조건 커지지만 대부분의 경우 유의적으로 나올 가능성은 점점 떨어집니다.

 

그렇지 않는 경우도 가끔 있는데 이건 자유도(degree of freedom) 때문입니다. 이런 이야기는 너무 전문적인 이야기라 생략하겠습니다. 하여간 대부분의 경우 독립변수의 수가 많아지면 유의적으로 나오는 변수가 적어지는 경향이 있습니다.

 

 

그럼 어떻게 하는 것이 좋을까요.

 

종속변수와 상관관계가 높은 것을 넣는 것이 좋습니다. 이건 변하지 않습니다. 그래야 적합도인 R제곱이 올라갑니다.

 

그러나 원칙과 다르게 연구모형의 독립변수와 가능하면 상관성이 없는 변수를 통제변수로 넣습니다.

 

원칙과 다르게 정 반대로 통제변수로 넣었기 때문에 이것 사실상 통계 조작입니다. 일종의 합법을 가장한 불법인 것이죠.

 

현재 한국 사회의 가장 큰 문제인 검사와 판사, 언론 쓰레기 새끼들이 합법이라는 이름 하에 온갖 폐악질을 하는 것이라 같은 것입니다.

 

 

 

2. 유의적으로 나오지 않아요.

 

가끔 상식적으로 유의적으로 나와야 하는데 유의적으로 나오지 않는다고 걱정하시는 분들이 있습니다.

 

이럴 경우 outlier라는 이상치를 제거하시면 됩니다. 그럼 유의하지 않는 독립변수도 유의하게 만들 수 있습니다.

 

이건 통계 조작이 아닙니다. 원래 통계 분석을 들어가기 전에 이런 outlier를 사전에 제거하는 작업을 해야 합니다.

 

그런데 저도 그렇고 다른 사람들도 이런 작업을 하지 않습니다. 왜냐하면 이런 작업을 하려면 시간이 매우 많이 들고 따라서 의뢰비용이 매우 높아지기 때문입니다.

 

하여간 그럼 이 이상치를 어떻게 제거할까요.

 

회귀분석 메뉴를 보면 statistics==>residual에서 outlier 제거하는 메뉴가 있습니다. 그러면 자동으로 이상치로 의심되는 자료를 결과물로 보여 줍니다.

 

그러나 이 방법으로는 제대로 작동하지 않습니다. 자세한 설명은 생략하고요.

 

그럼 어떻게 해야 이 이상치를 제거하여 유의적으로 만들 수 있을까요.

 

graph 메뉴에서 Legacy Dialog로 가서 Scatter 지정하여 종속변수와 독립변수간의 산포도를 찍은 것입니다. 산포도에서 전반적인 직선 경향에서 완전히 벗어난 자료를 일일이 찾아서 제거를 해 줘야 합니다.

 

대부분 회귀분석에서 이상치는 극단적인 경우에 생겨납니다. 이런 극단적인 경우인 자료가 몇 개 있으면 회귀분석 결과가 상식적으로 나오지 않습니다.

 

예를 들어 이런 경우입니다.

 

독립변수인 소진이 커지면 종속변수인 스트레스가 커집니다.

 

그러나 몇 몇 사람의 경우 소진은 매우 높은데 스트레스가 매우 낮은 경우, 또는 소진은 매우 낮은데 스트레스가 매우 높은 양 극단에서 상식적인 경향과 정 반대인 경우가 있습니다.

 

이런 자료들이 회귀분석에서 outlier입니다.

 

 

또 이 산포도를 이용하면 다른 좋은 기능도 있습니다.

 

먼저 앞에서 적합도를 올리려면 통제변수를 넣으라고 했는데 이 산포도를 통해 적합도를 낮추게 하는 자료를 뽑아낼 수 있습니다. 산포도에서 회귀선을 상상한 다음 이 회귀선에서 크게 벗어나는 자료를 제거하는 것입니다. 앞에서 statistics에서 이상치 제거하는 메뉴가 하는 기능이 사실 이것입니다. 잔차(residual)이 너무 큰 자료를 제거해서 적합도 R제곱 값을 올리고 또 이 작업을 하면 회귀계수 추정치의 표준오차를 작게 만들어 유의적으로 만들어줄 가능성이 좀 있습니다.

 

그러나 유의적으로 만들려고 하면 이 작업으로는 잘 안되고 처음에 이용한 양 극단에서의 이상치를 제거하는 것이 맞습니다.

 

 

또 조절변수가 조절효과가 있는지 사전에 한번 알아볼 수 있습니다. 이건 조금 더 자세히 써보죠.

 

 

 

3. 조절효과가 있는지 사전에 알 수 있을까요.

 

1) 이진 조절변수

 

조절효과를 보려고 하면 변수들을 표준화한 다음 변수들을 곱해서 상호작용항을 만들어서 회귀분석을 해야 합니다. 귀찮고 시간이 많이 드는 작업이죠.

 

그럼 이걸 하기 전에 사전에 한번 알아 볼 수 있을까요. 만약 성별의 조절효과가 있는지 알아보죠.

 

그럼 graph가서 산포도를 찍습니다. 여기서 set markers by 에서 성별을 넣습니다. 그럼 남자와 여자의 경우 색깔을 달리 해서 산포도를 찍어줍니다. 그럼 남녀의 각각 경우 상상의 회귀선을 생각할 수 있습니다. 이 두 회귀선의 기울기 차이가 많이 나야 유의적인 조절효과가 있는 것입니다.

 

2) 연령같이 다범주인 조절변수

 

연령이나 근무 경력 같이 다범주인 조절변수인 경우 이진 더미 조절변수로 만들어서 조절효과를 봐야 하는데요 어디서 선을 그어서 이진 더미 변수로 만들어야 하는지 고민할 수 있습니다.

 

이진 더미 변수로 만들 때 가능하면 표본 수가 비슷해야 좋겠죠. 한쪽으로 너무 쏠리면 반대편 한쪽은 표본수가 너무 적어 통계 결과를 신뢰할 수 없게 됩니다.

 

하여간 이 경우도 다양하게 이진더미 변수를 만들어서 위의 산포도를 찍어서 회귀선에서 차이가 나는지 보시면 됩니다.

 

20대 까지==>0, 30대 이상==>1, 이렇게 하거나 30대 까지 ==>0, 40대 이상 ==> 1 이렇게 다양하게 이진 더미 변수를 만들어 산포도를 찍어 본다는 것이죠.

 

 

3) 조절변수가 연속형일 경우

 

이 경우도 산포도를 이용할 수 있습니다. 연속형 조절변수를 일단 표준화합니다. 이건 Descriptive==> Descriptive 한 다음 메뉴 아래에 있는 표준화를 체크하면 표준화된 조절변수가 데이터 맨 끝에 새로 붙습니다. 이 새로 붙는 표준화 조절변수를 가지고 이진 더미 변수로 만들면 됩니다. 즉 transform ==> recode into same variable 한 다음

 

0까지==>0, 0 이상==>1로 이진 더미 변수로 만듭니다.

 

그럼 앞에서 이야기한 산포도를 찍은데 이 이진더미 변수를 set markers by에 지정하면 조절변수가 평균 이하인 집단과 평균 이상인 집단간에 독립변수 x와 종속변수 y 간의 산포도를 다른 색깔로 찍어 줍니다. 이걸 보면 대강 이 연속형 조절변수가 유의적으로 나올지 대강 감이 옵니다.

 

또 이 산포도를 이용해서 앞에서 이야기한 outlier 제거 작업을 할 수 있습니다. 즉 조절효과가 유의적으로 나오지 않으면 이 작업을 통해서 조절효과가 유의적으로 나오지 못하게 하는 이상한 자료들을 제거할 수 있습니다.

 

이 작업은 앞의 단순한 회귀분석 이상치 제거 작업보다 시간이 더 들죠. 회귀분석은 단순히 x, y 이 두 변수만 보면 되는데 조절효과 이상치 제거는 x, y 이외에 조절변수 M까지 봐야 하기 때문에 더 힘든 작업입니다.

 

 

 

4. 이게 통계 조작이 아닙니까.

 

앞에서 이야기했지만 이건 통계 조작이 아니고 오히려 원칙적으로 사전에 해야 하는 작업입니다.

 

그러나 이런 이상치 제거 작업을 막 하는 것이 아닙니다. p 값이 너무 큰 경우는 해서는 안되고 p 값이 0.2보다 작은 경우에 해야 합니다. 그래야 이상치 자료 몇 개 제거하면 유의적으로 나올 수가 있습니다. p 값이 너무 큰 경우 유의적으로 만들려고 하면 자료를 엄청 많이 제거를 해야 합니다. 이건 사실상 통계 조작이죠.

 

 

 

5. 다범주 조절효과

 

다범주 조절효과에 대해 이론적인 설명을 간단히 하겠습니다. 이건 다른 분 작업할 때 써 준 것인데요. 여러분 경우에 따라 말을 바꾸면 됩니다. 조절변수는 종교로 하고 무교는 1, 불교는 2, 기독교는 3으로 코딩되어 있다고 가정하죠. 기저범주는 무교입니다.

 

사실 여기에서 질문하시는 분들을 보면 이 내용을 이해하기 힘들 것 같은데요. 그러나 꼭 다범주를 조절변수로 해서 하고 싶고, 또 본문에 이론적인 설명을 하고 싶은 분들을 위해 첨가합니다.

 

수학이 나와서 힘들 수도 있는데 너무 겁먹지 말고 차분히 뜯어서 이해하도록 노력하시기 바립니다. 복잡한 것 같아도 그냥 일차 방정식입니다.