Kategoriarkiv: programmering

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.

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.

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.

Att välja statistikprogram

Sedan jag startade den här bloggen har jag många gånger fått frågan om vilket statistikprogram man bör välja för att göra statistiska analyser. Det är inte en helt enkel fråga att besvara. Det finns vitt skilda åsikter och tvärtemot vad man kan tro väcker diskussioner av detta slag heta känslor. Det kan liknas vid de känsloyttring som kommer till uttryck när olika operativsystem för datorer ska diskuteras, och i båda fallen tenderar de som förespråkar gratislösningar och open source att argumentera med nästan religiösa undertoner, därmed inte sagt att de har fel.

Det finns ett stort antal statistikprogram att välja bland, men för många antar jag att valet står mellan R, SAS, SPSS och Stata. De är i alla fall de program som jag i första hand är bekant med. Om man redan är bekant med Python kan SciPy och Julia var en annan väg att gå. Och om man endast vill göra enklare beräkningar kan i vissa fall ett kalkylprogram, SQL eller något annat motsvarande fungera utmärkt.

Vilket är då det bästa statistikprogrammet? Det är en knepig fråga. Det är lite som med instrument; är en Fender Telecaster bättre än en Jaguar? Det beror lite på vad man gillar, vad man har tänkt göra och i vilket sammanhang. Statistikprogrammen har sina olika programmeringsspråk och som med alla språk kan det krångliga och omständliga bli en del av charmen, om man lär sig bemästra språket. Men, anyways, här är mina fem cent om de fyra programmen. Och ja, jag skulle gissa att många har avvikande uppfattningar.

SAS
Man skulle kunna beskriva SAS som mitt modersmål. Jag har knackat SAS-kod i över 10 års tid. Möjligen är det därför jag har lärt mig att gilla den omständliga syntaxen. Men det går inte att förbise att SAS har ett programmeringsspråk som är en rest från svunna tider (tider då hålkort användes) och det är både knöligt och inkonsekvent. Dessutom får man ofta skriva jämförelsevis mycket kod för att få något uträttat. Grafiken är också begränsad, även om förbättringar har skett på senare tid. Styrkan ligger i förmågan att hantera stora datamängder, olika typer av datakällor och databaser, samt att det är stabilt. Att det är stabilt är förmodligen en orsak till att det är populärt bland dem som inte har råd med fel eller problem i samband med uppdateringar. Baksidan av det myntet är att det tar lång tid innan nya metoder implementeras. Visserligen finns goda möjligheter att själv programmera sådant, men det tar tid och kan vara krävande. En ytterligare nackdel är att de årliga licenskostnaderna är höga.

SPSS
Mitt intryck är, lite elakt, att SPSS framför allt är populärt bland personer som inte kan så mycket statistik. Och många som använder SPSS gör det genom programmets menyer snarare än genom att skriva kod. Det är ett arbetssätt som jag starkt avråder ifrån (även om man i SPSS kan logga hur man har klickat i menyer och på så vis ändå få arbetet spårbart och reproducerbart). Samtidigt kan jag förstå att det används så då det är lätt att klicka fram några enkla tabeller, och det är enkelt att sedan flytta dem från SPSS till t.ex. Word. Fast med tanke på att SPSS är rätt dyrt, i synnerhet om man vill köpa de moduler som krävs för lite mer avancerad analys, blir det i så fall ett väl exklusivt verktyg för något väldigt enkelt. Det bör dock nämnas att det även går att göra avancerade analyser i SPSS och många skriver kod snarare än att klicka i menyer. Själv är jag inte alls förtjust i syntaxen i SPSS. Man kan visserligen använda Python i SPSS-kod, men då väcks frågan om det kanske inte är bättre att använda SciPy och Julia istället (åtminstone blir det billigare). Även grafiken i SPSS lämnar en del att önska.

Stata
Bland många samhällsvetare är Stata det mest populära statistikprogrammet. Det finns ett flertal skäl till detta. Ett är att nya statistiska metoder implementeras förhållandevis snabbt. Dessutom finns möjligheter för användare att skriva program som på ett enkelt sätt kan laddas ned av andra användare och anropas på samma sätt som officiella kommandon. Ett annat skäl är att grafiken i Stata är mycket bra. Visserligen kostar Stata en slant, men den slanten är mindre än för SAS och SPSS och framför allt används inte tidsbegränsad licenser (även om man måste betala om man vill uppgradera efter att en ny version har släppts ). En lite märklig egenhet hos Stata är att något så enkelt som att ta fram en korstabell och flytta den till Excel är oväntat omständligt, även om det naturligtvis finns lösningar (och kopplingen mot t.ex. Excel har förbättrats i senare versioner). Stata har även vissa brister när det gäller hantering av stora dataset och kopplingar mot olika datakällor, även om det har förbättrats en del. En förklaring är att användarna snarare har varit akademiker än statistikproducenter. På vissa håll argumenteras för att programmering i Stata har brister, men jag gillar den. Framför allt finns mängder av kraftfulla funktioner som är värdefulla vid manipulering och redigering av data.

