본문 바로가기

코딩 - R (계량경제학)

계량경제학 3장 단순회귀모형

2005년 1인당 GDP 값과 1인당 이산화탄소 배출량을 나타낸 통계량

네 가지 변수, 행/렬의 길이를 알아보았따.
ccode: 국가 코드
cname: 국가 이름
gdppcppp:구매력(PPP)로 나타낸 1인당 GDP(달러)
co2pc:1인당 CO2 배출량(톤)
표본크기=183

head()/tail():처음 몇 관측치들 보기

요약통계량

2005년 gdpcppp의 최솟값은 476.7, 최댓값은 102,253.1 등등을 알 수 있음.

관측치별로 그래프를 그려보자

오른쪽 꼭대기의 점을 제외하면 곡선이 아래로 휘는 것처럼 보이지 않는군

우리나라 군(郡)별 공무원 수와 재정자립도

datadir<-"http://econ.korea.ac.kr/~chirokhan/book/data"
serv<-read.csv(file.path(datadir,"serv.csv"))
nrow(serv)
summary(serv)


finind: 재정자립도, servpc:공무원 비율

plot(finind~servpc,data=serv,subset=servpc<28)
인구 1천명당 공무원수가 28명 미만인 곳들을 대상

해석: 대체로 공무원 비율이 높을수록 재정자립도가 낮아 보인다. 하지만 원인이라 할 수 없다 (도별로 산업, 지방자치단체 규모 등이 다르기에 비교하기 어려움)

3.2 최소제곱법
주어진 점들(자료)가 있을 떄, 여기에 직선을 그리는 방법으로 가장 널리 사용되는 최소제고법(least squares)는, 가 ㄱ점들로부터 직선에 이르는 수직방향거리를 제곱하여 합한 값을 가장 작게 만들도록 절편(beta0)와 기울기(beta1)을 결정하는 것.

패키지를 설치하고

최소제곱법에 따른 직선
abline(lm(finind~servpc,data=serv1),lty=1)

최소절대편차법에 따른 직선
abline(rq(finind~servpc,data=serv1),lty=2)

공무원 비율과 재정자립도
재정자립도=beta0 + beta1공무원비율 + 오차항
라는 모형을 앞에서 살펴보았다.
재정자립도와 공무원 비율에 로그를 취하여

log(재정자립도)=beta0 + beta1*log(공무원비율) + 오차항

  1. R의 자동 추정기능을 사용
    serv1<-serv[serv$servpc<28,] # 인구 1천명 당 공무원 수(servpc)가 28명 미만인 지역

    nrow(serv1)
    [1] 84 # 표본 수 84

lm(log(finind)~log(servpc),data=serv1)

Call:
lm(formula = log(finind) ~ log(servpc), data = serv1)

Coefficients:
(Intercept) log(servpc)
4.7675 -0.8212

lm으로 시작하는 명령어는 '~' 좌변의 log(finind)를 그 우변의 log(servpc)로 회귀하는 명령어. 13번째 줄의 절편 추정값 4.7675, 기울기 추정값은 -0.8212가 나왔다.

해석하면, 여타 요소가 동일할 때, 공무원 비율이 10% 높은 지역의 재정자립도가 약 8.2% 낮은 것으로 추정된다.

plot(log(finind)log(servpc),data=serv1)
abline(lm(log(finind)
log(servpc),data=serv1))

log(재정자립도, finind)를 log(공무원비율, servpc)에 회귀한 결과

소비함수

Ecdat 패키지에는 Consumption이라는 자료가 있다. 1947년 1사분기부터 1996년 4사분기까지 캐나다의 개인가처분소득(yd, 1986 불변가격)과 개인소비지출(ce, 1986 불변가격)에 관한 것이다. 자동 엔진을 사용하여 소비지출을 가처분소득에 대하여 회귀하는 최소제곱 추정을 하자.

install.packages("Ecdat")

데이터 엄청 많다

lm(ce~yd,data=Consumption) # 개인소비지출(ce)를 가처분소득(yd)에 대하여 회귀

Call:
lm(formula = ce ~ yd, data = Consumption)

Coefficients:
(Intercept) yd
6000.2561 0.8618

두 변수간의 관계는 기울기 추정값 0.8618로 정의 관계이며, 절편 추정값은 6000.2561이므로 추정된 소비함수는

C=6000.2561+0.8618Y

한계소비성향(소득 yd가 1 증가할 때, 소비 ce가 증가하는 정도)는 0.8618이다.
그림으로 보자

