ds=read.csv(SMSA.csv) GETNAMES=YES;...

11
Linear Model Spring 2015 단순회귀예제 예제 데이터 SMSA.csv : 종속변수 Mortality, 설명변수 Nonwhite 비백인 비율 순서1) 데이터 준비 (진단내용 및 도구) 종속변수, 설명변수 히스토그램 : 종모양 분포 검증, 봉우리가 2개 인 경우는 서로 다른 집 단이 있다는 것을 의미하므로 정규성 검정 - SW W-통계량, AD-통계량, KS-통계량 (문제 해결) (치우침 심함) - 정규변환, power transformation 기반 SAS R PROC IMPORT DATAFILE="C:DATA SMSA.CSV" OUT=SMSA DBMS=CSV; GETNAMES=YES; RUN; ds=read.csv("SMSA.csv") attach(ds) Y * = Y 3 , left Y 2 , mild left Y , mild right ln( Y ), right 1/ Y , severe right 한남대학교 권세혁교수 http://wolfpack.hnu.ac.kr / Page 1 11

Transcript of ds=read.csv(SMSA.csv) GETNAMES=YES;...

Page 1: ds=read.csv(SMSA.csv) GETNAMES=YES; attach(ds)wess.hannam.ac.kr/2015_Spring/LM/LM_단순회귀_예제.pdf · 2015-03-26 · Linear Model Spring 2015 단순회귀예제 예제 데이터

Linear Model Spring 2015 단순회귀예제

예제 데이터

💾 SMSA.csv : 종속변수 Mortality, 설명변수 Nonwhite 비백인 비율

순서1) 데이터 준비

(진단내용 및 도구)

•종속변수, 설명변수 히스토그램 : 종모양 분포 검증, 봉우리가 2개 인 경우는 서로 다른 집단이 있다는 것을 의미하므로

•정규성 검정 - SW W-통계량, AD-통계량, KS-통계량

(문제 해결)

•(치우침 심함) - 정규변환, power transformation 기반

SAS R

PROC IMPORT DATAFILE="C:\₩DATA\₩SMSA.CSV" OUT=SMSA DBMS=CSV; GETNAMES=YES; RUN;

ds=read.csv("SMSA.csv") attach(ds)

Y * =

Y 3, leftY 2, mild left

Y , mild rightln(Y ), right

1/Y , severe right

⎜⎜⎜⎜⎜⎜⎜

한남대학교 권세혁교수 http://wolfpack.hnu.ac.kr / Page1 11

Page 2: ds=read.csv(SMSA.csv) GETNAMES=YES; attach(ds)wess.hannam.ac.kr/2015_Spring/LM/LM_단순회귀_예제.pdf · 2015-03-26 · Linear Model Spring 2015 단순회귀예제 예제 데이터

Linear Model Spring 2015 단순회귀예제

SAS R

PROC UNIVARIATE DATA=SMSA NORMAL PLOT; VAR MORTALITY NONWHITE; RUN;

library(car) scatterplotMatrix(~Mortality+NonWhite, main="Scatter Plot") library(nortest) ad.test(Mortality) ad.test(NonWhite)

Mortality 정규분포 OK, 비백인 비율 우로 치우침 => 해결 (제곱근, 로그 변환)

=

=

=

=

한남대학교 권세혁교수 http://wolfpack.hnu.ac.kr / Page2 11

Page 3: ds=read.csv(SMSA.csv) GETNAMES=YES; attach(ds)wess.hannam.ac.kr/2015_Spring/LM/LM_단순회귀_예제.pdf · 2015-03-26 · Linear Model Spring 2015 단순회귀예제 예제 데이터

Linear Model Spring 2015 단순회귀예제

순서2) 산점도 그리기

(진단내용 및 도구)

•종속변수와 설명변수 함수관계

•이상치 & 영향치 존재 여부 사전 진단

(문제 해결)

•선형 관계가 아니면 선형변환

SAS R

DATA SMSA0; SET SMSA; S_NW=SQRT(NONWHITE); RUN;

ad.test(sqrt(NonWhite)) ad.test(log(NonWhite))

R 실행결과 제곱근 변환이 더 적절 (ad-통계량의 유의확률이 높음=변환 데이터가 더 정규분표에 가까움)하여 SAS에서는 PROC UNIVARIATE 재실시하지 않았음.

한남대학교 권세혁교수 http://wolfpack.hnu.ac.kr / Page3 11

Page 4: ds=read.csv(SMSA.csv) GETNAMES=YES; attach(ds)wess.hannam.ac.kr/2015_Spring/LM/LM_단순회귀_예제.pdf · 2015-03-26 · Linear Model Spring 2015 단순회귀예제 예제 데이터

