Berechnet den Hosmer-Lemeshow-Anpassungstest für ein logistisches Regressionsmodell. Dieser Test bewertet die Übereinstimmung zwischen den beobachteten und den vom Modell vorhergesagten Werten, indem die Daten basierend auf den vorhergesagten Wahrscheinlichkeiten in Gruppen aufgeteilt werden.
| Parameter | Beschreibung |
|---|---|
| binEps | Gibt die Genauigkeit der vorhergesagten Wahrscheinlichkeiten an, die für die Klassifizierung verwendet werden. |
| cutpt | Gibt die Trennpunkte für die Hosmer-Lemeshow-Partitionen an. |
| df | Gibt die Freiheitsgrade an, die für den Hosmer-Lemeshow-Test verwendet werden sollen. |
| dfReduce | Gibt die Reduzierung der Freiheitsgrade für den Hosmer-Lemeshow-Test an. |
| display | Gibt eine Liste von Ergebnistabellen an, die zur Anzeige an den Client gesendet werden sollen. |
| nGroups | Gibt die maximale Anzahl von Gruppen an, die für den Hosmer-Lemeshow-Test erstellt werden sollen. |
| noncentrality | Gibt den Nichtzentralitätsparameter für den Hosmer-Lemeshow-Test an. |
| outputTables | Listet die Namen der Ergebnistabellen auf, die als CAS-Tabellen auf dem Server gespeichert werden sollen. |
| powerAdj | Wenn auf True gesetzt, passt die Anzahl der Gruppen an, damit der Hosmer-Lemeshow-Test seine Trennschärfe beibehalten kann. |
| restore | Stellt Regressionsmodelle aus einem Binär-Großobjekt (BLOB) wieder her. |
| table | Gibt die Eingabedatentabelle an. |
Erstellt eine Beispieltabelle 'getheart' in CAS, um die logistische Regression durchzuführen. Diese Tabelle enthält Daten über den Gesundheitszustand von Patienten und wird verwendet, um die Anfälligkeit für Herzerkrankungen zu modellieren.
| 1 | DATA getheart; |
| 2 | INFILE DATALINES; |
| 3 | INPUT STATUS $ Age Weight; |
| 4 | DATALINES; |
| 5 | Dead 50 210 |
| 6 | Alive 60 170 |
| 7 | Dead 55 220 |
| 8 | Alive 65 160 |
| 9 | Dead 45 200 |
| 10 | Alive 58 175 |
| 11 | Dead 68 230 |
| 12 | Alive 70 150 |
| 13 | Dead 48 205 |
| 14 | Alive 62 165 |
| 15 | ; |
| 16 | PROC CASUTIL; load DATA=getheart outcaslib=casuser casout='getheart' replace; RUN; |
Dieses Beispiel zeigt die grundlegende Verwendung der Aktion `logisticLackfit`. Zuerst wird ein logistisches Regressionsmodell mit der Aktion `logistic` angepasst und in einem Item-Store gespeichert. Anschließend wird `logisticLackfit` verwendet, um den Hosmer-Lemeshow-Anpassungstest für das gespeicherte Modell durchzuführen, wobei die Standardanzahl von 10 Gruppen verwendet wird.
| 1 | PROC CAS; |
| 2 | regression.logistic TABLE='getheart' class={'Status'} model={depvar='Status', effects={'Age', 'Weight'}} store={name='myModel', replace=true}; |
| 3 | RUN; |
| 4 | regression.logisticLackfit TABLE='getheart' restore='myModel'; |
| 5 | RUN; |
| 6 | QUIT; |
Dieses Beispiel erweitert das einfache Beispiel, indem es den Parameter `nGroups` verwendet, um die Anzahl der Gruppen für den Hosmer-Lemeshow-Test auf 8 festzulegen. Dies ermöglicht eine feinere Kontrolle über die Partitionierung der Daten für den Anpassungstest.
| 1 | PROC CAS; |
| 2 | regression.logistic TABLE='getheart' class={'Status'} model={depvar='Status', effects={'Age', 'Weight'}} store={name='myModel', replace=true}; |
| 3 | RUN; |
| 4 | regression.logisticLackfit TABLE='getheart' restore='myModel' nGroups=8; |
| 5 | RUN; |
| 6 | QUIT; |
Anstatt die Anzahl der Gruppen anzugeben, definiert dieses Beispiel explizit die Trennpunkte für die vorhergesagten Wahrscheinlichkeiten mit dem Parameter `cutpt`. Dies bietet maximale Kontrolle darüber, wie die Beobachtungen für den Hosmer-Lemeshow-Test gruppiert werden.
| 1 | PROC CAS; |
| 2 | regression.logistic TABLE='getheart' class={'Status'} model={depvar='Status', effects={'Age', 'Weight'}} store={name='myModel', replace=true}; |
| 3 | RUN; |
| 4 | regression.logisticLackfit TABLE='getheart' restore='myModel' cutpt={0.1, 0.25, 0.5, 0.75, 0.9}; |
| 5 | RUN; |
| 6 | QUIT; |