Läsarfråga: Slå ihop datamängder, korstabeller, t-test.

Q: Jag håller på att skriva en longitudinell kvantitativ studie där jag jämför data från olika utgåvor av Eurobarometern. Som läget ligger nu har jag jämfört dessa för hand men min handledare hävdar att det skall gå att slå ihop datamängder elektroniskt (två åt gången duger för mig) och då testa signifikans med hjälp av ett enkelt t-test. Hur slår jag ihop datamängderna och hur behandlar jag datan efter detta? Jag skall jämföra svaren på en fråga mellan två länder (olika för varje undersökning) och eventuellt kontrollera för kön, det är alltså alldeles vanliga Crosstabs jag arbetar med.

A: Det går alldeles utmärkt att slå ihop datamängderna automatiskt. Generellt sett: Har du tänkt göra något med statistik ”för hand” – gör det inte. Det finns i princip alltid smarta sätt att göra det så att man sparar en massa jobb.

Du ser först till att variablerna du är intresserad av heter samma sak i båda dataseten, det krävs för att man ska kunna matcha ihop dem. Vi tänker oss att din variabel heter ”exvariabel”. Du gör också en ny variabel i båda dataseten (om det inte redan finns en sådan) som anger vilket land undersökningen är gjord i, till exempel ”country”.

Därefter har du den ena datamängden öppen, och väljer i menyn ”Data–> Merge Files –> Add Cases”. Du letar sedan upp den andra datamängden i rutan ”An external PASW statistics data file” (eller vad det nu står i tidigare versioner) och trycker på ”continue”.

Därefter får du upp två variabellistor. I den vänstra står de variabler som SPSS inte lyckats matcha ihop mellan datamängderna, och i den högra listan står de variabler som matchats ihop. Där ska ”exvariabel” finnas med, och alla andra variabler du vill använda i din analys, alltså också kön. Du kan om du vill klicka i rutan ”Indicate case source as variable”. Då får du en ny variabel som visar från vilken datamängd varje observation kom ifrån. Tryck på ”OK”.

Din datamängd har nu byggts på med en drös ytterligare analysenheter. Man kan också slå samman variabler från flera dataset, till exempel om du har studerat ett antal personer i flera olika undersökningar. Då vill man ha kvar samma analysenheter (personer) men lägga till nya variabler. Men det var alltså inte vad vi gjorde här.

När du har fått in det i datamängden är det bara att köra på som vanligt, men ”country” är nu en ny oberoende variabel.
Du går alltså in på ”Analyze –> Descriptive statistics –> Crosstabs”. I rutan ”Columns” lägger du in frågan som du var intresserad av. I rutan ”Rows” lägger du in din oberoende variabel (”Country”). Därefter trycker du på knappen ”Cells”, och klickar i rutan ”Rows” i fältet där det står ”Percentages”. Det betyder att du räknar procent i den oberoende variabelns riktning, vilket är extremt viktigt. Tryck sedan på OK och du ska få ut en tabell där det står hur många procent som svarat vad i varje land. Man kan då göra jämförelser av typen ”25 procent av alla svenskar tycker att det är en bra idé, medan bara 10 procent av alla engelsmän gör det”. Det kan man bara göra om man räknar procent i den oberoende variabelns riktning.

När du sedan vill kontrollera för kön gör du om samma korstabell fast klickar i könsvariabeln i rutan ”layers”. Du kan då jämföra om svenska kvinnor tycker annorlunda än engelska kvinnor, och om svenska män tycker annorlunda än engelska män, till exempel.

När du sedan ska göra t-test går du in på ”Analyze –> Compare means –> Independent samples t-test”. I rutan ”Test variables” lägger du in den beroende variabeln, och så lägger du in ”Country” i rutan ”Grouping variable”. Tryck sedan OK. Du får sedan ut en tabell som heter ”Group statistics” där medelvärdet står angivet för varje grupp. I tabellen under, ”Independent samples t-test”, står själva t-testet. Titta i kolumnen ”Sig. (2-tailed)”. Är talen under ,050 är skillnaden mellan medelvärdena signifikant med 95 procents säkerhet. Om det är över ,050 så kan vi inte säga det med 95 procents säkerhet – skillnaden beror antagligen på slumpen.