Linear Model Spring 2015 단순회귀예제

SAS R

PROC REG DATA=SMSA; MODEL MORTALITY=NONWHITE; RUN;

plot(sqrt(NonWhite),Mortality, main="Scatterplot") #산점도 abline(lm(Mortality~sqrt(NonWhite))) #적합선 fit=lm(Mortality~sqrt(NonWhite)) # 회귀추정 library(car) crPlots(fit) #Compent + Res. vs. X

=

종속변수와 설명변수 산점도 : 직선의 경향을 보임

성분+잔차 산점도 : 직선의 경향을 보이고있으나 설명변수가 작은 값에서는 이상치 존재로 인하여, 변동에 의함

한남대학교 권세혁교수 http://wolfpack.hnu.ac.kr / Page4 11

Page 5: ds=read.csv(SMSA.csv) GETNAMES=YES; attach(ds)wess.hannam.ac.kr/2015_Spring/LM/LM_단순회귀_예제.pdf · 2015-03-26 · Linear Model Spring 2015 단순회귀예제 예제 데이터

Linear Model Spring 2015 단순회귀예제

순서3) 잔차 진단

(목적) 오차항의 가정(정규성, 등분산성, 독립성)과 모형의 선형성 파괴 진단

(모형 선형성 Linearity)

(진단 도구 및 방법)

(1) 원변수 산점도 : 직선함수 관계 이외 관계 보임

(2) (스튜던트) 잔차와 적합치 산점도 -

(3) 성분+잔차 산점도 : 적합 직선 회귀식과 추정 함수식과 일치

(문제해결)

(1) 선형 변환 Linear Transformation

SAS R

이전 프로그램에 의해 출력됨 summary(fit) #추정 결과 출력

NonWhite 설명변수의 유의확률이 <0.0001이므로 유의, 비백인 비율이 높을수록 사망지수는 높아짐 (회귀계수 4.4로 양이므로) 모형 설명력은 41.4% - 사망지수에 대한 설명력을 높이는 것이 목적이면 추가 설명변수가 필요하거나 이상치 진단 및 해결이 필요

한남대학교 권세혁교수 http://wolfpack.hnu.ac.kr / Page5 11

Page 6: ds=read.csv(SMSA.csv) GETNAMES=YES; attach(ds)wess.hannam.ac.kr/2015_Spring/LM/LM_단순회귀_예제.pdf · 2015-03-26 · Linear Model Spring 2015 단순회귀예제 예제 데이터

Linear Model Spring 2015 단순회귀예제

변환 없음 제곱근 변환 EXP 변환 1/Y 변환 제곱항 삽입

한남대학교 권세혁교수 http://wolfpack.hnu.ac.kr / Page6 11

Page 7: ds=read.csv(SMSA.csv) GETNAMES=YES; attach(ds)wess.hannam.ac.kr/2015_Spring/LM/LM_단순회귀_예제.pdf · 2015-03-26 · Linear Model Spring 2015 단순회귀예제 예제 데이터

Linear Model Spring 2015 단순회귀예제

(오차 등분산성)

(진단 도구 및 방법)

(1) 원변수 산점도 : 산점도 Fan 모양

(2) (스튜던트) 잔차와 적합치 산점도 - Fan 모양

(3) 성분+잔차 산점도 : Fan 모양으로 벗어남

(문제해결)

(1) 설명변수로 모형 나누기

(2) WLS 가중치 최소자승법법 사용

(오차 정규성)

(진단 도구 및 방법)

(1) 잔차의 정규성 검정

(문제해결)

(1) 오차항이 정규뷴포를 따르지 않으므로 종속변수 정규변환 필요

(2) 원 변수에 대한 정규성 검정 사전 실시하고 분석 시작하므로 문제가 되지 않음

(오차 독립성)

(진단 도구 및 방법)

(1) 잔차의 자기상관 Durbin-Watson 통계량

(문제해결)

(1) 종속변수 전기 항( ) 설명변수에 삽입

(2) 시계열 데이터만 검정

yt−1

한남대학교 권세혁교수 http://wolfpack.hnu.ac.kr / Page7 11

Page 8: ds=read.csv(SMSA.csv) GETNAMES=YES; attach(ds)wess.hannam.ac.kr/2015_Spring/LM/LM_단순회귀_예제.pdf · 2015-03-26 · Linear Model Spring 2015 단순회귀예제 예제 데이터

Linear Model Spring 2015 단순회귀예제

SAS R

PROC REG DATA=SMSA; MODEL MORTALITY=NONWHITE; OUTPUT OUT=OUT2 RSTUDENT=RT; RUN; PROC UNIVARIATE DATA=OUT2 NORMAL; VAR RT; RUN;

