R – gratis statistikkprogram, fullgod erstatning for SPSS

Tenk­te jeg skul­le skri­ve litt om R. SPSS er dyrt, og det er stort sett bare rike insti­tu­sjo­ner som har råd til det, R kos­ter ingen­ting i inn­kjøp, men det er litt ters­kel for å kom­me i gang. Så jeg tenk­te jeg skul­le skri­ve litt om hvor­dan man, rent prak­tisk, kom­mer i gang med å bru­ke R hvis man plut­se­lig er i en situa­sjon hvor man job­ber et sted som ikke har råd til SPSS.

1. Installere R

Det førs­te du må gjø­re, rime­lig­vis, er å få tak i soft­waren og instal­le­re den. Så, hvor­dan gjør du det? Jo, du går på http://cran.uib.no/ og der får du de instruk­se­ne du tren­ger. R fin­nes til Mac, Linux og Win­dows, og har du et tred­je alter­na­tiv, vil jeg tro du er eks­pert og kan fin­ne ut av det­te sjøl. Jeg sit­ter på Mac, og skal prø­ve å ta hen­syn til at lese­ren kan­skje har noe annet. Si gjer­ne fra hvis du er på en av de kjen­te plat­for­me­ne og får pro­ble­mer med å las­te ned, så kan jeg evt. utbro­de­re instruk­sjo­ne­ne.
  • Er du på Win­dows, vil du gå hit.
  • Er du på Mac, vil du gå hit.
  • Er du på Linux, får vi håpe du vet hva du gjør.
Såh, det førs­te du øns­ker, ten­ker jeg, er å kom­me kjapt i gang med å job­be med data­set­tet ditt. Så akku­rat her og nå tenk­te jeg føl­gen­de: La oss se på det i hen­te inn et data­sett i R sånn at vi kan job­be med det. Så her kom­mer hva du må gjø­re for å hen­te inn data fra et data­sett i Excel. Jeg kom­mer ikke til å si noe om hvor­for du må gjø­re dis­se tin­ge­ne, det kom­mer i et even­telt sei­ne­re inn­legg der­som det kom­mer kom­men­ta­rer til det­te. Du begyn­ner med å star­te appli­ka­sjo­nen R. Du får opp et vin­du som har noen iko­ner og noen grei­er. Det vik­tigs­te er like­vel det­te:
  1. Glem iko­ne­ne før du kan vel­dig mye. De bare for­vir­rer. De er nyt­ti­ge men de gjør ikke det du tror.
  2. Du må tas­te inn ting. Det er ikke pek og klikk.
  3. Du må vite hvor på dis­ken du har ting.
Sånn omtrent sånn skal det se ut: RScreenSnapz001

2. Hente inn data

For at du skal få en opp­le­vel­se av mest­ring, så tenk­te jeg vi skul­le begyn­ne enkelti: Vi har ei data­fil på nett, og den skal du kla­re å las­te inn. Du går på kom­mando­prom­pet, som ser sånn ut:
>
og tas­ter inn
data <- file ("http://blog.grendel.no/wp-content/uploads/2012/02/dagbladskoletull.tab",encoding="utf-8",open="r")
da skal skjer­men se sånn ut:
> data <- file ("http://blog.grendel.no/wp-content/uploads/2012/02/dagbladskoletull.tab",encoding="utf-8",open="r")
>
Det vi har gjort nå, er å si til R at R skal hen­te inn i min­net sitt et doku­ment som lig­ger ute på nett, det er kodet i et data­for­mat som heter utf‑8 (alter­na­tiv som du kan­skje kjen­ner igjen er ASCII eller ANSI), og vi skal kun­ne lese det. Hvis du nå sier
data
til R, så får du vite hva R for­står av det du har gjort. Da skal vin­du­et se sånn ut:
> data
                                                              description
 "http://blog.grendel.no/wp-content/uploads/2012/02/dagbladskoletull.tab"
                                                                    class
                                                                    "url"
                                                                     mode
                                                                      "r"
                                                                     text
                                                                   "text"
                                                                   opened
                                                                 "opened"
                                                                 can read
                                                                    "yes"
                                                                can write
                                                                     "no"