17 reaktioner till “Läsarfråga: Slå ihop datamängder, korstabeller, t-test.

  1. Jag håller på med bedömning av reliabilitet på ett ett patientadministrerat instrument (likertskala). Jag skulle i tillägg till ICC vilja utföra en viktad kappaanalys eftersom variabeln är av ordinaltyp. Jag har fått förklarat för mig att först utföra en beräkning i korstabell (testtillfälle 1 /testtillfälle 2. Värdena som fås där ska föras över i en tabell avsedd för uträkning av kappaanalys (t.ex. i Vassarstat). Min fråga är; Jag har 40 test-retestvärden. Är det ett värde från korstabellen jag ska föra över i tabellen i Vassarstat eller är det svarsvärden från korstabellens hela diagonal för vart och ett av test-retest värdena?.Hur gör jag för att det ska bli rätt?

  2. Jag har en lista med ett års försäljning från sex butiker med information om butik, avdelning, artikel, vecka samt antal. I denna lista vill jag klippa in antalet kasserade varor. Så hur gör jag för att lägga till information om kassaktioner så att den hamnar vid rätt butik, under rätt vecka och vid rätt artikel?

    1. Hej, det beror på hur du har informationen om kasserade varor. Om den också ligger i en datamängd med butik, avdelning, artikel och vecka så kan du slå ihop datamängderna som beskrivs ovan, fast du använder ”add variables” istället. Du använder då butik, avdelning, artikel och vecka som ”key variables”.

      Då kommer den ena datamängden få en ny variabel för antal kasserade varor, där den kan matcha på nyckelvariablerna.

  3. Hej!

    Jag håller just nu på att sammanställa en enkätundersökning med 490 respondenter. En av frågorna är en fritextfråga på hur stor omsättning företaget har per år. Jag söker tips och råd på hur man bäst redovisar en fritextfråga.

    1. Hej Sara!
      Det är inte så lätt att göra det. Antingen kan du ju bara redovisa alla fritextsvar, men det är ju inte så intressant. Annars får du nog gå igenom dem och kanske dela in svaren i kategorier, eller göra om dem till värden på en skala (till exempel omsättning).

      /Anders

  4. Hej!

    Jag har haft mycket hjälp av de ni har skrivit om hur man lägger ihop databaser, men jag har några röriga frågor till som jag undrar om ni hade kunnat hjälpa mig med. Jag håller på med en undersökning och har flera olika datadaser med information från tidigare års liknande undersökningar som jag vill kunna lägga ihop.

    Min första fråga är: Jag har en adressfil med kontaktuppgifter till personer som ingår i årets undersökning, men hade velat köra denna mot den gamla undersökningen för att kunna se vilka som även svarade förra året eller vilka som inte gjorde det. Hur gör jag? (Vill inte försöka ”manuellt” då det handlar om ett par tusen respondenter)

    Fråga två: Vilket av sätten ovan bör jag använda mig av när jag vill lägga ihop årets undersökning med föregående års undersökningar? Vissa respondenter kommer enbart att ha svarat i en av undersökningarna och vissa frågor är olika mellan undersökningarna.

    1. Hej Malin!
      Det beror lite på. Generellt så är det så att om man har olika personer men samma frågor så ska man använda ”Add cases”. Om det däremot är samma personer men olika frågor så ska man använda ”Add variables”.

      I ditt fall verkar du ha en blandning.
      Jag föreslår då att du letar upp en id-variabel som identifierar vilka personer som svarat på båda undersökningarna. Sen byter du namn på variablerna i den andra undersökningen så att de inte heter samma sak som i den första undersökningsdatamängden. Om en variabel till exempel heter ”ideologi” byter du namn på den till ”u2_ideologi” i den andra undersökningen.

      Därefter använder du dig av ”Data->Merge files->Add variables”. Du klickar sedan i ”Match on key variables” och flyttar över din id-variabel till rutan för ”Key variables”. Sen klickar du i ”Both datasets provide cases”. Sen borde det bara vara att trycka på OK, och då borde du få ett dataset där frågorna från båda undersökningarna är med. De som har svarat på båda undersökningarna borde då ha värden på frågorna från båda undersökningarna, men även de som bara svarat på en undersökning borde vara med.

      Hoppas det hjälper!
      /Anders

  5. Missade att jag kunde bli uppmärksammad om nya inlägg och kommentarer via e-post, hoppas att det går att göra det så här i efterhand.

  6. Hej!
    Jag undersöker om det faktum att högerextrema väljare ser invandrare som ett ekonomiskt hot varierar mellan mer och mindre generösa välfärdsstater. Använder mig av ESS 2002/2003 och har konstruerat ett index som motsvarar ”ekonomiskt hot”. Vill infoga variabeln ”Benefit generousity index” från Quality of Governments data, och endast denna variabel. Jag vill alltså inte slå ihop datamängderna som i exemplet ovan, utan endast tillföra en variabel från ett annat dataset. Hur gör jag det enklast? Tacksam för svar.
    /Lovisa

    1. Hej Lovisa!
      Du gor ungefar som ovan, alltsa anvanda ”Merge files”, men du ska anvanda ”Add variables”, inte ”Add cases”. Dar kan du sedan valja vilka variabler du vill ha med i det kombinerade datasetet, och da kan du valja att bara ta med en variabel.

      /Anders

  7. Hej igen,
    Jag får det inte riktigt att fungera som jag vill. Till mitt ESS-datamaterial vill jag tillföra variablerna Benefit Generosity, GDP, och ett par andra från Quality of Government. Vill se hur det skiljer sig land för land. Eftersom ”country” inte heter precis så bokstavligen i båda dataseten, har jag förstått att jag måste skapa en ny variabel i vardera dataset, typ CountryID, och koda länderna likadant. Gjorde detta genom ”Recode into different” i SPSS. Sen valde jag CountryID som key variable när jag skulle sammanföra dataseten och fick en mängd nya variabler till mitt ESS-material.

    Nu när jag ska jämföra medelvärden genom ”Analyze”, ”Compare means” vill jag se hur Benefit generosity och GDP etc. skiljer sig mellan mina valda länder. I min output vill jag alltså ha GDP etc. -siffror land för land, men det blir inte så.

    Min fråga är alltså hur jag kodar country-variablerna så att de blir precis lika? Är det ett problem att länderna i ESS har bokstavsförkortningar och i QoG landsnummer? Och sedan vill jag Och om jag sen inte vill titta på alla länder i min output, utan ett urval, är det ”Select cases” som jag då väljer sist?

    Tack på förhand,
    Lovisa

    1. Hej Lovisa!

      Du måste ha en variabel där länderna har samma värde i båda datamängderna. Antingen en landskod, eller landets namn, stavat på samma sätt. Om man hämtar data från olika håll kan det vara lite meckigt, och man får ibland göra det åtminstone delvis manuellt.Lämpligen utgår du från en variabel som finns i den ena datamängden och gör en likadan i den andra.

      För att få fram BNP-siffror land för land kanske det enklaste är att helt enkelt kolla i datamängden? Där står ju siffrorna land för land. Du kan annars använda dig av ”Analyze->Tables->Custom tables” för att göra tabellen du är ute efter.

      Och det är riktigt att det är select cases som gäller om du bara vill analysera ett urval.

      /Anders

  8. Tack för det, nu har jag slagit ihop mina datamängder och det fungerade bra. Men en sista fråga: det har hittills inte fungerat att med select cases välja ett parti för varje land. Det finns en variabel som heter ”Voted in last election”, där ja = 1. Sedan vill jag ha med ett par utvalda partier per land, och då är min fråga hur jag skriver formeln för det i ”select cases”?
    Ska jag först välja ”Voted in last election”=1 + partyvotelandX=2 + partyvotelandY=3, eller hur skriver jag koden? Det ska ju gå att välja enligt denna princip?
    /Lovisa

    1. Hej Lovisa!
      Om man vill ha flera villkor när man väljer fall ska man inte använda plus, utan ”AND”.
      &-tecken funkar också.
      Testa med det så ska det nog funka.

      /Anders

  9. Hej! Superbra sida ni har och vilket fantastiskt jobb ni gör! Tack!
    Jag har en fråga gällande val av test. Jag har slagit ihop fyra dataset (olika år) med frågor från en enkät på ordinalnivå. Frågorna är adderade till olika index. Jag är intresserad av att se utveckling över tid för enskilda yrkesgrupper per index och även om det finns skillnad mellan grupperna över tid. Vilket / vilka test ska jag välja?

Lämna ett svar till Sara Petersson Avbryt svar