BookmarkSubscribeRSS Feed

[SAS 활용 노하우] 추론과정을 통한 데이터 분석 1

Started ‎04-30-2022 by
Modified ‎04-30-2022 by
Views 3,289

 

이번 게시글은 다중 선형 회귀 분석, 분산 분석, 공분산 분석을 포함한 다양한 선형 모델을 만들고 마지막으로 효과 선택에 대해 조금 알아보겠습니다. 선형 모델을 가정하고 적절한 PROC 단계를 사용하여 선형 모델을 생성하고 테이블과 통계 그래픽을 모두 생성한 다음 이전에 학습한 OUTPUT 문으로 중요한 모델 정보를 저장합니다.

선형 모델의 경우 그림 6.1과 같이 회귀, 다항식 회귀, 분산 분석 등을 위해 R의 LM 함수를 사용합니다.

그냥 AS만 붙이면 돼Factor 함수는 분류 변수와 연속형 변수가 모두 있는 경우 분류 변수 및 공분산 분석을 나타냅니다.

모형 개체에 적용된 분산 분석, 요약 및 플롯 함수를 재현하는 방법에 대해 알아봅니다.

 

 

 

 

 

 

Proc Reg

PROC REG는 단순 선형 회귀 또는 다중 선형 회귀 모델을 만드는 데 사용할 수 있습니다.

PROC REG에서, 연속 예측 변수(continuos predictors)만 지정합니다.

예측 변수로 더미 변수를 사용하여 분류 변수를 만들기 위해서는 SAS의 PROC GLM을 사용합니다.

 

 

 

PROC REG DATA=data-set-name;
MODEL dependent-variable = regressors </ options>;
RUN; QUIT;

 

 

 

 

 Simple Linear Regression

 

 

proc reg data=ameshousing;
  model saleprice = gr_liv_area;
run;quit;

 

 

위의 예시는 ameshousing 데이터 세트를 사용하여 간단한 선형 회귀 모델을 만들고 있습니다.

sales price(종속변수) 를 예측하기 위해 gr_liv_area(독립변수)를 사용한 모델입니다.

종속 변수는 왼쪽(saleprice)에 있으며 모델의 모든 회귀 변수와 동일하게 설정합니다.

이 경우 gr_liv_area가 하나만 있으며 예측자를 추가하기 위해 더하기 기호를 사용할 필요가 없고 등호 뒤에 나열하기만 하면 됩니다.

 

 2fcf8457-5679-4205-a0cd-59e8aafbf912.png

 

 image (3).png

 

image (4).png

 

 

image (5).png

 

 

 

 

 

PROC REG는 기본적으로 SUMMARY 및 ANOVA 함수에 적용된 것과 동일한 출력 결과가 나타납니다.

모델 개체(예: 분산 분석 테이블을 얻을 때) 및 매개변수 추정 표준 오차, t 값 및 p-값 포함, 루트 평균과

제곱 오차, R 제곱 등 기본적으로 PROC REG는 진단 패널을 제공하며 이 중 많은 부분정보는 R에서 모델 객체를 플로팅하는 것과 동일합니다.

Residual by Predicted 플롯을 얻을 수 있고 R은 예측 값으로 잔차를 스튜던트화하고, R은 레버리지로 잔차를 스튜던트화하는 식입니다. 패널 없이 기본 출력을 개별적으로 표시하려면 PRORCREG 문의 PLOTS(언팩) 옵션을 사용합니다.

R에서 모델 객체를 플로팅하여 얻을 수 없는 한 가지 출력은 관찰에 의한 Cook의 거리 플롯이지만 이것은 모델에서 관찰이 제거될 때 예측 점수가 어떻게 변하는지에 대한 측정이므로 이상값을 식별하려고 합니다. 125 observations 에서 Cook's Distance가 매우 커서 이것이 가능한 이상치임을 나타냅니다.

기본적으로 Residual by the Predictor Value 그래픽을 가져오므로 모델에 있는 모든 회귀 변수에 대해 단일 Residual by Regressor 플롯을 생성합니다. 단순 선형 회귀 모델을 수행하는 경우 SAS는 계속 진행하여 단순 선형 회귀 플롯을 제공합니다. 기본적으로 가장 잘 맞는 라인, 신뢰 한계 및 예측 한계에 고정됩니다.

 

 

