BookmarkSubscribeRSS Feed
choi1
Calcite | Level 5

A처럼 되어있는 데이터셋을 proc transpose를 이용해서 B처럼 바꾸고 싶은데, 어떻게 하면 좋을까요??

원래 dataset이 훨씬 큰데, 일단 질문용으로 간단하게 축약해서 올렸습니다!!

부탁드려요^^

 

A

_NAME_101102
rate1_201915.832.5

rate1_2018

16.785.2
rate1_201716.436.1
rate2_201917.115.3

rate2_2018

48.932.4
rate2_201751.375.2
rate3_201984.565.1

rate3_2018

25.532.1
rate3_201769.523.1

 

B

year101_rate1101_rate2101_rate3102_rate1102_rate2102_rate3
201915.817.184.532.515.365.1
201816.748.925.585.232.432.1
201716.451.369.536.175.223.1
2 REPLIES 2
Chulgyu1
SAS Employee

Transpose Procedure를 2번 사용하면 됩니다. 

사용할 때, ID 문장 또는 BY 문장을 적절하게 사용해야 원하는 결과를 쉽게 얻을 수 있을 것 같네요.

아래 코드 참고하세요.

data work.a;
	infile datalines truncover missover;
	input _name_:$20. _101 _102;
	datalines;
rate1_2019 15.8 32.5
rate1_2018 16.7 85.2
rate1_2017 16.4 36.1
rate2_2019 17.1 15.3
rate2_2018 48.9 32.4
rate2_2017 51.3 75.2
rate3_2019 84.5 65.1
rate3_2018 25.5 32.1
rate3_2017 69.5 23.1
;
run;

proc sort data=work.a;
	by _name_;
run;

proc transpose data=work.a(rename=(_name_=org_name)) out=work.a1;
	by org_name;
	var _101 _102;
run;

data work.a2;
	length _name_ $ 32 year $ 4;
	set work.a1;
	length year $ 4;
	year=scan(org_name,-1,"_");
	_name_=trim(_name_)||"_"||scan(org_name,1,"_");
	drop org_name;
run;

proc sort data=work.a2;
	by year _name_;
run;

proc transpose data=work.a2 out=work.b(drop=_name_);
	by year;
	var col1;
run;
LeeKiWon
Fluorite | Level 6

1. 거시경제변수를 이용하여 부도율을 산출하는 다항회귀모형을 만들었습니다.

잔차의 등분산성등을 고려하여 BOX-COX 변환을 하였고, 아래와 같이 회귀식을 만들었습니다.

 

첫번째:

1/Y = 0.4360x + 0.25258x2^2 - 0.013x3^2 + 28.8454 => 2차항이 포함된 다항회귀모형

여기에서 x = 선행종합지수, x2 = 국고채 금리, x3 = 주택매매가격지수, Y(종속변수) = 부도율 입니다.

 

이럴때 상식적으로 선행종합지수와 주택매매가격지수는 부도율과 Negative 입니다.(경기가좋아지면 부도율하락 및 분석 데이타 기준)

반대로 국고채 금리는 부도율과 Positive 입니다.(금리가 오르면 돈을 갚기 어려워지고 부도상승, 분석 데이타 기준)

 

R-Square = 89%, 잔차의 등분산성 정규성 모두 만족하는 결과입니다.

 

(종속변수가 1/Y 임을 고려)

그런데 위 회귀식을 보면 x 선행종합지수는 상승하면 부도율은 하락하니(Negative방향성) 맞으나,

국고채금리 x2는 상승하면 부도율이 올라야 상식적이지만 위 회귀식에서는 반대로 Y값은 하락하게 되어있고

주택매매가격지수 x3는 -회귀계수로, 상승하면 부도율이 하락하는게 맞지만 위 회귀식에서는 Y값은 상승하는

회귀식을 도출했습니다.

즉 x(선행종합지수) 방향정상, (x2국고채금리, x3주택매매가격지수)는 상식적으로 방향성 이해가 안됨.

 

이런 결과가 도출 되는게 어떻한 이유에서 그런지? 절편값이 상대적으로 커서 그런건지 상식적이지 않은 회귀식을 얻어서 문의 합니다. 어떻게 해석을 해야 맞는 걸까요?

 

두번째:

BOX-COX 변환한 1/Y를 역변환 하는 코드가 어떻게 되는지요? 아시는 바와같이 회귀식의 결과를 추후 적용하기

위해서는 Y값을 얻는 코드는 어떻게 되는지 궁금합니다.

 

많은 의견 부탁 드립니다. 감사합니다.

Catch up on SAS Innovate 2026

Nearly 200 sessions are now available on demand in the Innovate Hub.

Watch Now →
Discussion stats
  • 2 replies
  • 1773 views
  • 0 likes
  • 3 in conversation