Lär dig R i R!

För den som vill lära sig statistikprogrammet R finns många vägar att vandra, bland annat finns många gratis nätkurser via Coursera som lär ut R. Nu finns dock en ytterligare en väg: genom R!

I R kan man installera så kallade paket som tillför funktionalitet till programmet. Ett sådant paket är Swirl. Om man installerar det och sedan laddar det kan man genom R lära sig använda R. Läs mer om hur du går till väga här.

Piketty och PikettieR

Hypen kring Thomas Piketty och hans bok Kapitalet i det 21:a århundradet kan inte ha undgått många. Tyvärr missade jag hans framträdandet i Almedalen. Men för oss som gjorde det finns ett antal sätt att ta del av hans tankar (förutom att läsa boken), exempelvis finns på YouTube hans föreläsning för London School of Economics i juni i år.

Det har varit en hel del diskussioner kring de analyser som han har gjort. Piketty har själv lagt ut underlag till analyserna på sin webbplats, vilket är föredömligt. Fast av någon outgrundlig anledning har han analyserat sina datamaterial i Excel. Det är lite stökigt att få ordning på data för att kunna analysera dem på ett vettigt sätt. Fast nu har Jeff Leek och de andra bakom den utmärkta bloggen Simply Statistics dragit igång ett projekt för att flytta materialet till R.

De vill dock ha hjälp för att slutföra det arbetet (läs mer här om hur du kan bidra). Det som hittills är bearbetat finns på GitHub. Förhoppningsvis kommer en del intressanta analyser från detta arbete. Själv förstår jag dock inte varför de inte valde att kalla projektet PikettieR.

QQ-plots med Pisa-resultat

Sommaren är en utmärkt tid för att experimentera lite med data, metoder och program. Bland allt har jag tänkt använda statistikprogrammet R lite mer än jag brukar (vanligtvis använder jag Stata eller SAS – se min översikt av statistikprogram här).

Den här bloggposten är en kombination av ovanstående. En intressant form av grafer är så kallade QQ-plots, eller quantile-quantile plots. De är ett alternativ till histogram om man vill studera fördelningar. Exempelvis kan de användas för att se om datamaterialet är normalfördelat (genom att jämföra en faktisk fördelning med en teoretisk). Eller som i det fall jag tänker titta på här, för att jämföra två olika fördelningar: hur väl pojkar och flickor presterar i Pisa-undersökningen 2012.

I nedanstående QQ-plots jämförs för ett antal länder hur bra flickor och pojkar presterade när det gäller läsförståelse och matematik i Pisa 2012. För respektive kön har eleverna delats in i likstora 100 grupper efter hur väl de presterade, från de sämsta till de sämsta. I diagrammet är flickornas resultat på y-axeln och pojkarnas på x-axeln. Den första punkten i diagrammet (nere till vänster) är alltså resultaten för den percentil som presterade sämst (de sämsta 1 procenten).

Som framgår av diagrammen är flickor bättre på läsförståelse i alla länderna som presenteras här. Skillnaden är rätt stor i Sverige och framför allt i Finland. När det gäller matematik är skillnaderna mindre. I Sverige är de sämsta tjejerna bättre än de sämsta killarna, men de bästa killarna är bättre än de bästa tjejerna. I övriga länder är könsskillnaderna lite större.

Exemplet och koden är hämtad från bloggen SmarterPoland, det är bara att kopiera och ändra för den som vill ta fram andra resultat. Om ni vill lära er mer om QQ-plots rekommenderas klassikern Visualizing Data av William S. Cleveland från 1993.

Introduktioner till SPSS och Stata i videoformat

Det finns mängder av introduktioner till statistikprogram på nätet, både i form av dokument och videor. Jag  har inte själv kollat igenom alla avsnitt, men jag tycker att det verkar som om de introduktioner som metodavdelningen vid London School of Economics and Political Science har lagt ut täcker in det mest grundläggande.

Du hittar videor för Stata här och för SPSS här.

Det är lite intressant att även om båda programmen har möjligheter att göra analyser genom att välja i menyer (s.k. point-and-click) och att skriva kod, så utgår introduktionerna för SPSS från menyer och introduktionerna för Stata från skriven kod.

Min starka rekommendation är att den som vill ägna tid åt dataanalys bör lära sig att skriva kod, även om de första stapplande stegen kan tas med stöd av menyer. I både Stata och SPSS kan man få ut kod som motsvarar de kommandon som man väljer via menyer. Tyvärr får man en massa onödig kod i SPSS (även default-värden specificeras etc.), men det kan ändå vara ett sätt att lära sig programmera.