Polynomial Regression

# preparation for polynomial Regression

 

 

data mydata;
     set mydata;
     x2 = x**2; x3 = x**3; x4 = x**4; x5 = x**5;
run;

 

 

 

 

SAS에서 다항식 회귀를 수행하려면 R에서와 같은 방식으로 시작해야 합니다. 특히, 해당 회귀자를 기존 SAS 데이터 세트에 추가합니다. 프로그램 6.2에서 x제곱, x를 더하는 것을 볼 수 있습니다.

제곱하여 x에서 5제곱까지 제곱합니다. 우리는 이러한 다항식 회귀자를 데이터 세트에 추가하고 있습니다. 그런 다음 PROC REG에서 사용할 수 있습니다.

PROC PLM

 

STORE item-store-name;

 

 

 

PREDICT 기능을 재현하기 위해 PLM 절차를 사용하여 새 SAS 데이터 세트에 점수를 매길 수 있습니다.

R에서와 같은 방식으로 시작합니다. 특히 R에서 모델 객체를 만듭니다.

SAS에서는 다음 구문을 사용하여 프로시저 내부에 STORE 문이 있는 모델을 저장합니다.

 

proc reg data=ameshousing;
      ...
      store mymod;
run;

 

사용하려는 MODEL 문으로 PROC REG를 실행하고 저장합니다.

mymod 이름 아래에 STORE 문이 있는 모델. 모델을 저장하면 모델 객체를 PREDICT 함수에 전달하는 것처럼 PLM 프로시저에 전달할 수 있습니다.

 

 

PROC PLM RESTORE=item-store-specification;
    SCORE DATA=new-data-set
        OUT =predicted-data-set <keywords>;
RUN;

 

 

STORE 문은 프로시저가 통계 분석의 컨텍스트와 결과를 저장하도록 요청합니다.

결과 항목 저장소에는 수정할 수 없는 이진 파일 형식이 있습니다. 항목 저장소의 내용은 PLM 절차로 처리할 수 있습니다.

R 스크립트에서 모델 개체를 PREDICT 함수에 전달한 다음 점수를 매길 새 데이터 세트를 전달했습니다. SAS에서는 다음 구문과 함께 RESTORE= 옵션을 사용하여 모델을 PLM 프로시저에 전달할 수 있습니다.

 

 

 

proc plm restore=mymod;
    score data=newdata out=pred;
run;

 

 

 

 

SAS 프로시저 PROCREG의 STORE 문에서 지정한 mymod를 restore 합니다.

SCORE 문을 사용하고 DATA= 옵션을 지정하여 점수를 매기고 있는 새 SAS 데이터 세트(이 경우 새 데이터)를 SAS에 알립니다. SAS는 RESTORE 옵션에 지정된 모델을 사용하여 새 데이터 집합의 값을 예측합니다. OUT= 옵션을 사용하여 새 점수 값을 저장할 수도 있습니다. 우리는 예측된 것을 위해 새로운 데이터 세트를 pred라고 부르고 있다.

PROC PLM SCORE 문에 많은 다른 키워드를 전달하여 다른 출력을 생성할 수도 있습니다.

예측 값, 표준 오차, 잔차, 신뢰 한계 및 예측 한계를 생성할 수 있습니다.

 

 

 

 

 image.png

 

 

 

모델을 저장하기 위한 STORE 문은 대부분의 SAS/STAT 프로시저에서 지원됩니다.

PROC REG, GLM, GLMSELECT, LOGISTIC, GENMOD 및 MIXED에서 사용합니다.

모델을 생성하는 절차에서 바로 데이터에 점수를 매길 수 있는 절차입니다.

특히 PROC GLMSELECT 및 PROC LOGISTIC에서 SCORE 문을 사용하여 PROC PLM 사용을 우회할 수 있습니다.

모델링 절차에서 항상 STORE 문을 사용한 다음 이를 PROC PLM에 전달하여 새 데이터 세트의 점수를 매길 것입니다.

이것은 R에서 PREDICT 함수를 사용하는 것과 매우 유사하지만 GLMSELECT 및 LOGISTIC 프로시저 모두에서 SCORE 문을 알고 있어야 합니다.