R
Det new kid on the block i dessa sammanhang är statistikprogrammet som kort och gott heter R. Det är både gratis och open source. När det gäller priset är det med andra ord en klar vinnare bland de kandidater som jag tar upp här. På många sätt liknar R tidigare nämnda Stata. Fast om användarskrivna kommandon utgör en del för många användare av Stata är det inget emot vad som är fallet för R. Här finns en uppsjö av olika så kallade paket att ladda ned, och antalet växer kraftigt. Över huvud taget har R ett starkt momentum, inte minst vid amerikanska universitet där det har vunnit stor mark. Att det finns en livlig rörelse kring R gör att nya metoder implementeras snabbt och det finns utmärkta lösningar för allehanda uppgifter, som exempelvis att hämta in Tweets eller att visualisera nätverk. Baksidan av myntet är att det finns mängder av lösningar och de har inte enhetlig form och det kan vara svårt att veta om man kan lita på den som har tagit fram lösningen och att den uppdateras om fel upptäcks, dvs. de problem som ofta finns med open source.  R delar många andra egenskaper med Stata, såsom mycket bra grafik (än bättre för R skulle jag säga) och lite mer problem med riktigt stora datamängder (även om lösningar finns och fler är på gång). Vissa företag kan nog dra sig för att  gå över till ett gratisprogram som R, men å andra sidan används det flitigt vid t.ex. Google.

 Summering
Så vad landar detta i? Det är inte helt självklart. Om du befinner dig i en miljö där ett visst program används kan finnas fördelar med att använda samma program som dina kollegor, och samma gäller om du siktar på ett arbete inom ett visst område (där kunskap om ett visst statistikprogram kan vara en förutsättning för att få jobb). En annan kritisk fråga är om du har någon som betalar för ditt statistikprogram. Om inte är förmodligen endast R eller möjligen Stata rimliga alternativ. Nu kanske ni tycker att jag ska tala ur skägget och ge ett konkret råd, men det är som sagt inte lätt att ge ett definitivt svar. För de analyser jag gör är ofta Stata ett alternativ jag vänder mig till. Jag tycker att tröskeln för att lära sig det är något lägre än R (och betydligt lägre än för SAS) och dessutom är den inbyggda hjälpen i Stata riktigt bra. Fast sedan R Studio (ett gränssnitt för R) kom till R har jag börjat gilla det allt mer. Och jag tror att R kommer att bli allt mer betydelsefullt under kommande år, i synnerhet om man som jag är intresserad av visualisering av data. Så, om du inte får ditt statistikprogram bekostat av någon annan är nog R (med R Studio) rätt väg att gå. Annars kan i första hand Stata vara ett alternativ att överväga. Och som i övriga livet är det bra att kunna hantera fler än ett verktyg.

För den som vill få tips för de olika programmen har jag samlat en del länkar via ”Länkar” i menyn ovan.

Tips för Stata

Jag har fått en hel del frågor kring vilket statistikprogram man bör välja och jag har tänkt utveckla min syn i ett senare inlägg. Fast här och nu blir det bara några nya tips för er som använder er av statistikprogrammet Stata.

Stata har själva startat en blogg sedan en tid tillbaka, innehåller en hel del matnyttigt. De har även en egen kanal på youtube där de har en hel del instruktionsvideor. Tyvärr visar de där allt genom att klicka i menyer, vilket är ett sätt analysera som jag starkt avråder ifrån. Å andra sidan genererar Stata kod då du klickar i menyer, så du kan använda den koden för att skapa program (och till skillnad från t.ex. SPSS genererar inte Stata en massa onödig skräp i sådana fall).

För den som vill skapa grafer i Stata är deras egen guide till hjälp. Den här bedrövligt designade sidan har också en rad intressanta exempel. Även UCLA har en del bra exempel.

Slutligen vill jag tipsa om att Världsbankens Statamodul är uppdaterad. Den är en enkel väg till spännande analyser av deras data. För mer information se här, eller installera via -ssc install wbopendata-.

 

Möten

