[회귀분석2] Non-linear Regression Models assignment #1

서울시립대학교 김규성 교수님의 회귀분석2 강의안 및 과제를 기반으로 작성한 문서입니다.

2020년 2학기에 회귀분석2 과목을 수강하며 제출했던 과제들을 리뷰한다.
학기가 끝난 지 얼마 되지도 않았는데 그새 다 까먹어서 황당하다..
SAS 코드는 각 문제 하단에 첨부하였다.

Q1.

주어진 데이터를 아래 모형에 적합시키자.

yi=exp(θ1x1exp[θ2(1x21620)])+ϵi,i=1,...,38y_i = exp(-\theta_1x_1exp[-\theta_2(\frac{1}{x_2}-\frac{1}{620})])+\epsilon_i, i=1, ..., 38

(a) 회귀계수 θ1,θ2\theta_1, \theta_2

θ1=0.00376,θ2=27593.0\theta_1=0.00376, \theta_2=27593.0


(b) 잔차제곱합(MSE) 추정

MSE=SSEnp=0.000119MSE=\frac{SSE}{n-p}=0.000119


(c) 잔차그림

  • 설명변수 x1x_1
  • 설명변수 x2x_2

소스코드

마크다운 코드블럭에서 SAS는 지원하지 않는 관계로 그나마 비슷한 SQL로 작성했다.

/* Q1 */
data ex1;
input x1 x2 y;
cards;
120	600	0.9
60	600	0.949
60	612	0.886
120	612	0.785
120	612	0.791
60	612	0.89
60	620	0.787
30	620	0.877
15	620	0.938
60	620	0.782
45.1	620	0.827
90	620	0.696
150	620	0.582
60	620	0.795
60	620	0.8
60	620	0.79
30	620	0.883
90	620	0.712
150	620	0.576
60	620	0.802
60	620	0.802
60	620	0.804
60	620	0.794
60	620	0.804
60	620	0.799
30	631	0.764
45.1	631	0.688
40	631	0.717
30	631	0.802
45	631	0.695
15	639	0.808
30	639	0.655
90	639	0.309
25	639	0.689
60.1	639	0.437
60	639	0.425
30	639	0.638
30	639	0.659
;

proc nlin data=ex1 method=newton;
model y = exp(-b1*x1*exp(-b2*(1/x2-1/620)));
parms b1=0.01155 b2=5000 ; 
output out =ex1_out p=pred r=resid;
run; quit;

proc nlin data=ex1 method=gauss;
model y = exp(-b1*x1*exp(-b2*(1/x2-1/620)));
parms b1=0.01155 b2=5000 ; 
output out =ex1_out p=pred r=resid;
run; quit;

proc sgplot data = ex1_out;
scatter x=x1 y=resid;
proc sgplot data = ex1_out;
scatter x=x2 y=resid;
proc sgplot data = ex1_out;
scatter x=pred y=resid;
run; quit;

Q2.

주어진 데이터를 아래 모형에 적합시키자.

yi=θ1θ3x11+θ1x1+θ2x2+ϵiy_i=\frac{\theta_1\theta_3x_1}{1+\theta_1x_1+\theta_2x_2} +\epsilon_i

(a) 회귀계수 θ1,θ2\theta_1, \theta_2

θ1=3.5691,θ2=12.7959,θ3=0.6295\theta_1=3.5691, \theta_2=12.7959, \theta_3=0.6295


(b) 잔차제곱합(MSE) 추정

MSE=SSEnp=0.000788MSE=\frac{SSE}{n-p}=0.000788

residual plot은 생략한다.

소스코드

/* Q2 */
data ex2;
input x1 x2 y;
cards;
1	1	0.126
2	1	0.219
1	2	0.076
2	2	0.126
0.1	0	0.186
3	0	0.606
0.2	0	0.268
3	0	0.614
0.3	0	0.318
3	0.8	0.298
3	0	0.509
0.2	0	0.247
3	0.8	0.319
;

proc nlin data = ex2 method = newton plots = (fit diagnostics) ; 
model y = b1*b3*x1 / (1 + b1*x1 + b2*x2);
parms b1=2.9 b2=12.2 b3=0.69;
output out =ex2_out p = pred r=resid;
run; quit;

proc sgplot data = ex2_out;
scatter x=x1 y=resid;
proc sgplot data = ex2_out;
scatter x=pred y=resid;
run; quit;

깔끔하게 작성하고 싶은데 막상 쓰고 나서 읽어보니 지저분해 보인다.
벨로그는 어려워~!!~!~!

좋은 웹페이지 즐겨찾기