Det du har gjort nå, er å si til R at sym­bol­det data skal inne­hol­de en refe­ran­se til data­set­tet, som da er ei fil som lig­ger ute på net­tet. Du kun­ne kalt data hva som helst, det er ikke far­lig. Alter­na­ti­ver er natur­lig­vis
> data <- file ("~/Users/meg/Documents/dagbladskoletull.tab",encoding="utf-8",open="r")
for Mac-brukere, eller
> data <- file ("C://My Documents/dagbladskoletull.tab",encoding="utf-8",open="r")
R er ikke noe glad i å lese Excel-filer, selv om R kan det. Så langt øns­ker jeg på en måte bare å kom­me i gang til­strek­ke­lig til å kun­ne hen­te inn et data­sett og gjø­re noe med det. Du får selv over­set­te det­te til data­set­tet du øns­ker å job­be med. Men både Excel og SPSS kan lett lag­re tekst-filer. Det er ikke så enkelt som at du nå bare kan gjø­re noe med data­ene. Du har opp­ret­tet en for­bin­del­se til dem, men du har ikke hen­tet dem inn i R ennå. Det gjør du ved å si det­te:
dagbladskoletull <- read.table ( file = data, header = FALSE, sep ="t")
Hvis R ikke sier noe til deg, men bare sva­rer med
>
så har du gjort det rik­tig. Du har åpnet en for­bin­del­se med data­ene og fått R til å lese inn data der­fra. Det er en grunn til at det er to trinn og ikke et, men den er tek­nisk, så den hop­per vi over. Det du har gjort er å si til R at sym­bo­let dag­blad­skole­tull skal bli asso­si­ert med date­ne som sym­bol­det data refe­rer til. Øvers­te lin­je inne­hol­der ikke navn på data­ene, og data­ene er skilt med tab-tegn (t). Hade det vært kom­ma-sepa­rert (og da had­de fil­nav­net gjer­ne slut­tet med .csv) så had­de det stått sep = «,». sier du nå
names(dagbladskoletull)
Vil R sva­re
 [1] "V1"  "V2"  "V3"  "V4"  "V5"  "V6"  "V7"  "V8"  "V9"  "V10" "V11" "V12" "V13" "V14" "V15"
[16] "V16" "V17"
>
For­di vi har sub­bet inn et data­sett med 17 vari­ab­le uten å gi dem navn. Det gjør vi sånn:
install.packages("reshape")
library(reshape)
names(E) <- c ("Kommune", "Resultat på nasjonale prøver", "Dagbladets rangering", "Gjennomsnittlig grunnskolepoeng", "Driftsutgifter", "Gjennomsnittlig gruppestørrelse", "Andel elever med direkte overgang fra grunnskole til videregående opplæring", "Andel lærere med universitetsutdannelse", "Mobbing", "Folketall", "Kommunenummer", "Engelskresultat", "Norskresultat", "Matteresultat", "Andel med grunnskole", "Andel med videregående skole", "Andel med universitetsutdannelse")
Data­ene er hen­tet fra Dag­bla­dets serie om sko­le-Nor­ge som de kjør­te som­mer­en 2010. Jeg har lagt til noen data fra Sta­tis­tisk Sen­tral­byrå sjøl. Alle data­ene er offent­lig til­gjen­ge­li­ge. Det førs­te vi skal gjø­re omfat­ter noen besver­gel­ser igjen. Bare tast inn det­te:
install.packages("psych")
library(psych)
describe(dagbladskoletull)
Så får du ut
                                                                            var   n     mean
Kommune*                                                                      1 430   215.50
Resultat på nasjonale prøver                                                  2 403   209.73
Dagbladets rangering                                                          3 404   196.12
Gjennomsnittlig grunnskolepoeng                                               4 415    97.38
Driftsutgifter                                                                5 415    86.13
Gjennomsnittlig gruppestørrelse                                               6 415  1850.34
Andel elever med direkte overgang fra grunnskole til videregående opplæring   7 415    11.94
Andel lærere med universitetsutdannelse                                       8 415    39.63
Mobbing                                                                       9 415     1.46
Folketall                                                                    10 430 11482.01
Kommunenummer                                                                11 430  1185.80
Engelskresultat                                                              12 407     2.94
Norskresultat                                                                13 408     3.04
Matteresultat                                                                14 392     3.02
Andel med grunnskole                                                         15 430    33.98
Andel med videregående skole                                                 16 430    19.90
Andel med universitetsutdannelse                                             17 430    46.12
                                                                                  sd  median
Kommune*                                                                      124.27  215.50
Resultat på nasjonale prøver                                                  119.44  210.00
Dagbladets rangering                                                          117.33  186.00
Gjennomsnittlig grunnskolepoeng                                                 2.90   98.00
Driftsutgifter                                                                  6.86   86.70
Gjennomsnittlig gruppestørrelse                                               568.45 1743.00
Andel elever med direkte overgang fra grunnskole til videregående opplæring     2.38   12.00
Andel lærere med universitetsutdannelse                                         3.37   39.70
Mobbing                                                                         0.16    1.45
Folketall                                                                   35013.81 4559.50
Kommunenummer                                                                 577.88 1241.50
Engelskresultat                                                                 0.24    2.90
Norskresultat                                                                   0.27    3.00
Matteresultat                                                                   0.25    3.00
Andel med grunnskole                                                            6.57   33.10
Andel med videregående skole                                                    5.62   18.90
Andel med universitetsutdannelse                                                4.53   46.55
                                                                            trimmed     mad
