前回パラメータの推定値から濃度応答曲線を作図しました。この時応答の信頼区間と予測区間も推定していますので、それをグラフに反映してみます。
bandplotステートメント
信頼区間または予測区間を作図するにはbandplotステートメント使用します。
bandplot x=変数 (またはy=変数)
limitupper=信頼上限または予測上限
limitlower=信頼下限または予測下限
;
「y=変数」にするとx変数の区間を表示します。たいていの場合はy変数の区間を表示したいので、「x=変数」を選ぶことが多いでしょう。
bandplotステートメントはデフォルトの場合上限と下限で囲まれた範囲を塗りつぶします。塗りつぶしは非表示にして上限と下限だけをラインで表示したい場合はオプションに「display=(outline)」を追加します。
複数の系列がある場合はgroupオプションで群変数を指定します。この時塗りつぶしを有効にしている場合はdatatransparencyオプションで透過度をあげておくと良いと思います。
また上限と下限のラインはデータポイント間はステートメントが保管してくれますが、その設定はtypeオプションで指定できます。カプランマイヤープロットのようなstepプロットの場合はtype=stepにする必要があるようです。
作図例
被験物質で処理した時の濃度応答曲線に信頼区間と予測区間を追加してみます。
proc template ;
define statgraph curve2;
dynamic _emax_1 _ec50_1 ;
begingraph; entrytitle "被験物質処理による細胞の応答変化";
layout overlay /
xaxisopts=(label="Log Agonist concentration (nmol/L)")
yaxisopts=(label="Response");
bandplot x=conc limitupper=ucl limitlower=lcl /
display=(outline)
outlineattrs=(color=black pattern=shortdash)
legendlabel="95% prediction interval"
name="pred";
bandplot x=conc limitupper=uclm limitlower=lclm /
legendlabel="95% confidence interval"
name="conf";
seriesplot x=conc y=estimate /
group=type
name="series";
layout gridded /
autoalign=(TOPLEFT TOPRIGHT)
columns=2 border=true;
entry "Parameter" / textattrs=(weight=bold) pad=5 ;
entry "Estimate"/ textattrs=(weight=bold) pad=5 ;
entry halign=left "E"{sub "max"};
entry _emax_1;
entry halign=left "EC"{sub "50"};
entry _ec50_1;
endlayout;
discretelegend "series" "conf" "pred";
endlayout;
endgraph;
end;
run;
proc sgrender data=pred template=curve2;
format type type.;
dynamic _emax_1=&emax_1
_ec50_1=&ec50_1;
where type=1;
run;
カーブラベルの設置
curvelabelupperまたはcurvelabellowerオプションを追加すると上限と下限のラインにラベルを設置することができます。
上記のコードにcurvelabelupperまたはcurvelabellowerオプションで表示文字列を指定するとこのようになります。
curvelabellocationでoutsideを指定すると、ラベルはプロットエリアの外側に設置されます。
curvelabelpositonオプションでラベルの表示位置を指定できますが、設置位置はstart , end, max, minの4つしかありません。curvelabellocation=outsideの時はautoが指定できます。これは他のオブジェクトに接触しないようにSASが表示位置を自動調整するオプションです。
ラベルの表示位置は細かく指定できないので、scatterステートメントかtextplotステートメントで任意の位置にラベルを設置したほうが便利かもしれません。