|
|
楼主

楼主 |
发表于 2008-2-1 17:18:04
|
只看该作者
各位老师,谁能帮我注解一下这段sas小程序
DATA A;
INPUT aa ry;
cards;
0.0 402.0
4.0 457.3
8.0 460.5
12.0 453.0
;
TITLE1 'Yield Response Data';
TITLE2 'LRP Model';
PROC NLIN DATA=A BEST=3;
PARMS A=400 to 500 by 10 B=0 to 30 by 1 K=0 to 12 by 4;
IF AA<K THEN DO;
MODEL RY = A + B*AA;
DER.A = 1;
DER.B = AA;
DER.K = 0;
END;
ELSE DO;
MODEL RY = A + B*K;
DER.A = 1;
DER.B = K;
DER.K = B;
END;
FILE PRINT;
IF _OBS_ = 1 AND _MODEL_= 0 THEN DO;
PLATEAU = A + B*K;
PUT PLATEAU=;
END;
PLATEAU = A + B*K;
ID PLATEAU;
OUTPUT OUT=NEW P=PRY PARMS=A B K SSE=SSE;
RUN;
PROC PLOT;
PLOT RY*AA='+' PRY*AA='*'/OVERLAY;
RUN;
/* For you information:
*/
/* This part of the program outputs Rsquares, significance,
plateau, */
/* and soil-test value at the joining point into a nice dataset.
*/
PROC MEANS NOPRINT;
VAR RY SSE A B K PLATEAU;
OUTPUT OUT=NEW2 N=TDF
MEAN=RY SSE A B K PLATEAU
CSS=CSST;
DATA NEW3; SET NEW2;
INTERCPT=A; SLOPE=B; JOINT=K;
RSQ=(CSST-SSE)/CSST;
EDF=TDF-3;
SSR=CSST-SSE;
MSR=SSR/2;
MSE=SSE/EDF;
F=MSR/MSE;
PROBF=1-(PROBF(F,2,EDF));
KEEP INTERCPT SLOPE JOINT PLATEAU RSQ F PROBF;
PROC PRINT;
RUN; |
|