Kommune*                                                                     215.50  159.38
Resultat på nasjonale prøver                                                 209.96  152.71
Dagbladets rangering                                                         194.51  142.33
Gjennomsnittlig grunnskolepoeng                                               97.85    2.97
Driftsutgifter                                                                86.46    6.23
Gjennomsnittlig gruppestørrelse                                             1798.49  459.61
Andel elever med direkte overgang fra grunnskole til videregående opplæring   11.99    2.52
Andel lærere med universitetsutdannelse                                       39.75    1.63
Mobbing                                                                        1.45    0.15
Folketall                                                                   6216.65 4309.18
Kommunenummer                                                               1212.38  753.16
Engelskresultat                                                                2.94    0.30
Norskresultat                                                                  3.03    0.30
Matteresultat                                                                  3.01    0.15
Andel med grunnskole                                                          33.49    5.56
Andel med videregående skole                                                  19.22    4.67
Andel med universitetsutdannelse                                              46.45    4.52
                                                                              min      max
Kommune*                                                                      1.0    430.0
Resultat på nasjonale prøver                                                  1.0    415.0
Dagbladets rangering                                                          2.0    409.0
Gjennomsnittlig grunnskolepoeng                                              82.0    100.0
Driftsutgifter                                                               43.8    100.0
Gjennomsnittlig gruppestørrelse                                               0.0   4519.0
Andel elever med direkte overgang fra grunnskole til videregående opplæring   4.5     17.4
Andel lærere med universitetsutdannelse                                       0.0     49.1
Mobbing                                                                       1.0      2.4
Folketall                                                                   215.0 605005.0
Kommunenummer                                                               101.0   2030.0
Engelskresultat                                                               2.1      3.6
Norskresultat                                                                 2.2      4.1
Matteresultat                                                                 2.2      4.7
Andel med grunnskole                                                         17.6     63.8
Andel med videregående skole                                                  9.2     46.9
Andel med universitetsutdannelse                                             26.9     56.8
                                                                               range  skew
Kommune*                                                                       429.0  0.00
Resultat på nasjonale prøver                                                   414.0 -0.02
Dagbladets rangering                                                           407.0  0.10
Gjennomsnittlig grunnskolepoeng                                                 18.0 -1.68
Driftsutgifter                                                                  56.2 -0.96
Gjennomsnittlig gruppestørrelse                                               4519.0  1.06
Andel elever med direkte overgang fra grunnskole til videregående opplæring     12.9 -0.24
Andel lærere med universitetsutdannelse                                         49.1 -7.71
Mobbing                                                                          1.4  1.00
Folketall                                                                   604790.0 12.63
Kommunenummer                                                                 1929.0 -0.29
Engelskresultat                                                                  1.5 -0.10
Norskresultat                                                                    1.9  0.13
Matteresultat                                                                    2.5  0.99
Andel med grunnskole                                                            46.2  0.89
Andel med videregående skole                                                    37.7  1.42
Andel med universitetsutdannelse                                                29.9 -0.75
                                                                            kurtosis      se
Kommune*                                                                       -1.20    5.99
Resultat på nasjonale prøver                                                   -1.19    5.95
Dagbladets rangering                                                           -1.18    5.84
Gjennomsnittlig grunnskolepoeng                                                 4.13    0.14
Driftsutgifter                                                                  3.36    0.34
Gjennomsnittlig gruppestørrelse                                                 2.31   27.90
Andel elever med direkte overgang fra grunnskole til videregående opplæring    -0.17    0.12
Andel lærere med universitetsutdannelse                                        91.27    0.17
Mobbing                                                                         3.45    0.01
Folketall                                                                     199.96 1688.52
Kommunenummer                                                                  -1.19   27.87
Engelskresultat                                                                 0.56    0.01
Norskresultat                                                                   0.62    0.01
Matteresultat                                                                   5.72    0.01
Andel med grunnskole                                                            1.56    0.32
Andel med videregående skole                                                    3.07    0.27
Andel med universitetsutdannelse                                                0.91    0.22
Og det­te er noe psy­ko­lo­ger bur­de kjen­ne igjen … Er det ting som er vans­ke­lig å skjøn­ne her eller dålig for­klart, i ifra, så skal jeg opp­da­te­re teks­ten. Hvis det blir nok posi­ti­ve til­bake­mel­din­ger, dek­ker jeg regre­sjons­ana­ly­se nes­te gang 🙂
nb_NONorwegian