Nya webbkurser i statistik och dataanalys

Jag har tidigare tipsat om olika webbkurser, eller MOOCs om vi använda oss av buzzwords, och tänkte göra det igen. Visserligen har jag inte själv kollat på dem så noga, men vid första anblick verkar följande tre kurser från Udacity intressanta:

Statistics: The science of decisions. En grundläggande kurs i statistik. Gratis!

Introduction to data science. Dataanalys och programmering i Python. Det är en kostnad för att få del av hela kursen, men det mesta verkar ligga ute gratis.

Exploratory data analysis. Dataanalys och programmering i R. Även här är det en kostnad för att få del av hela kursen, men det mesta verkar ligga ute gratis.

Än fler spännande kurser från Udacity går att hitta här.

Ny blogg: 312

Jag har börjat blogga på Svenska Dagbladet genom den nya bloggen 312. Namnet syftar på att vi i år har 312 olika val: i 290 kommuner, 20 landsting/regioner, 1 riksdag och 1 Europaparlament.

Så om du är intresserad av inlägg om val och demokrati rekommenderar jag att du följer bloggen. Länk: http://blog.svd.se/trehundratolv/

Jag kommer att försöka hinna med att även fortsättningsvis blogga här. Det kommer nog framför allt att bli inlägg som rör statistik, statistikprogram och visualisering av data, alltså lite spetsigare och lite nördigare.

Guider till SPSS

I veckan fick jag förmånen att undervisa studenter i en datasalsövning. Eftersom Linköpings universitet använder SPSS gjorde även jag det, trots att det inte är det statistikprogram jag vanligen använder. Och då tiden var knapp använde vi oss av menyer för att göra enkla beräkningar, även om jag rekommenderar alla att skriva kod om man vill göra analyser som går utöver de allra enklaste. Livet är fullt av kompromisser.

Jag satte ihop några bilder för att göra väldigt enkla steg i SPSS. Om de kan vara till hjälp för någon kan de laddas ned här. I efterhand hittade jag den här guiden till SPSS sammansatt av Rickard Andersson och Michael Wahman, statsvetenskapliga institutionen vid Lunds universitet. Deras guide är betydligt mer genomarbetad och kan säkert vara till hjälp för många. Sedan finns även SPSS-akuten, som grundats av statsvetaren Anders Sundell och som hjälpt många studenter genom att pedagogiskt förklara hur man löser olika moment i SPSS. En ytterligare guide är Programming and Data Management for IBM SPSS Statistics 20 av Raynald Levesque, Raynald (2011). Än fler guider finns att tillgå för den som söker lite på nätet. Och som jag tagit upp i tidigare inlägg, det finns andra statistikprogram att välja bland, till med sådana som är gratis.

Att räkna på avhopp

Avhopp från politiken är en angelägen fråga som då och då tas upp i medierna. För något år sedan samlade jag en del referenser för den som är intresserad av ämnet, se här. Sedan dess har en del nya resultat kommit, framför allt genom SCB:s rapport Folkvaldas villkor i kommunfullmäktige. Studien som rapporten baseras på kan ses som en uppföljning av en studie som jag och Gissur Ó. Erlingsson genomförde 2010 och som resulterade i rapporten Politikens villkor.

Många journalister som ska rapportera om avhopp har dock svårt att fram andelen som har hoppat av och det blir ofta fel. Det är dock lätt att göra fel. Valmyndigheten är källan till färsk statistik över avhopp och den redovisas på deras webbsida. Om vi exempelvis ser till val till kommunfullmäktige så redovisas statistik över dem som valdes in i valet 2010 (dvs. situationen efter valets sammanräknande), nuvarande ledamöter samt de ledamöter som har hoppat av.  All denna statistik är intressant, till exempel är det intressant att jämföra hur de som valdes in 2010 fördelar sig efter olika bakgrundsvariabler i förhållande till hur det ser ut för dem som nu sitter i fullmäktige (efter att vissa personer har hoppat av och andra ersatt). Det är även av intresse vilka det är som har hoppat av. Men många journalister vill framför allt rapportera hur stor andel av dem som valdes in 2010 som har hoppat av. De gör då misstaget att dela antalet som har hoppat av med antalet som valdes in, vilket är fel. Anledningen till att det blir fel är att det antal avhopp som redovisas är totalt, det vill säga även avhopp bland ersättare räknas med. Ett stort antal avhopp kan avse samma mandat som har tillsatts ett flertal tillfällen.

