[통계] 가중치를 활용한 회귀분석(WLS, Weighted Least Square, 가중최소제곱법)

반응형

※ 자료가 등분산성을 충족하지 못할 때, 즉 이분산일 때에는 OLS(최소제곱법)이 아니라 WLS 방식으로 보정하여 분석을 해야한다.

 

- 종속변수 : Y

- 독립변수: X1, X2, X3

- 가중치(weights) = 1/σ^2

 

SPSS를 활용해서 가중치를 구하고, 이를 통해 WLS의 방식으로 회귀분석 하는 방법

 

① 분석>회귀분석>선형
- 종속변수: Y
- 독립변수: X1, X2, X3
- 저장 > 예측값 > 비표준화 체크 # 예측값을 새 변수(PRE_1)수로 저장
- 저장 > 잔차 > 비표준화 체크 # 잔차를 새 변수(RES_1)수로 저장

② 변환>변수 계산
- 목표변수: absRES # 잔차의 절대값을 absRES로 생성
- 숫자표현식: abs(RES_1)

③ 분석>회귀분석>선형 # 잔차의 절대값과 예측치 간의 회귀분석
- 종속변수: absRES
- 독립변수: PRE_1
- 저장 > 예측값 > 비표준화 체크 # 예측값을 새 변수(PRE_2)수로 저장

④ 변환>변수 계산 # 가중치 계산
- 목표변수: weights # 가중치를 weights 변수로 생성
- 숫자표현식: 1/(PRE_2**2) # 1을 PRE_2의 제곱으로 나눔

⑤  분석>회귀분석>가중추정
- 종속변수: Y
- 독립변수: X1, X2, X3
- 가중변수: weights

 

--------------------------------------

 

R을 활용하는 방법: 가중치(weights) 구하는 두가지 계산식

 

① model <- lm(Y ~ X1+X2+X3, data="데이터") # 회귀분석 실시

 

 weights <- 1/fitted(lm(abs(residuals(model)) ~ fitted(model)))^2 # 가중치구하는 방법 첫번째
② weights <- 1/lm(abs(model$residuals) ~ model$fitted.values)$fitted.values^2 # 가중치 구하는 방법 두번째

- 둘중 어느 방법을 사용해도 결과값은 동일하다.

- residuals(model) # 회귀모델에서의 잔차 (SPSS에서 RES_1)

- fitted(model) # 회귀모델에서의 예측치 (SPSS에서 PRE_1)

- fitted(lm(abs(residuals(model)) ~ fitted(model))) # 잔차의 절대값과 예측치(PRE_1)간의 회귀모형에서의 예측치 (SPSS에서 PRE_2)

 

반응형

[자료분석론] 다중응답의 분석 : SPSS

반응형

SPSS를 활용한 사회복지조사분석을 실시하면서 늘 문제가 되거나 가장 많은 질문을 받게 되는 항목들이 아래의 세가지이다.
입력오류를 찾는법과 그로 인한 결측값의 처리문제, 마지막으로 가장 관심도가 높은 다중응답에 대한 처리와 분석이다.

첨부된 한글 파일은 아래 내용을 그대로 정리한 것이다.



1. 입력오류
코딩(변수정의, 입력)이 모두 끝났다면, 이제 입력의 오류를 찾아야 한다. 잘못된 입력 데이터는 통계의 정확도를 떨어뜨리게 되는데, 수백개나 되는 입력값들을 하나하나 설문지와 대조해 볼 수는 없다.

▶ 입력오류 찾아 고치기 : 모든 항목에 대한 빈도분석 실시
→ 빈도분석의 결과에서 정의하지 않은 변수에 대한 입력값이 있다면 그것은 코딩이 잘못된 것이라 볼 수 있다. 따라서 코딩이 끝나고나면 모든 항목에 대해 빈도분석을 실시하여, 코딩에러를 찾아고치도록 한다.

