2014-07-09 6 views
1

proc genmod를 사용하여 제로 팽창 된 포아송 모델을 실행했으며 Proc PLM을 사용하여 테스트 데이터를 채점하려하지만이 오류가 발생합니다 :SAS에서 제로 팽창 된 포아송 회귀 모델을 사용하여 점수를 매길 수 없습니다

proc genmod data = train2; 
class region/param=glm; 
model response = var1 var2 var3 var4 var5 
        /dist=zip; 
        zeromodel; 
output out = zeropoisson_output predicted= estprobzip; 
store zero_poisson; 
run; 


proc plm source=zero_poisson; 
    score data = test2 out= pred_zip; 
run; 

오류 :이 버전의 PLM 절차에서는 0 점 팽창 모델링이 지원되지 않습니다.

이 문제를 해결하는 방법에 대한 아이디어가 있으십니까?

+0

SAS 버전은 무엇입니까? – Joe

+0

특히 SAS/STAT 버전은 무엇입니까? (SAS 9.22 이후부터는 별도의 릴리스 번호를 발행하기 시작했으며 SAS 9.3에서 나온 12.1로 시작합니다. – Joe

+0

SAS EG 4.3 을 사용하고 있지만 SAS Base는 9.3입니다. 추가 버전 정보를 얻는 방법이나 확실하지 않습니다. –

답변

0

상당히 많은 노력이 필요하지만 항상 ODS 출력 옵션을 사용하여 매개 변수 추정값을 가져 와서 거기에서 데이터를 구문 분석 할 수 있습니다. genmod의 SAS 예제에서 몇 가지 예제 데이터를 얻었고 계수를 저장하고 아래 구문을 통해 파싱하는 개념을 보여주었습니다. 출력은 유효성 검사 샘플을 채점하기 위해 모든 데이터 단계에 포함될 수있는 .sas 파일입니다.

data drug; 
    input drug$ x r n @@; 
    datalines; 
    A .1 1 10 A .23 2 12 A .67 1 9 
    B .2 3 13 B .3 4 15 B .45 5 16 B .78 5 13 
    C .04 0 10 C .15 0 11 C .56 1 12 C .7 2 12 
    D .34 5 10 D .6 5 9 D .7 8 10 
    E .2 12 20 E .34 15 20 E .56 13 15 E .8 17 20 
    ; 
run; 

ods output ParameterEstimates = ZIP_COEFF_EST; 
proc genmod data=drug; 
     class drug; 
     model r/n = x drug/dist = zip; 
     zeromodel; 
run; 
ods output close; 

data ZIP_COEFF_EST_Parsed; 
    length equation $ 2500; 
    set ZIP_COEFF_EST (rename=(estimate=coefficient)) end=last; 
    where coefficient ne .; 
    if upcase(Parameter) = "INTERCEPT" then do; 
     equation = " = " || trim(left(put(coefficient,20.10))); 
     output; 
    end; 
    else if LEVEL1 ne '' then do; 
     equation = " + (" || trim(left(Parameter)) || " = '" || trim(left(LEVEL1)) || "') * (" || trim(left(put(coefficient,20.10))) || ")"; 
     output; 
    end; 
    else do; 
     equation = " + " || trim(left(Parameter)) || " * (" || trim(left(put(coefficient,20.10))) || ")"; 
     output; 
    end; 
    if last then do; 
     equation=';'; 
     output; 
    end; 
    keep equation; 
run; 

data _null_; 
    set ZIP_COEFF_EST_Parsed; 
    FILE "C:/estimate_file.sas";; 
    PUT equation; 
run;