PROC GLM

PROC REG에서 일반 선형 모델을 나타내는 PROC GLM으로 이동합니다.

이 경우 분산 분석과 공분산 분석을 수행합니다. PROC GLM에서 분류 변수를 사용할 수 있습니다.

 

 

 

PROC GLM DATA=data-table-name;
     CLASS variables <options>;
     MODEL dependent-variable = independent-variables </options>;
RUN;

 

 

 

ameshousing 데이터 세트로 작업합니다.

분산 분석을 수행하려면 heating_qc(품질 관리용)를 활용합니다. 이 변수에는 우수, 양호, 평균 및 보통의 네 가지 수준이 있습니다. 분류 변수임을 SAS에 명시적으로 알리려면 CLASS 문을 사용하고 변수heating_qc를 지정합니다.

 

 

proc glm data=ameshousing;
     class heating_qc (ref='Fa');   /*1*/
     model saleprice = heating_qc / solution; /*2*/
run;quit;

 

 

 1. CLASS 문은 R의 AS.FACTOR 함수와 동일하므로 각 분류 수준에 대한 디자인 행렬에 열을 생성하게 됩니다. 괄호 안의 옵션으로 참조 수준을 지정합니다. 공정을 위해 Fa와 동일하게 설정합니다. 소문자를 구분하며 데이터 세트에 표시된 대로입니다.

2. PROCREG와 동일한 방법으로 MODEL 문을 사용하고 있으며, 판매가격은 분류 변수인 heating_qc와 동일하게 설정합니다.

 

 

 image (6).png

 

image (7).png

 

image (9).png

 

image (8).png

 

 

 

 

 

분산 분석표를 보여 주며, 이 표에는 전체적으로 유의한 F 검정이 포함되어 있습니다. 또한 R 제곱, 변동 계수, 제곱근 평균 오차 및 평균 판매 가격도 얻을 수 있습니다.

SAS는 단방향 분산 분석을 수행하고 있다는 것을 알고 있으므로 이 경우 병렬 상자 플롯을 출력합니다.

우수의 경우 평균 판매 가격이 Good, Average 및 Fair보다 높은 것으로 나타납니다. Good과 Average는 상당히 유사합니다. Fairheating_qc(최저 수준)의 판매 가격은 최저 판매 가격과 연결됩니다.

SAS는 단방향 분산 분석을 수행하고 이 경우 병렬 상자 플롯을 출력합니다.

우수의 경우 평균 판매 가격이 Good, Average 및 Fair보다 높은 것으로 나타납니다. Good과 Average는 상당히 유사한 것 같습니다. 물론, Fairheating_qc(최저 수준)의 판매 가격은 최저 판매 가격과 연결됩니다.

모범 사례로 MODEL 문의 SOLUTION 옵션을 사용하여 매개변수 추정 테이블을 인쇄합니다.

절편, 4개 수준, 추정치, 표준 오차, t 값 및 p-값을 표시합니다. 각 요소에 문자 B가 있는 가운데 열에 주목하십시오. 이는 단순히 해당 항이 고유하게 추정할 수 없고 해당 매개변수를 개별적으로 추정하기 위한 예측 변수의 선형 조합이 없음을 의미합니다.

Means Statement

 

MEANS class-variable < / HOVTEST=test-name >;

 

 

 PROC GLM에서 사용할 수 있는 다양한 명령문이 있으며 MEANS 문을 사용하여 다음 구문을 사용하여 분류 변수(이 경우 heating_qc)를 지정해 보겠습니다.

 

proc glm data=ameshousing;
...
means heating_qc / hovtest=bf;
run;quit;

 

image (10).png

 

 

각 수준의 관측치 수를 보여줍니다(예: 우수에는 107개의 관측치가 있음). 그리고 평균과 표준편차를 줍니다. MEAN 문을 사용하는 또 다른 이유는 분산 테스트의 동질성인 HOVTEST 옵션을 사용할 수 있습니다.

 

Version history
Last update:
‎04-30-2022 08:36 AM
Updated by:
Contributors

sas-innovate-wordmark-2025-midnight.png

Register Today!

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.


Register now!

Article Labels
Article Tags