plot(ceyd,data=Consumption,pch=19)
abline(lm(ce
yd,data=Consumption))

**자동화된 방식으로, log(공무원 비율)과 log(재정자립도)의 맞춘값과 잔차를 구하자

plot(ceyd,data=Consumption,pch=19)
abline(lm(ce
yd,data=Consumption))
ols<-lm(log(finind)log(servpc),data=serv1)
serv1$yhat<-ols$fitted.values
serv1$uhat<-ols$residuals
plot(log(finind)
log(servpc),data=serv1)
abline(ols)

with(serv1,sum(uhat))
[1] 4.839878e-16

잔차들의 합은 0에 가까움

제곱합
종속변수의 관착값(yi)이 그 표본평균(ybar)로부터 벗어난 편차를 제곱해서 합하면 표본 내에 종속변수으 ㅣ값이 어느 정도의 차이가 있는지 타나내는 지표(제곱변동총량)이 되며, 이를 총제곱합(Total sum of squares, SST=TSS)라고 한다.

SST=sum(i=1부터 n까지의)(yi-ybar)^2
SST가 0이라면 종속변수의 관측값들이 모두 동일
표본 내 개체별로 종속변수의 값들이 크게 다르다면 SST의 값은 클 것이다.
만일 종속변수가 로그형태이면 yt가 로그 형태이므로, 총제곱합은 로그값의 총제곱합
로그값으 ㅣ총제곱합을 변형해서 원래변수의 총제곱합을 구할 순 없다.

맞춘 값들이 자신의 표본평균으로부터 변동한 양의 제곱합은 종속변수값 중 독립변수에 의하여 설명된 부분에 얼마나 큰 차이가 있는지를 나타내며, 설명된 제곱합(Explained sum of squares, SSE)라고 한다.

나머지 제곱합, 잔차제곱합(Residual sum of squares,SSR)은 잔차값들이 자신의 표본평균으로부터 벗어난 편차를 제곱하여 합한 것. 직교방정식 때문에 잔차값들의 표본평균은 0이므로, SSR은
sum(i=1부터 n까지)(uhat^2)
SST-SSE=SSR

종속변수의 관측값들이 모형에 의하여 완벽히 설명되어 모든 i에서 uhati=0이라면 SSR은 0이 되고, 잔차들의 크기가 크면 SSR도 큰 값을 갖게 된다.

총제곱핪(SST)는 표본 내 종속변수 값들에 얼마만큼 차이가 있는지를 측정하는 하나의 방식
설명된 제곱합(SSE)는 그 중 설명변수에 의해 설명되는 부분
잔차제곱합(SSR)은 설명변수에 의해서 설명되지 않은 나머지 부분의 차이의 크기를 측정

R제곱: 모형의 설명력)
SST=SSE + SSR
식에서, 양 변을 SST로 나누면
1=SSE/SST + SSR/SST
이 중 SSE/SST는 종속변수의 ㅂ녀동총량 중 X에 의하여 설명된 부분의 비중이며, R제곱(R-Square) 또는 결정계수(Coefficient of determination) 이라고 한다.

R^2=SSE/SST=1-SSR/SST
모형에 절편이 존재하며 절편과 기울기가 모두 추정되면, R제곱은 음수가 될 수 없으며 1보다 클 수 없다, (0<=R^2<=1)

만약 어떤 자료로부터 구한 R제곱이 0.35라면, "표본 내 종속변수 값들의 차이의 35%가 설명변수에 의하여 설명된다". (설명변수=모형)

R에서 완전 자동으로 R제곱 확인
앞의 공무원 비율과 재정자립도의 관계를 표현하는 로그 모형으로부터 R제곱을 시각적으로 확인하기

summary(ols)

Call:
lm(formula = log(finind) ~ log(servpc), data = serv1)

Residuals:
Min 1Q Median 3Q Max
-0.71501 -0.16710 0.02468 0.19709 0.63156

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 4.7675 0.2024 23.56 < 2e-16 ***

log(servpc) -0.8212 0.0815 -10.08 5.27e-16 ***

Signif. codes: 0 ‘*’ 0.001 ‘’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.2798 on 82 degrees of freedom
Multiple R-squared: 0.5532, Adjusted R-squared: 0.5478
F-statistic: 101.5 on 1 and 82 DF, p-value: 5.274e-16

Multiple R-squared: 0.5532
로그 재정자립도(종속변수가 로그 재정자립도)의 84개 군별 차이의 55.32%가 로그 공무원 비율에 의하여 설명된다.