Att så är fallet kan vi se genom att till exempel studera Huddinge, där fick Drevvikenpartiet 3 mandat och de hade även 3 personer som valdes in 2010. Men antalet som har hoppat av är 4. Så om man räknar som vissa journalister har gjort skulle andelen avhopp bli över 100 procent. När man räknar på hela riket är det inte lika uppenbart att avhoppsandelar per parti är felaktiga. Men det cirkulerar med andra ord en hel del felaktiga uppgifter på grund av detta (för höga andelar). Hur ska man då göra om man vill ha dessa siffror? Tja, bäst är väl att kontakta Valmyndigheten för att få uppgifterna eller övertyga dem om att komplettera sin statistik med detta. SCB redovisar statistik över andelen av ursprungligt valda som har hoppat av, men den statistiken uppdateras inte lika ofta som Valmyndighetens statistik. Det gäller att hålla tungan rätt i mun när man tar fram statistik, i synnerhet om det är inom ett område man inte känner till.

Proportionella venndiagram

Häromveckan fick jag frågan om hur man på bästa sätt gör ett venndiagram där cirklarna är proportionella i förhållande till gruppernas storlek (om du inte känner till venn- och eulerdiagram, se ett av mina tidigare inlägg). Jag är inte helt säker på om jag tycker att det är en strålande idé över huvud taget. Om man vill illustrera olika gruppers storlek är cirklar inget bra alternativ (en dag kanske den insikten även kommer till DN:s grafiker, även om jag börjar ge upp hoppet). Men om det inte är huvudsaken kan det kanske ändå ge en ungefärlig uppfattning av den inbördes storleksordningen.

Om man googlar efter ”venn diagram area proportional” hittar man ett gäng lösningar, både sådana där man skapar diagrammet på webben i en applikation och sådana där man laddar ned ett särskilt program.  Det innebär dock manuellt arbete som är svårt att reproducera eller inlärning av ett nytt program och de kostnader som är förenade med det. Nyligen gav jag lite vägledning när det gäller hur man ska välja statistikprogram. Såvitt jag vet är det bara ett av dessa program där man kan skapa proportionella venndiagram (eller eulerdiagram), och det är R. Där finns dock åtminstone två olika paket att använda sig av: venneuler och vennDiagram. I det första är koden väldigt enkel. Säg att vi vill skapa ett venndiagram med A, B och C, där storleken för de tre är 200, 400 respektive 800. Och där kombinationen A, B och C är 20, kombinationen A och B är 40, A och C är 80 och B och C är 80. Då blir koden i R följande:

require(venneuler)
v <- venneuler(c(A=200, B=400, C=800, ”A&B&C”=20, ”A&B”=40, ”A&C”=80, ”B&C”=80))
plot(v)

Resultatet blir som följer:
Rplot_venn
Ibland sätter geometrin gränser som gör att den figur som skapas inte exakt stämmer överens med vad som specificeras, så det gäller att kolla att det verkar stämma. Det går att fixa till mer kring färger och utseende, antingen i R-koden eller senare i något annat program som Inkscape (som liksom R är gratis (den som har bättre resurser kan använda Adobe Illustrator)). Möjligheterna att kontrollera utseendet är än större om man använder paketet vennDiagram istället.  Men som ni ser, R är inte alltid så krångligt och det finns oftast fler lösningar på olika problem, även om antalet lösningar ibland kan vara överväldigande.

Gratis statistikkurs

Det är en ny skön värld vi lever i. Ett tecken på det är att Stanford i dagarna startade en gratis statistikkurs på nätet som pågår fram till den 22 mars. Den ges via Open edX kräver en del förkunskaper, men den hugade kan nog klara av det ändå, i synnerhet om man lägger ned mer än de 3 timmar per vecka som anges att kursen tar i anspråk. Som inte det var nog lägger föreläsarna ut deras kursbok  An Introduction to Statistical Learning, with Applications in R gratis. Den är utgiven på Springer och kostar hos Amazon 69 dollar. Och för att citera tv-reklamen ”but wait, there’s more”, det statistikprogram som används i kursen är R, som är….gratis! Och som med fördel kan användas tillsammans med R Studio, som också är gratis. Visst, there’s no such thing as a free statistics course, men det här är nog så nära man kan komma – den insats du lägger in torde vara en god investering.