library(MASS) s_res=studres(fit) #스튜던트 잔차 plot(fit$fitted,s_res,main="Residual Scatter") #잔차 산점도 abline(0,0) #적합선 ad.test(s_res) #정규성 검정 ncvTest(fit) #등분산성 검정 durbinWatson(fit) #독립성검정

1) 잔차 산점도 no pattern - 선형성 오케이 2) 등분산성 패스 3) 정규성 패스 4) 시계열 데이터가 아니므로 독립성 진단 필요 없음

한남대학교 권세혁교수 http://wolfpack.hnu.ac.kr / Page8 11

Page 9: ds=read.csv(SMSA.csv) GETNAMES=YES; attach(ds)wess.hannam.ac.kr/2015_Spring/LM/LM_단순회귀_예제.pdf · 2015-03-26 · Linear Model Spring 2015 단순회귀예제 예제 데이터

Linear Model Spring 2015 단순회귀예제

순서4) 이상치 영향치 진단

(목적) 오차항의 가정(정규성, 등분산성, 독립성)과 모형의 선형성 파괴 진단

(진단 도구 및 방법)

(1) 스튜턴트 잔차 이상

(2) 레버러지 이상

(문제해결)

(1) 이상치 제거

(2) 영향치 : 주변 값 데이터 수집, 영양치 이유 분석

±2

h = (p +1) / n = 2 / 60 = 0.33

SAS R

PROC REG DATA=SMSA; MODEL MORTALITY=NONWHITE/R INFLUENCE; RUN;

influencePlot(fit,main="Outliers") #이상치_영향치 진단 studres(fit) #스튜던트 잔차 hatvalues(fit) #레버러지

영향치 : 4개 (2개는 매우 극단) 이상치 : 4개 1개는 극단단

R 출력결과 6번 영향치 37번 이상치, 영향치 49번 이상치

한남대학교 권세혁교수 http://wolfpack.hnu.ac.kr / Page9 11

Page 10: ds=read.csv(SMSA.csv) GETNAMES=YES; attach(ds)wess.hannam.ac.kr/2015_Spring/LM/LM_단순회귀_예제.pdf · 2015-03-26 · Linear Model Spring 2015 단순회귀예제 예제 데이터

Linear Model Spring 2015 단순회귀예제

순서5) 모형 최종 결론

진단된 이상치를 제외하여 최종 모형을 얻는다.

한남대학교 권세혁교수 http://wolfpack.hnu.ac.kr / Page10 11

SAS 결과의 RStudent (스튜던트 잔차) Hat (레버러지) 값을 활용하면 됨

이상치 2,16, 56, 46(*) 제거 다시 (32, 37) 제외 -> (5, 47 제외) 영향치가 2개 존재 *)

Page 11: ds=read.csv(SMSA.csv) GETNAMES=YES; attach(ds)wess.hannam.ac.kr/2015_Spring/LM/LM_단순회귀_예제.pdf · 2015-03-26 · Linear Model Spring 2015 단순회귀예제 예제 데이터

Linear Model Spring 2015 단순회귀예제

SAS R

PROC REG DATA=SMSA; MODEL MORTALITY=NONWHITE/R INFLUENCE; REWEIGHT OBS.=2; REWEIGHT OBS.=16; REWEIGHT OBS.=49; REWEIGHT OBS.=56; REWEIGHT OBS.=32; REWEIGHT OBS.=37; REWEIGHT OBS.=5; REWEIGHT OBS.=47; RUN;

ds1=ds[-56,];ds2=ds1[-49,];ds3=ds2[-47,];ds4=ds3[-37,] ds5=ds4[-32,];ds6=ds5[-16,];ds7=ds6[-5,];ds8=ds7[-2,] #이상치 제거 ds9=ds8[-2,] #다시 제거하였음 attach(ds9) fit0=lm(Mortality~sqrt(NonWhite)) #추정 summary(fit0) influencePlot(fit0,main="Outliers") #이상치

(R기준, 이상치 하나 더 제거) 최종적합모형 :

비백인 비율이 높아지면 사망률지수가 높아짐 - 백인의 경우 소득이 높고 안전한 생활을 추구하므로 사망률 지수가 낮아지게 된다. 결정계수가 50%로 낮으므로 사망률 지수 변동을 80% 이상 설명하는 모형을 찾는 것이 목적이라면 추가 설명변수 탘색이 필요함

M = 851.3+ 28.6 * NW (R2 = 50%) (t = 6.93, p < 0.001)

한남대학교 권세혁교수 http://wolfpack.hnu.ac.kr / Page11 11