Sociologiskforum.dk var aktivt fra 2004-2012, men eksisterer i dag kun som arkiv.
annonce

Logistisk multilevel analyse i Stata

Skrevet d. 14.05.2009 af Liw
Hej alle

Jeg sidder og kæmper lidt med en logistisk multilevel analyse. Min afhængige variabel er dikotom og jeg har uafhængige variable på 2 niveauer - fem på hvert. Variablene er enten dikotome eller (tilnærmelsesvist) intervalskalerede.
Jeg har kun anvendt SPSS tidligere, men da dette ikke kan bruges til denne analyse, er jeg gået i gang med at lære Stata bedre at kende. Jeg synes dog det er svært at vurdere hvilken en af de mange kommandoer der egner sig bedst til formålet.
Kan nogen hjælpe?

På forhånd mange tak!
annonce
Skrevet d. 14.05.2009 af KristianKarlson
Hej,

Det kommer an på, om du kan nøjes med at lave random intercept modeller eller også skal lave random slope modeller.

Hvis du kan skal lave random intercept modeller, så kig på -xtlogit-. Det er en fantastisk kommando, især fordi den afrapporterer Intra Class Correlation direkte, hvilket letter arbejdet en del. Husk at sætte din niveau-2-variabel med -xtset-, hvis du vil bruge -xtlogit-.

Ved random slope modeller skal du bruge -xtmelogit-, som er lidt mere tricky (kommandoen kører som -xtmixed-). Det tager i hvert fald lidt tid at lære den at kende, men så snart at den er der, er den også nem at arbejde med.

Der findes en rigtig god bog om multilevel-analyse i Stata af Rabe-Hesketh og Skrondal (http://www.stata.com/bookstore/mlmus.html). Den er rigtig god som håndbog til kommandoerne, og der vist lige kommet en udgave til Stata 10.

Nu ved jeg ikke, hvordan din afhængige variabel fordeler sig (dvs. andelen af 0`er og 1`er), men hvis den er fordelt meget omkring 50/50 procent vil jeg overveje at bruge lineær multilevel regression. Men det er selvfølgelig blot et forslag - jeg synes i hvert fald bare, at den lineære udgave er nemmere at tolke på. Men igen, hvis du skal bruge logistisk multilevel-analyse, så skal du bare kaste dig ud i det ;)

vh Kristian
Skrevet d. 15.05.2009 af Liw
Hej Kristian

Tak for dit rigtig gode svar. Jeg troede ikke, at lineær multilevel regression var hensigtsmæssig, når den afhængige er dikotom.
Den afhængige variabel fordeler sig meget skævt - 21/724 - men da der er tale om populationsdata har det vel ikke nogen betydning?

Hvis det skal være logistisk regression, vil jeg tage xtlogit, som du foreslår.

Tusind tak for dine tips!

Mvh Line
Skrevet d. 15.05.2009 af Mads_Jaeger
Hej Line