I’m so thankful
That we’re strangers when we meet
I’m in clover
For we’re strangers when we meet

Även i dessa elektroniska tider är det svårt att slå det personliga mötet. Och för den som vill kombinera nätets möjligheter med verklighetens möten är Meetup en fantastisk plattform. Där kan du finna likasinnade inom en rad olika områden. Det är bara att gå med i en grupp och sedan anmäla sig till nästa möte. Även om det är en övervikt av grupper inriktade mot datorprogrammering inom olika områden (neo4j, big data, R, etc) finns det även grupper för olika språk, filmintresserade, osv. Och hittar man inte det man söker kan man starta en egen grupp. Själv tänker jag besöka R-gruppen Stockholm R useR:s andra möte i morgon.

Gratis är gott

Uppdaterad 15 oktober 2012: Alberto Cairo har meddelat att The Knight Center har begränsat antalet deltagare i kursen av rädsla för att servrarna inte ska klara av trycket. Kursen kommer dock att ges igen i januari och vid ytterligare tillfällen senare om intresset finns.

Världen förändras. Som jag tidigare har skrivit är ett av världens mest kraftfulla statistikprogram gratis. Det heter R. För den som är intresserad av att lära sig mer om R eller andra program finns mängder av resurser på nätet. Dessutom finns allt fler kurser som tillhandahålls gratis. Exempelvis går just nu en fyra veckors kurs i R på Coursera. Där finns många andra gratiskurser, framför allt inom statistik och matematik, men även grekisk mytologi med mera.

För den som är intresserad av visualisering av data utan att det blir alltför tekniskt rekommenderas den kommande kursen Introduction to Infographics and Data Visualization som ges av Knight Center vid University of Texas. Föreläsare är den kände Alberto Cairo. Han har för övrigt nyligen kommit ut med boken The Functional Art. Läs en positiv recension av den här. Jag tror att kursen kan bli riktigt intressant. Om du är intresserad kan du se Alberto presentera kursen i ett videoklipp nedan.

Introduction to Infographics and Data Visualization from Knight Center on Vimeo.

 

Statistikprogrammet R

För den som vill analysera datamaterial finns en uppsättning statistikprogram att välja bland. De har sina för- och nackdelar. Ett kraftfullt program som allt fler använder, framför allt inom den amerikanska universitetsvärlden, är R. Förutom att det är ett kraftfullt program med bra grafik har det fördelen att det är gratis. Ett tecken på hur populärt det blivit i universitetsvärlden är den sammanställning av 50 olika introduktioner till programmet från olika universitet som finns här. Jag har även en del länkar på den här sidan, se menyn ovan. För att ladda ned programmet gå hit.

Introduktioner till Python

Det är mycket möjligt att det här är mindre intressant för många av er, men för några är det förhoppningsvis av större intresse. Jag har på sistone lagt ned en del tid på att lära mig hämta hem data från olika webbsidor för att sedan behandla det vidare i olika program. Ett smidigt sätt att göra det är med hjälp av Python, även om det kräver en del programmering. Python är ett smidigt programspråk som är öppet och gratis (och ja, namnet kommer från Monty Python). Det kan laddas ned här. Det finns olika versioner att välja bland. Det skedde en del större förändringar i och med introduktionen av version 3.x och många paket, som exempelvis det användbara Beautiful Soup, fungerar mindre bra i den versionen. Det allmänna tipset verkar vara att välja senaste version inom 2.x.

Det är bara att ladda ned programmet och installera det. Om du kör windows behöver du troligen lägga till sökvägen till Python (t.ex. C:\Python27) till systemvariablerna (Dator/egenskaper/avancerade systeminställningar/miljövariabler och under Path) för att kunna starta programmet i kommandotolken (se här för instruktioner). Du hittar dokumentation och instruktioner på Pythons webbsida. Sedan är det bara att börja knacka kod. Om man är van vid statistikprogram som t.ex. Stata eller programmering i någon annat språk är det ganska lätt att komma igång. Dessutom finns det en del bra instruktioner i videoformat på nätet. Nedan ger jag några tips på några som jag har hittat och som finns tillgängliga via YouTube. De tar upp ungefär samma saker, så hitta någon som du gillar.

Bucky Roberts introduktion till Python: skön, avslappnad stil (han har även en fortsättning på YouTube där han går igenom hur man skapar ett GUI):

 

New Think Tanks introduktion: lite torrare än Bucky, men lite mer ingående och konventionell (har även en introduktion till version 3.x):

Slutligen kan jag tipsa om Googles interna utbildning i Python: lite längre men håller ändå ett bra tempo.