Sie haben zwei unabhängige Stichproben (Männer und Frauen), und wollen die ROC-Kurven von jeder Probe berechnet vergleichen . Wie ich es von http://support.sas.com/kb/45/339.html verstehe, kann SAS ROC-Kurven von unabhängigen Proben in einem PROC-Schritt nicht vergleichen. Sie müssen die Arbeit selbst erledigen.
Der Prozess ist:
- Run PROC LOGISTIC die ROC-Statistiken (Sensitivität/Spezifität an jedem Schnittpunkt) und AUCs mit Standardfehlern zu berechnen, für jede Probe.
- Erstellen Sie ein Diagramm der ROC-Statistik, die die beiden Kurven überlagert.
- Berechnen Sie eine Teststatistik und einen p-Wert aus den AUCs.
Unten ist mein Versuch an einem Beispiel. Ich bin nicht zuversichtlich, dass dies richtig ist, aber es ist meine Umsetzung meines Verständnisses der Informationen in der Support-Notiz. Bitte lesen Sie den Support-Hinweis.
Beispieldaten. Ich verstehe deine Daten immer noch nicht, also habe ich einige gemacht, die ich verstanden habe. Daten für 5 Frauen und 6 Männer. Jede Person hat einen Score in einem diagnostischen Test und einen Krankheitsstatus (1/0).
data have;
input Sex $1. Test Disease;
cards;
F 10 0
F 20 0
F 30 1
F 40 0
F 50 1
M 10 0
M 20 1
M 30 0
M 40 1
M 50 1
M 60 1
;
run;
Führen Sie PROC logistic aus und geben Sie die Statistik aus. Ich habe eine BY-Anweisung verwendet, anstatt getrennte PROC-Schritte für Männer und Frauen auszuführen.
ods output ROCassociation=AUCs(where=(ROCmodel="Test"));
proc logistic data=have plots(only)=roc;
model Disease(event='1') = Test
/outroc=RocStats(where=(_source_="Test"))
;
roc 'Test' Test;
by Sex;
run;
ods output close;
Verwenden Sie SGPLOT, um die überlagerten ROC-Kurven zu plotten. Ich benutze 9.3, also muss ODS Grafikanweisung verwenden, um ein quadratisches Diagramm zu erzwingen. 9.4 eingeführt Aspekt = 1 Option zu SGPLOT. Es ist eine geradlinige Handlung, erinnert mich daran, wie sehr ich SGPLOT und GTL liebe. Ich glaube nicht, dass ich jemals zu GPLOT zurückkehren werde.
ods graphics/height=480px width=480px;
proc sgplot data=RocStats;
xaxis values=(0 to 1 by 0.25) grid offsetmin=.05 offsetmax=.05;
yaxis values=(0 to 1 by 0.25) grid offsetmin=.05 offsetmax=.05;
lineparm x=0 y=0 slope=1/transparency=.7;
series x=_1mspec_ y=_sensit_/group=Sex;
run;
Berechnen Sie die Teststatistik. Der Support-Hinweis sagte, dies sei ein Test mit großen Stichproben. Die Teststatistik folgt der Chi-Quadrat-Verteilung mit 1 Freiheitsgrad.
data AUCtest(keep=AreaMale StdErrMale AreaFemale StdErrFemale ChiSq Prob);
set AUCs (keep=Sex Area StdErr
where=(Sex='M')
rename=(Area=AreaMale StdErr=StdErrMale)
)
;
set AUCs (keep=Sex Area StdErr
where=(Sex='F')
rename=(Area=AreaFemale StdErr=StdErrFemale)
)
;
ChiSq=(AreaMale-AreaFemale)**2/(StdErrMale**2 + StdErrFemale**2);
Prob=1-probChi(ChiSq,1);
format Prob pvalue6.;
run;
Noch einmal, nichts davon als Wahrheit nehmen. Benutzung auf eigene Gefahr, ich bin auch in der Lernphase.
Das ergibt für mich noch keinen Sinn. Ihre abhängige Variable ist Marker, wobei 1 für übergewichtig und 0 für normal steht. Ihre Prädiktorvariable Y ist Gewicht. Sie wollen also sehen, ob das Gewicht (Y) ein guter Indikator dafür ist, ob Sie übergewichtig sind (Marker)? Und sehen Sie, ob die ROC-Kurven für Männer und Frauen gleich sind? – Quentin
Haben Sie die gleiche Anzahl von Männern und Frauen? – Quentin
"Und sehen Sie, ob die ROC-Kurven für Männer und Frauen gleich sind?" JA! "Haben Sie die gleiche Anzahl von Männern und Frauen?" NEIN! – Beginner