Kristians forslag om at bruge en lineær model i stedet for en logistisk går på (tror jeg!), at den lineære model er nemmere at estimere og fortolke. Hvis du har en ca 50/50 fordeling af 0/1`ere gør det ikke så meget, at du bruger den lineære model selv om den afhængige variabel er binær. Men i dit tilfælde med en meget skæv fordeling er det nok smartest at bruge den logistiske model.

xtlogit og xtmelogit er begge rigtig gode kommandoer og nemme at bruge. Sig til hvis du får brug for hjælp

Mads
Skrevet d. 15.05.2009 af Liw
Hej igen

Mange tak for jeres svar og det gode tilbud om hjælp! Det vil jeg sikkert benytte mig af senere!

Mvh Line
Skrevet d. 18.05.2009 af Liw
Hej igen

Jeg troede lige, jeg havde fundet ud af det... Men jeg har problemer med både xtset og xtlogit. I får lige en grundig beskrivelse.

Undersøgelsen: "Hvilke faktorer er afgørende for, om en kandidat sprænger listen til Europa-Parlamentsvalg?"

Datasættet: Indeholder hele populationen. Består af 685 obervationer/kandidater. Variablene er på to niveauer: Partiniveau og kandidatniveau. Observationerne er afhængige af hinanden ift. parti og opstillingsår (som er hvert femte år: 79, 84, 89, 94, 99 og 04).
Den afhængige variabel fordeler sig meget skævt: 21 "listespringere" mod 664 "ikke-listespringere".

Jeg ønsker at beregne odds ratio og forklaret varians for begge niveauer. Jeg ønsker signifikanstest på 0,90-niveau.

Jeg har brugt xtset til at definere mine niveau-2-variable, men når jeg skriver "xtset Parti Opstaar" svarer den: repeated time values within panel
r(451);
Jeg har så prøvet at skrive det hver for sig ("xtset Parti" og "xtset Opstaar"), men ved ikke om det fungerer?

Derefter har jeg forsøgt at køre analysen med "xtlogit [afhængig variabel] [9 uafhængige variable]
og får fejlmeddelelsen: number of quadrature points must be less than or equal to number of obs
r(198);

Kan nogen af jer se, hvad jeg har gjort galt?

Mange hilsner
Line
Skrevet d. 18.05.2009 af Liw
Hej igen-igen

Nu har jeg fået løst den ene del af problemet - det var fordi nogle af variablene var markeret som "strings" i stedet for numeriske... Lidt nybegynder-agtigt :)

Jeg har dog stadig problemet med xtset - hvad gør jeg, når jeg gerne både vil have defineret mit level 2-niveau som parti og opstillingsår?

Mange hilsner
Line
Skrevet d. 19.05.2009 af KristianKarlson
Hej Line,

Du skal kun angive din niveau-2 variabel i xtset. Jeg giver lige et eksempel på en kommando.

Variable:

parti: identificerer din niveau-2 variabel (parti)
y: afhængig binær variabel
x: kandidat-specifikke variable
z: parti-specifikke variable

Kør følgende to kommandoer:

xtset parti
xtlogit y x z

Den første kommando sætter parti som niveau-2-id-variabel, mens den anden kommando kører den logistiske multilevel regression. Jeg ved ikke, om du både har kandidat-specifikke og parti-specifikke variable, men pointen er, at x og z står for "forklarende variable". xtlogit tager selv højde for, hvilket niveau de befinder sig på.

Og så lige en anden ting, som jeg tror, det er rart at vide: I logistisk regression estimerer man ikke nogen niveau-1-varians, fordi logistisk regression antager denne til at have en fast værdi. Faktisk er den (pi^2)/3 ca. = 3.29. Imidlertid har niveau-2-variansen præcis samme fortolkning som i lineær multilevel-analyse.

Når xtlogit udregner ICC for dig (rho kalder Stata det), så regner den den i virkeligheden ud fra ovenstående niveau-1-varians (altid = 3.29) og den estimerede niveau-2-varians. Det er en "approksimation" til den ICC, du kender i den lineære multilevel-analyse, men samme fortolkning gælder, altså noget med andelen af niveau-2 variation i din afhængige variabel.

Jeg håber det hjælper.

mvh Kristian
Skrevet d. 20.05.2009 af Liw
Tusind tak! Det var meget brugbart! Virkelig fedt at få så hurtig og god respons. Nu har jeg også næsten løst problemerne, men har bare et lille spørgsmål mere:

Selvom mine observationer er afhængige både i forhold til parti og året hvor de er opstillet (Venstres kandidater i 1979 er jo ikke afhængige af Venstres kandidater i 2004), skal jeg kun xtset`te i forhold til parti?
Jeg får i hvert fald fejlmeddelelsen "repeated time values within panel
r(451);" når jeg skriver kommandoen:

xtset Parti Opstillingsaar

Mange hilsner
Line
Skrevet d. 20.05.2009 af KristianKarlson
Hej Line,

Det var så lidt ;)

Jeg er ikke helt med på, hvad dit andet problem er, men here goes. Du har 3 niveauer? kandidat > parti > opstillingsår? I så fald skal du bruge xtmelogit, fx

xtmelogit y x1 x2 || Parti: || Opstillingsaar: , mle var

Bemærk, at det godt kan være, at du skal bytte om på Parti og Opstillingsaar - jeg kan ikke huske, hvordan Stata vil have dem.

Bemærk, at hvis du kun har få opstillingsår, så inkludér dem som dummy-variable i hovedlingingen (dvs. som x`er) i stedet.

vh Kristian
Skrevet d. 21.05.2009 af Liw
Hej Kristian

Tak for dine svar. Jeg er nu hjulpet rigtig godt på vej og må bare i gang med fortolkningen.

Igen - tusind tak. Det er virkelig guld værd at kunne få hjælp herinde.

Hav det godt!

Mange hilsner
Line

Andre læser også

annonce
Sociologiskforum.dk benytter cookies til blandt andet statistik og marketing. Ved at benytte hjemmesiden accepterer du vores brug af cookies. Okay