SPSS Syntaxbeispiel: Makros für Regressionsanalysen

SPSS Logo

Aufgabenstellung: Eine Reihe von Einzelregressionen mit jeweils einer unabhängigen Variablen berechnen. Einfache Lösung: Für jede unabängige Variable die Regressionssyntax anlegen. Z. B. so:

REGRESSION
/MISSING LISTWISE
/STATISTICS COEFF OUTS R ANOVA
/CRITERIA=PIN(.05) POUT(.10)
/NOORIGIN
/DEPENDENT AV
/METHOD=enter UV1.

REGRESSION
/MISSING LISTWISE
/STATISTICS COEFF OUTS R ANOVA
/CRITERIA=PIN(.05) POUT(.10)
/NOORIGIN
/DEPENDENT AV
/METHOD=enter UV2.

Und so weiter – ein Block für jede unabhängige Variable.

Eleganter geht es unter Verwendung von Makros.

Zuerst wird das Makro für die Regressionanalyse definiert:



DEFINE mac_regress (!POS !CHAREND(‚/‘))
!DO !i !IN (!1)
REGRESSION
/MISSING LISTWISE
/STATISTICS COEFF OUTS R ANOVA
/CRITERIA=PIN(.05) POUT(.10)
/NOORIGIN
/DEPENDENT AV
/METHOD=enter !i.
!DOEND
!ENDDEFINE.

Dann wird die Liste der UVs definiert:

DEFINE uv()
UV1 UV2 UV3 UV4 UV5 UV6 UV7 UV8 UV9 UV10
!ENDDEFINE.

Im letzten Schritt können die Einzelregressionen mit einer einzigen Zeile aufgerufen werden:

mac_regress uv /.

Viel Spaß beim Ausprobieren! Setzen Sie für UV1, UV2 usw. Ihre unabhängigen Variablen ein, für AV ihre abhängige. Bei langen Variablenlisten kann dieses Vorgehen die Übersichtlichkeit der Syntaxdateien wesentlich erhöhen, der Code wird deutlich kürzer.




2 Gedanken zu „SPSS Syntaxbeispiel: Makros für Regressionsanalysen“

  1. hallo,
    fehlt da nicht ein Ausrufezeichen beim Aufrufen des Makrobefehls?
    !mac_regress uv/
    und warum wird ein Punkt am Ende gesetzt?

    1. Hallo dumitru,

      bei mir funktioniert der Makroaufruf ohne Ausrufezeichen. Ist in meiner (nicht allerneuesten) Version auch in der Hilfe so dokumentiert (Makro „check“).

      Den Punkt setze ich, um den Befehl zu beenden. Lasse ich den Punkt weg, dann ergänzt SPSS ihn automatisch. (Ich nehme an, es geht um die letzte Zeile.)
      mac_regress uv /.

      Viele Grüße,

      Wolf

Freue mich über Kommentare!