2. 결측값 (무응답, Missing)
통계에서는 경우에 따라 무응답도 중요한 의미를 가지는 경우가 있다. 이러한 결측값에 대해 특별한 의미를 부여하고자 한다면 변수를 정의해 두는 것이 더욱 좋다.

1) 단순한 무응답의 경우 : 입력값을 부여하지 않는다.
2) 의미있는 무응답의 경우 : 0 또는 999를 입력
3) 결측값의 처리 : 기본값은 No Missing Values로 되어 있다.
→ Discrete Missing Values(이산형 결측값)을 체크하고 0을 입력해 준다.

3. 다중응답의 분석
다중응답에 대해서는 변수를 어떻게 정의내렸느냐에 따라 분석방법이 달라진다. 범주형과 이산형이 있다. 또한 우선순위를 부여하는 경우에도 달라지며 이때는 별도의 가중치를 부여토록 한다.

예) Q5. 귀하가 좋아하는 찌개는 무엇입니까? 두가지만 선택해주세요.
       ① 김치찌개 ② 된장찌개 ③ 순두부찌개 ④ 기타
        → 위 설문에 응답자가 ①과 ③을 응답한 경우

 [코딩방법 1 범주형]
  Q5-1 귀하가 좋아하는 ~~) ① 김치찌개
  Q5-2 귀하가 좋아하는 ~~) ③ 순두부찌개

[코딩방법 2 이분형 : Yes/No]
  Q5-1 김치찌개)    ① YES   
  Q5-2 된장찌개)    ② NO
  Q5-3 순두부찌개) ① YES    
  Q5-4 기타)          ② NO


1) 범주형 자료의 분석
범주형의 경우 우선 변수군을 정의(Val_1-1, Val_1-2, …)하여 새로운 변수를 생성(Val_All)한 다음 분석한다.

가. 변수군 정의
Analyze(분석) > Multiple Response(다중응답) > Define Sets(변수군 정의)
다중응답으로 처리할 변수를 선택한 후, Categories(범주형)에서 변수의 범위(Range)를 정하고, 새변수의 이름과 설명을 입력/추가(Add)합니다.

나. 다중응답 빈도분석의 실행
Analyze(분석) > Multiple Response(다중응답) > Frequencies(빈도분석)
앞서 새롭게 정의한 변수를 선택하고 분석을 실행합니다.

2) 이분형 자료의 분석
이분형의 경우는 하나의 분항을 각각의 변수값(Values)에 대응하는 Yes/No의 모든 설문지를 생성하고 그 내용에 대해 분석을 실시한다.
여기서는 Yes는 1, No는 2라고 정의하였다고 보고 설명합니다.

가. 변수군 정의
Analyze(분석) > Multiple Response(다중응답) > Define Sets(변수군 정의)
다중응답으로 처리할 변수들을 선택한 후, Dichotomies Counted value에서 Yes라고 정의한 변수값, 즉 1을 적어줍니다. 이후 새변수의 이름과 설명을 입력/추가(Add)합니다.

나. 다중응답 빈도분석의 실행
Analyze(분석) > Multiple Response(다중응답) > Frequencies(빈도분석)
앞서 새롭게 정의한 변수를 선택하고 분석을 실행합니다.

※ 개인적으로 판단컨데, “두개만 선택하시오”의 경우에는 범주형이, “모두 선택하시오”라고 질문한 경우 이분형이 코딩과 분석에 용이할 것으로 생각됩니다.

3) 우선순위가 있는 경우
우선 순위가 부여된 경우에는 그 순위에 따라 별도의 가중치를 부여해야합니다. 이 가중치는 조사자의 관점에 따라 달라질 수 있으며, 그에 따라 가중치 부여를 한 후 범주형 또는 이산형으로 분석을 다시 실시토록 합니다.


[참고자료] 마우스로 잡는 SPSS for Windows v10.0, 우수명, 인간과 복지, 2003
반응형