Published

August 14, 2025

2.1 Omkodning

Code
### Tar bort observationer som inte är tjej eller kille
df <- df %>%
  filter(!grepl("annan könsidentitet|vill inte svara", tolower(q3)))

df <- df %>% 
  filter(!is.na(q3))

### Byter namn på demografiska variabler
count (df, q3)
# A tibble: 2 × 2
  q3        n
  <chr> <int>
1 Kille   671
2 Tjej    719
Code
count (df, q1)
# A tibble: 2 × 2
  q1                          n
  <chr>                   <int>
1 År 2 på gymnasiet         744
2 Årskurs 9 i grundskolan   646
Code
count (df, q6)
# A tibble: 5 × 2
  q6                      n
  <chr>               <int>
1 Annat boende           19
2 Bostadsrätt           333
3 Hyreslägenhet         266
4 Villa/parhus/radhus   767
5 <NA>                    5
Code
d <- df %>% 
  rename(Kön = q3) %>% 
  rename(Årskurs = q1) %>%
  rename(Bostad = q6) 

count (d, Kön)
# A tibble: 2 × 2
  Kön       n
  <chr> <int>
1 Kille   671
2 Tjej    719
Code
count (df, q7, q8, q9)
# A tibble: 53 × 4
   q7        q8                         q9                              n
   <chr>     <chr>                      <chr>                       <int>
 1 I Sverige I Sverige                  I Sverige                     863
 2 I Sverige I Sverige                  I ett land i övriga Europa     37
 3 I Sverige I Sverige                  I ett land i övriga Norden     16
 4 I Sverige I Sverige                  I ett land i övriga världen    77
 5 I Sverige I Sverige                  <NA>                            1
 6 I Sverige I ett land i övriga Europa I Sverige                      29
 7 I Sverige I ett land i övriga Europa I ett land i övriga Europa     28
 8 I Sverige I ett land i övriga Europa I ett land i övriga världen     6
 9 I Sverige I ett land i övriga Norden I Sverige                      13
10 I Sverige I ett land i övriga Norden I ett land i övriga Europa      3
# ℹ 43 more rows
Code
### Koda om kön till numerisk + rätt etiketter

d$Kön<-recode(d$Kön,"'Tjej'=1;'Kille'=2",as.factor=FALSE)
d$Kön <- labelled(d$Kön, labels = c("Tjej" = 1, "Kille" = 2))

d$Årskurs<-recode(d$Årskurs,"'Årskurs 9 i grundskolan'=1;'År 2 på gymnasiet'=2",as.factor=FALSE)
d$Årskurs <- labelled(d$Årskurs, labels = c("årskurs 9" = 1, "år 2" = 2))

2.2 Välbefinnande

Code
count (df, q13, q20)
# A tibble: 29 × 3
   q13         q20               n
   <chr>       <chr>         <int>
 1 Aldrig      Lika bra          1
 2 Aldrig      Lite bättre       2
 3 Aldrig      Lite sämre        5
 4 Aldrig      Mycket bättre     5
 5 Aldrig      Mycket sämre      8
 6 Ganska ofta Lika bra        203
 7 Ganska ofta Lite bättre     161
 8 Ganska ofta Lite sämre       66
 9 Ganska ofta Mycket bättre   114
10 Ganska ofta Mycket sämre     12
# ℹ 19 more rows
Code
välbefinnande <- c("q13", "q14", "q15", "q16", "q17", "q18", "q19", "q20")


 # Koda om till numeriska + etiktter. Låga värden = lågt välbefinnande
d <- d %>%
  mutate(across(q13:q17, ~ recode(.x,
                                  "'Mycket ofta'=4; 'Ganska ofta'=3; 'Ibland'=2; 'Sällan'=1; 'Aldrig'=0", 
                                  as.factor = FALSE))) %>%
  mutate(across(q13:q17, ~ labelled(.x,
                                    labels = c("Mycket ofta" = 4,
                                               "Ganska ofta" = 3,
                                               "Ibland" = 2,
                                               "Sällan" = 1,
                                               "Aldrig" = 0))))

d <- d %>%
  mutate(across(q18:q19, ~ recode(.x,
                                  "'Alltid'=5; 'Mycket ofta'=4; 'Ganska ofta'=3; 'Ibland'=2; 'Sällan'=1; 'Aldrig'=0", 
                                  as.factor = FALSE))) %>%
  mutate(across(q18:q19, ~ labelled(.x,
                                    labels = c("Alltid" = 5,
                                               "Mycket ofta" = 4,
                                               "Ganska ofta" = 3,
                                               "Ibland" = 2,
                                               "Sällan" = 1,
                                               "Aldrig" = 0))))

d$q20<-recode(d$q20,"'Mycket bättre'=4;'Lite bättre'=3; 'Lika bra'=2; 'Lite sämre'=1; 'Mycket sämre'=0",as.factor=FALSE)
d$q20 <- labelled(d$q20, labels = c("Mycket bättre" = 4, "Lite bättre" = 3, "Lika bra" = 2, "Lite sämre" = 1,"Mycket sämre" = 0))


count (d, q13)
# A tibble: 6 × 2
  q13                  n
  <dbl+lbl>        <int>
1  0 [Aldrig]         21
2  1 [Sällan]         59
3  2 [Ibland]        237
4  3 [Ganska ofta]   556
5  4 [Mycket ofta]   514
6 NA                   3
Code
count (d, q14)
# A tibble: 6 × 2
  q14                  n
  <dbl+lbl>        <int>
1  0 [Aldrig]         26
2  1 [Sällan]         71
3  2 [Ibland]        211
4  3 [Ganska ofta]   483
5  4 [Mycket ofta]   593
6 NA                   6
Code
count (d, q15)
# A tibble: 6 × 2
  q15                  n
  <dbl+lbl>        <int>
1  0 [Aldrig]         36
2  1 [Sällan]         90
3  2 [Ibland]        298
4  3 [Ganska ofta]   521
5  4 [Mycket ofta]   439
6 NA                   6
Code
count (d, q16)
# A tibble: 6 × 2
  q16                  n
  <dbl+lbl>        <int>
1  0 [Aldrig]         74
2  1 [Sällan]        252
3  2 [Ibland]        429
4  3 [Ganska ofta]   396
5  4 [Mycket ofta]   234
6 NA                   5
Code
count (d, q17)
# A tibble: 6 × 2
  q17                  n
  <dbl+lbl>        <int>
1  0 [Aldrig]         53
2  1 [Sällan]        195
3  2 [Ibland]        419
4  3 [Ganska ofta]   454
5  4 [Mycket ofta]   264
6 NA                   5
Code
count (d, q18)
# A tibble: 6 × 2
  q18                 n
  <dbl+lbl>       <int>
1 0 [Aldrig]         14
2 1 [Sällan]         49
3 2 [Ibland]        196
4 3 [Ganska ofta]   446
5 4 [Mycket ofta]   528
6 5 [Alltid]        157
Code
count (d, q19)
# A tibble: 7 × 2
  q19                  n
  <dbl+lbl>        <int>
1  0 [Aldrig]         46
2  1 [Sällan]        125
3  2 [Ibland]        271
4  3 [Ganska ofta]   415
5  4 [Mycket ofta]   314
6  5 [Alltid]        210
7 NA                   9
Code
count (d, q20)
# A tibble: 6 × 2
  q20                    n
  <dbl+lbl>          <int>
1  0 [Mycket sämre]     42
2  1 [Lite sämre]      154
3  2 [Lika bra]        465
4  3 [Lite bättre]     420
5  4 [Mycket bättre]   307
6 NA                     2

2.3 PSF

Code
psf <- c("q21", "q22", "q23", "q24", "q25", "q26", "q27", "q28")

2.4 Våld

Code
våld_utsatt <- c("q21", "q22", "q23", "q24", "q25", "q26", "q27", "q28")

våld_förövare <- c("q21", "q22", "q23", "q24", "q25", "q26", "q27", "q28")
Code
#d %>% 
  #select(q13:q20) %>% 
  #pivot_longer(everything()) %>% 
  #distinct(value)

Sektionen i PDF/pappers-enkäten inleds med meningen: “NÅGRA FRÅGOR OM HUR DU MÅR”.

Code
# Skapa dataframe för välbefinnande utan NA:s
d_v <- d %>% 
  select(Kön, Årskurs, Bostad, any_of(välbefinnande))%>% 
  na.omit()

# Skapa DIF df
d_dif_v <- d_v %>% 
  select(Kön, Årskurs, Bostad) %>% 
  mutate(across(everything(), ~ factor(.x)))

# remove non-items
d_v <- d_v %>% 
  select(!c(Kön,Årskurs,Bostad))

2.5 Färger

Code
RISEpalette1 <- colorRampPalette(colors = c("#009ca6", "#e83c63", "#ffe500"))(6)
#scales::show_col(RISEpalette1)

RISEpalette2 <- colorRampPalette(colors = c("#009ca6", "#482d55", "#e83c63", "#ffe500"))(8)

gender_colors <- c("Kille" = colorspace::lighten("#F5A127", amount = 0.2) , "Tjej" = colorspace::lighten("#009CA6", amount = 0.2))
scale_color_gender <- partial(scale_color_manual, values = gender_colors)
scale_fill_gender <- partial(scale_fill_manual, values = gender_colors)

labels_v_13_17 <-c(
                                               "Mycket ofta" = 4,
                                               "Ganska ofta" = 3,
                                               "Ibland" = 2,
                                               "Sällan" = 1, "Aldrig" = 0)
names(labels_v_13_17)
[1] "Mycket ofta" "Ganska ofta" "Ibland"      "Sällan"      "Aldrig"     
Code
labels_v_18_19 <-c("Alltid" = 5,
                                               "Mycket ofta" = 4,
                                               "Ganska ofta" = 3,
                                               "Ibland" = 2,
                                               "Sällan" = 1, "Aldrig" = 0)
names(labels_v_18_19)
[1] "Alltid"      "Mycket ofta" "Ganska ofta" "Ibland"      "Sällan"     
[6] "Aldrig"     
Code
labels_v_20 <-c("Mycket bättre" = 4,
                                               "Lite bättre" = 3,
                                               "Lika bra" = 2,
                                               "Lite bättre" = 1,
                                               "Mycket bättre" = 0)
names(labels_v_20)
[1] "Mycket bättre" "Lite bättre"   "Lika bra"      "Lite bättre"  
[5] "Mycket bättre"

2.6 Deskriptiva data Välbefinnande

2.7 Formatering figur

Code
plot_gender <- function(data, items, kolumner = 2, labelwrap = 24, text_ypos = 28, text_size = 3) {
  
  data %>% 
    pivot_longer(all_of(items),
                 names_to = "itemnr") %>% 
    group_by(itemnr,Kön) %>% 
    count(value) %>% 
    mutate(percent = n*100/sum(n)) %>% 
    ungroup() %>% 
    mutate(Kön = factor(Kön, labels = c("Tjej","Kille")),
           value = factor(value, ordered = T)) %>% 
    left_join(itemlabels, by = "itemnr") %>%
    
    ggplot(aes(x = value, y = n, fill = Kön)) +
    geom_col(position = "dodge") +
    geom_text(aes(label = paste0(round(percent,1),"%"), 
                  y = text_ypos),
              position = position_dodge(width = 0.9),
              angle = 0,
              color = "black",
              size = text_size,
              hjust = "left") +
    facet_wrap(~item, 
               ncol = kolumner,
               labeller = labeller(item = label_wrap_gen(labelwrap))) +
    scale_fill_gender() +
    theme_rise(fontfamily = "Avenir") +
    labs(x = "Svarskategori",
         y = "Antal svar",
         caption = "Andel svar anges i procent i figuren.") +
    coord_flip()
}

2.8 Deskriptiva figurer blivit välbefinnande

Code
## Utfryst, rykte, trakasserad, begränsad
d %>% 
  plot_gender(items = c("q13", "q14", "q15", "q16", "q17"), labelwrap = 32, text_ypos = 20) +
  scale_x_discrete(labels = str_wrap(names(labels_v_13_17), 14))

Code
d %>% 
  plot_gender(items = c("q18", "q19"), labelwrap = 32, text_ypos = 20) +
  scale_x_discrete(labels = str_wrap(names(labels_v_18_19), 14))

Code
d %>% 
  plot_gender(items = c("q20"), labelwrap = 32, text_ypos = 20) +
  scale_x_discrete(labels = str_wrap(names(labels_v_20), 14))

2.8.1 Demografi

2.8.2 Item-data

Code
RItileplot(d_v)

Code
RIbarstack(d_v)

Code
RIbarplot(d_v)

2.9 Analys 1 Välbefinnande samtliga items

itemnr item
q13 lycka och glädje?
q14 ett intresse för livet? 
q15 dig nöjd med livet som det är just nu?
q16 dig lugn och avslappnad?
q17 dig pigg och full av energi?
q18 Hur ofta tycker du att livet är härligt?
q19 Hur ofta känner du dig nöjd med hur du ser ut?
q20 Om du jämför dig med andra i din ålder, tror du att din framtid kommer vara sämre, lika bra eller bättre?
Code
aisp(d_v) %>% 
  as.data.frame() %>% 
  set_names("h > 0.3") %>% 
  arrange(`h > 0.3`) %>% 
  kbl_rise(tbl_width = 20)
h > 0.3
q20 0
q13 1
q14 1
q15 1
q16 1
q17 1
q18 1
q19 1
Code
d_v %>% 
  #select(!any_of(removed_items)) %>% 
  RIbootRestscore(iterations = 250, samplesize = 600, cpu = 8)
Item Item-restscore result % of iterations Conditional MSQ infit Relative average item location
q20 underfit 100.0 1.93 -0.96
q19 underfit 99.2 1.36 -0.67
q13 overfit 100.0 0.69 -1.68
q14 overfit 100.0 0.68 -1.66
q15 overfit 100.0 0.68 -1.31
q18 overfit 100.0 0.74 -1.19
q17 overfit 37.2 0.92 -0.80
Note:
Results based on 250 bootstrap iterations with n = 600 and 8 items. Conditional mean-square infit based on complete responders only (n = 1365).
Code
RIrestscore(d_v)
Item Observed value Model expected value Absolute difference Adjusted p-value (BH) Statistical significance level Location Relative location
q13 0.77 0.58 0.19 0.000 *** -0.59 -1.68
q14 0.76 0.59 0.17 0.000 *** -0.57 -1.66
q15 0.76 0.59 0.17 0.000 *** -0.22 -1.31
q16 0.60 0.60 0.00 0.913 0.56 -0.54
q17 0.64 0.60 0.04 0.011 * 0.29 -0.80
q18 0.76 0.60 0.16 0.000 *** -0.10 -1.19
q19 0.51 0.62 0.11 0.000 *** 0.42 -0.67
q20 0.25 0.60 0.35 0.000 *** 0.13 -0.96
Code
RIpcmPCA(d_v)

PCA of Rasch model residuals

Eigenvalues Proportion of variance
1.96 32.1%
1.43 19.7%
1.16 14.9%
1.02 11.2%
0.85 8.3%
Code
RIloadLoc(d_v)

Code
RIbootLRT(d_v)
Result n Percent
Statistically significant 1000 100
Code
RIpartgamLD(d_v)
Item 1 Item 2 Partial gamma SE Lower CI Upper CI Adjusted p-value (BH)
q14 q13 0.496 0.046 0.406 0.586 0.000
q13 q14 0.492 0.046 0.403 0.582 0.000
q13 q15 0.392 0.050 0.295 0.490 0.000
q15 q13 0.375 0.052 0.274 0.476 0.000
q18 q14 0.341 0.053 0.238 0.445 0.000
q14 q18 0.338 0.052 0.236 0.441 0.000
q17 q16 0.336 0.041 0.255 0.417 0.000
q13 q18 0.307 0.054 0.201 0.413 0.000
q16 q17 0.305 0.041 0.224 0.385 0.000
q14 q15 0.288 0.053 0.184 0.393 0.000
q15 q14 0.286 0.053 0.182 0.389 0.000
q18 q13 0.283 0.055 0.175 0.391 0.000
q18 q19 0.282 0.045 0.195 0.370 0.000
q15 q18 0.278 0.053 0.174 0.381 0.000
q18 q15 0.267 0.053 0.163 0.372 0.000
q15 q16 0.266 0.048 0.172 0.360 0.000
q13 q17 0.221 0.051 0.121 0.322 0.001
q13 q16 0.184 0.051 0.085 0.283 0.015
q19 q20 0.14 0.038 0.065 0.215 0.014
Code
RItargeting(d_v)

Code
RIitemHierarchy(d_v)

Code
mirt(d_v, model=1, itemtype='Rasch', verbose = FALSE) %>% 
  plot(type="trace", as.table = TRUE, 
       theta_lim = c(-5,5))

Code
RIpfit(d_v)

Code
RIpartgamDIF(d_v, d_dif_v$Kön)
Item Partial gamma SE Lower CI Upper CI Adjusted p-value (BH)
q13 -0.307 0.062 -0.429 -0.184 0.000
q20 0.23 0.048 0.136 0.324 0.000
q17 -0.226 0.054 -0.332 -0.120 0.000
q15 -0.225 0.062 -0.346 -0.103 0.002
q16 0.209 0.053 0.106 0.313 0.001
q19 0.186 0.049 0.091 0.282 0.001
Code
RIdifTableLR(d_v, d_dif_v$Kön)
Item locations
Standard errors
Item 1 2 MaxDiff All SE_1 SE_2 SE_All
q13 0.151 0.006 0.145 0.096 0.201 0.251 0.154
q14 0.136 0.075 0.061 0.117 0.196 0.225 0.145
q15 0.508 0.389 0.119 0.464 0.176 0.199 0.130
q16 1.566 0.869 0.697 1.240 0.152 0.167 0.107
q17 1.043 0.855 0.188 0.979 0.158 0.168 0.114
q18 0.64 0.491 0.149 0.582 0.252 0.246 0.170
q19 1.297 0.83 0.467 1.106 0.164 0.191 0.120
q20 0.977 0.638 0.339 0.816 0.167 0.180 0.120
Note:
Values highlighted in red are above the chosen cutoff 0.5 logits. Background color brown and blue indicate the lowest and highest values among the DIF groups.
Code
RIdifThreshFigLR(d_v, d_dif_v$Kön)

Code
#RIciccPlot(d_rest, dif = "yes", dif_var = d_dif_rest$kon)
Code
RIpartgamDIF(d_v, d_dif_v$Årskurs)
[1] "No statistically significant DIF found."
Code
RIdifTableLR(d_v, d_dif_v$Årskurs)
Item locations
Standard errors
Item 1 2 MaxDiff All SE_1 SE_2 SE_All
q13 0.09 0.054 0.036 0.096 0.219 0.240 0.154
q14 0.143 0.068 0.075 0.117 0.202 0.220 0.145
q15 0.408 0.505 0.097 0.464 0.188 0.189 0.130
q16 1.069 1.422 0.353 1.240 0.156 0.150 0.107
q17 0.902 1.064 0.162 0.979 0.162 0.162 0.114
q18 0.466 0.725 0.259 0.582 0.242 0.238 0.170
q19 1.066 1.154 0.088 1.106 0.172 0.170 0.120
q20 0.724 0.918 0.194 0.816 0.170 0.171 0.120
Note:
Values highlighted in red are above the chosen cutoff 0.5 logits. Background color brown and blue indicate the lowest and highest values among the DIF groups.
Code
RIdifThreshFigLR(d_v, d_dif_v$Årskurs)

Code
#RIciccPlot(d_rest, dif = "yes", dif_var = d_dif_rest$arskurs)
Code
RIpartgamDIF(d_v, d_dif_v$Bostad)
Item Partial gamma SE Lower CI Upper CI Adjusted p-value (BH)
q15 0.144 0.052 0.042 0.247 0.045
q16 -0.125 0.045 -0.212 -0.037 0.043
Code
#RIdifTableLR(d_v, d_dif_v$Bostad)
#RIdifThreshFigLR(d_v, d_dif_v$Bostad)
#RIciccPlot(d_rest, dif = "yes", dif_var = d_dif_rest$year)
  • Enligt Mokken passar q20 “Om du jämför dig med andra i din ålder…” inte in bland övriga
  • q20 är även starkt underfit samt q19 “Hur ofta är du nöjd med hur du ser ut?”
  • PCA 1.96
  • Lokalt beroende mellan q13 “lycka och glädje” och q14 “intresse för livet” samt q13 och q15 “nöjd med livet som det är nu
  • Targeting ganska bra, inte så mycket takeffekter, q18 “Hur ofta tycker du att livet är härligt” verkar täcka upp längst spann
  • Inga oordnade svarskategorier
  • Svarskategorierna täcker upp mycket bra

Positivt att svarskategorierna verkar fungera bra för alla items. Nu testar vi och ser om vissa av frågorna kan fungera som ett välbefinnandekonstrukt. Tar därmed bort q20 som inte verka passa in. Troligtvis ryker även q19.

Code
removed_items <- c("q20")
Code
d_backup_v <- d_v

d_v <- d_v %>% 
  select(!any_of(removed_items))

2.10 Analys 2

itemnr item
q13 lycka och glädje?
q14 ett intresse för livet? 
q15 dig nöjd med livet som det är just nu?
q16 dig lugn och avslappnad?
q17 dig pigg och full av energi?
q18 Hur ofta tycker du att livet är härligt?
q19 Hur ofta känner du dig nöjd med hur du ser ut?
Code
aisp(d_v) %>% 
  as.data.frame() %>% 
  set_names("h > 0.3") %>% 
  arrange(`h > 0.3`) %>% 
  kbl_rise(tbl_width = 20)
h > 0.3
q13 1
q14 1
q15 1
q16 1
q17 1
q18 1
q19 1
Code
d_v %>% 
  #select(!any_of(removed_items)) %>% 
  RIbootRestscore(iterations = 250, samplesize = 600, cpu = 8)
Item Item-restscore result % of iterations Conditional MSQ infit Relative average item location
q19 underfit 100.0 1.74 -0.79
q16 underfit 42.4 1.19 -0.63
q13 overfit 100.0 0.74 -1.99
q15 overfit 100.0 0.74 -1.56
q14 overfit 99.6 0.76 -1.97
q18 overfit 99.6 0.83 -1.40
Note:
Results based on 250 bootstrap iterations with n = 600 and 7 items. Conditional mean-square infit based on complete responders only (n = 1365).
Code
RIrestscore(d_v)
Item Observed value Model expected value Absolute difference Adjusted p-value (BH) Statistical significance level Location Relative location
q13 0.79 0.66 0.13 0.000 *** -0.68 -1.99
q14 0.77 0.66 0.11 0.000 *** -0.66 -1.97
q15 0.78 0.67 0.11 0.000 *** -0.25 -1.56
q16 0.62 0.68 0.06 0.004 ** 0.68 -0.63
q17 0.66 0.67 0.01 0.621 0.37 -0.94
q18 0.78 0.67 0.11 0.000 *** -0.09 -1.40
q19 0.50 0.69 0.19 0.000 *** 0.52 -0.79
Code
simfit2 <- d_v %>%
  #select(!any_of(removed_items)) %>% 
 RIgetfit(iterations = 200, cpu = 8)

d_v %>%
  #select(!any_of(removed_items)) %>% 
  RIitemfit(simfit2)
Item InfitMSQ Infit thresholds OutfitMSQ Outfit thresholds Infit diff Outfit diff Relative location
q13 0.744 [0.907, 1.102] 0.723 [0.883, 1.107] 0.163 0.16 -1.99
q14 0.76 [0.911, 1.1] 0.725 [0.873, 1.123] 0.151 0.148 -1.97
q15 0.741 [0.904, 1.089] 0.713 [0.886, 1.085] 0.163 0.173 -1.56
q16 1.186 [0.91, 1.106] 1.171 [0.916, 1.118] 0.08 0.053 -0.63
q17 1.036 [0.922, 1.08] 1.041 [0.91, 1.086] no misfit no misfit -0.94
q18 0.833 [0.915, 1.119] 0.824 [0.912, 1.099] 0.082 0.088 -1.40
q19 1.743 [0.915, 1.093] 1.771 [0.923, 1.087] 0.65 0.684 -0.79
Note:
MSQ values based on conditional calculations (n = 1365 complete cases).
Simulation based thresholds from 200 simulated datasets.
Code
RIpcmPCA(d_v)

PCA of Rasch model residuals

Eigenvalues Proportion of variance
1.67 31.3%
1.53 21.2%
1.10 16%
0.97 12%
0.91 10.4%
Code
RIloadLoc(d_v)

Code
RIbootLRT(d_v)
Result n Percent
Statistically significant 1000 100
Code
RIpartgamLD(d_v)
Item 1 Item 2 Partial gamma SE Lower CI Upper CI Adjusted p-value (BH)
q13 q14 0.463 0.048 0.368 0.557 0.000
q14 q13 0.453 0.049 0.356 0.549 0.000
q18 q14 0.325 0.055 0.218 0.432 0.000
q13 q15 0.313 0.055 0.206 0.420 0.000
q18 q19 0.31 0.046 0.220 0.400 0.000
q14 q18 0.301 0.055 0.193 0.409 0.000
q15 q13 0.301 0.055 0.193 0.408 0.000
q17 q16 0.254 0.044 0.167 0.340 0.000
q16 q17 0.247 0.043 0.162 0.332 0.000
q15 q14 0.231 0.055 0.123 0.340 0.001
q13 q18 0.229 0.058 0.115 0.343 0.004
q14 q15 0.229 0.056 0.119 0.338 0.002
q18 q13 0.198 0.060 0.080 0.315 0.041
q15 q16 0.195 0.051 0.095 0.296 0.006
q15 q18 0.195 0.057 0.083 0.306 0.027
Code
RItargeting(d_v)

Code
RIitemHierarchy(d_v)

Code
mirt(d_v, model=1, itemtype='Rasch', verbose = FALSE) %>% 
  plot(type="trace", as.table = TRUE, 
       theta_lim = c(-5,5))

Code
RIpfit(d_v)

Code
RIpartgamDIF(d_v, d_dif_v$Kön)
Item Partial gamma SE Lower CI Upper CI Adjusted p-value (BH)
q13 -0.27 0.064 -0.394 -0.145 0.000
q16 0.269 0.051 0.169 0.370 0.000
q19 0.228 0.047 0.135 0.321 0.000
q17 -0.193 0.055 -0.300 -0.086 0.003
Code
RIdifTableLR(d_v, d_dif_v$Kön)
Item locations
Standard errors
Item 1 2 MaxDiff All SE_1 SE_2 SE_All
q13 0.189 0.065 0.124 0.145 0.208 0.266 0.161
q14 0.169 0.136 0.033 0.162 0.202 0.236 0.151
q15 0.594 0.521 0.073 0.570 0.183 0.209 0.136
q16 1.84 1.127 0.713 1.506 0.162 0.179 0.115
q17 1.226 1.114 0.112 1.197 0.166 0.180 0.121
q18 0.793 0.651 0.142 0.731 0.261 0.266 0.182
q19 1.524 1.065 0.459 1.339 0.173 0.203 0.128
Note:
Values highlighted in red are above the chosen cutoff 0.5 logits. Background color brown and blue indicate the lowest and highest values among the DIF groups.
Code
RIdifThreshFigLR(d_v, d_dif_v$Kön)

Code
RIpartgamDIF(d_v, d_dif_v$Årskurs)
[1] "No statistically significant DIF found."
Code
RIdifTableLR(d_v, d_dif_v$Årskurs)
Item locations
Standard errors
Item 1 2 MaxDiff All SE_1 SE_2 SE_All
q13 0.146 0.105 0.041 0.145 0.229 0.246 0.161
q14 0.202 0.105 0.097 0.162 0.211 0.226 0.151
q15 0.517 0.614 0.097 0.570 0.197 0.197 0.136
q16 1.323 1.707 0.384 1.506 0.167 0.161 0.115
q17 1.121 1.288 0.167 1.197 0.172 0.173 0.121
q18 0.574 0.906 0.332 0.731 0.266 0.249 0.182
q19 1.308 1.381 0.073 1.339 0.182 0.180 0.128
Note:
Values highlighted in red are above the chosen cutoff 0.5 logits. Background color brown and blue indicate the lowest and highest values among the DIF groups.
Code
RIdifThreshFigLR(d_v, d_dif_v$Årskurs)

Code
RIpartgamDIF(d_v, d_dif_v$Bostad)
Item Partial gamma SE Lower CI Upper CI Adjusted p-value (BH)
q15 0.146 0.053 0.042 0.251 0.042
q16 -0.136 0.047 -0.228 -0.044 0.027
q19 -0.111 0.041 -0.191 -0.031 0.048
Code
#RIdifTableLR(d_v, d_dif_v$Bostad)
#RIdifThreshFigLR(d_v, d_dif_v$Bostad)
#RIciccPlot(d_rest, dif = "yes", dif_var = d_dif_rest$year)
  • Tar bort q19 pga. underfit och q14 pga. korrelation q13 och q18 samt lite oklart formulering

MJ: nedan tas bara 19 bort, vilket jag skulle gjort också.

Code
removed_items <- c("q20", "q19")
Code
d_v <- d_v %>% 
  select(!any_of(removed_items))

2.11 Analys 3

itemnr item
q13 lycka och glädje?
q14 ett intresse för livet? 
q15 dig nöjd med livet som det är just nu?
q16 dig lugn och avslappnad?
q17 dig pigg och full av energi?
q18 Hur ofta tycker du att livet är härligt?
Code
aisp(d_v) %>% 
  as.data.frame() %>% 
  set_names("h > 0.3") %>% 
  arrange(`h > 0.3`) %>% 
  kbl_rise(tbl_width = 20)
h > 0.3
q13 1
q14 1
q15 1
q16 1
q17 1
q18 1
Code
d_v %>% 
  #select(!any_of(removed_items)) %>% 
  RIbootRestscore(iterations = 200, samplesize = 600, cpu = 8)
Item Item-restscore result % of iterations Conditional MSQ infit Relative average item location
q16 underfit 98.5 1.37 -0.71
q17 underfit 36.0 1.17 -1.08
q13 overfit 100.0 0.75 -2.34
q15 overfit 91.0 0.81 -1.84
q14 overfit 74.5 0.83 -2.32
q18 overfit 22.5 1.06 -1.63
Note:
Results based on 200 bootstrap iterations with n = 600 and 6 items. Conditional mean-square infit based on complete responders only (n = 1365).
Code
RIrestscore(d_v)
Item Observed value Model expected value Absolute difference Adjusted p-value (BH) Statistical significance level Location Relative location
q13 0.82 0.72 0.10 0.000 *** -0.69 -2.34
q14 0.78 0.72 0.06 0.000 *** -0.67 -2.32
q15 0.80 0.73 0.07 0.000 *** -0.19 -1.84
q16 0.64 0.73 0.09 0.000 *** 0.94 -0.71
q17 0.68 0.73 0.05 0.007 ** 0.57 -1.08
q18 0.76 0.73 0.03 0.040 * 0.03 -1.63
Code
simfit3 <- d_v %>%
 RIgetfit(iterations = 200, cpu = 8)

d_v %>%
  RIitemfit(simfit3)
Item InfitMSQ Infit thresholds OutfitMSQ Outfit thresholds Infit diff Outfit diff Relative location
q13 0.754 [0.883, 1.112] 0.734 [0.887, 1.157] 0.129 0.153 -2.34
q14 0.828 [0.908, 1.075] 0.807 [0.857, 1.161] 0.08 0.05 -2.32
q15 0.813 [0.916, 1.105] 0.762 [0.901, 1.16] 0.103 0.139 -1.84
q16 1.371 [0.907, 1.085] 1.331 [0.918, 1.085] 0.286 0.246 -0.71
q17 1.169 [0.938, 1.113] 1.148 [0.925, 1.12] 0.056 0.028 -1.08
q18 1.055 [0.919, 1.076] 1.06 [0.919, 1.068] no misfit no misfit -1.63
Note:
MSQ values based on conditional calculations (n = 1365 complete cases).
Simulation based thresholds from 200 simulated datasets.
Code
RIpcmPCA(d_v)

PCA of Rasch model residuals

Eigenvalues Proportion of variance
1.64 30.9%
1.22 22.8%
1.17 18.7%
1.01 14.7%
0.94 12.7%
Code
RIloadLoc(d_v)

Code
RIbootLRT(d_v)
Result n Percent
Not statistically significant 3 0.3
Statistically significant 997 99.7
Code
RIpartgamLD(d_v)
Item 1 Item 2 Partial gamma SE Lower CI Upper CI Adjusted p-value (BH)
q13 q14 0.392 0.054 0.286 0.498 0.000
q14 q13 0.389 0.054 0.283 0.494 0.000
q18 q14 0.32 0.055 0.212 0.429 0.000
q14 q18 0.312 0.055 0.204 0.421 0.000
q15 q18 0.208 0.058 0.094 0.322 0.010
q13 q18 0.207 0.062 0.086 0.328 0.023
q13 q15 0.206 0.062 0.084 0.328 0.028
q17 q16 0.158 0.048 0.064 0.252 0.029
q16 q17 0.154 0.046 0.064 0.244 0.023
Code
simcor3 <- RIgetResidCor(d_v, iterations = 500, cpu = 8)

RIresidcorr(d_v, cutoff = simcor3$p995)
q13 q14 q15 q16 q17 q18
q13
q14 0.04
q15 -0.06 -0.09
q16 -0.25 -0.36 -0.2
q17 -0.23 -0.22 -0.28 -0.09
q18 -0.11 -0.04 -0.09 -0.36 -0.27
Note:
Relative cut-off value is -0.066, which is 0.107 above the average correlation (-0.174).
Correlations above the cut-off are highlighted in red text.
Code
RItargeting(d_v)

Code
RIitemHierarchy(d_v)

Code
mirt(d_v, model=1, itemtype='Rasch', verbose = FALSE) %>% 
  plot(type="trace", as.table = TRUE, 
       theta_lim = c(-5,5))

Code
RIpfit(d_v)

Code
RIpartgamDIF(d_v, d_dif_v$Kön)
Item Partial gamma SE Lower CI Upper CI Adjusted p-value (BH)
q16 0.334 0.051 0.234 0.433 0.000
q13 -0.21 0.068 -0.344 -0.075 0.013
q17 -0.159 0.057 -0.270 -0.048 0.030
Code
RIdifTableLR(d_v, d_dif_v$Kön)
Item locations
Standard errors
Item 1 2 MaxDiff All SE_1 SE_2 SE_All
q13 0.386 0.176 0.21 0.306 0.223 0.280 0.172
q14 0.36 0.256 0.104 0.321 0.217 0.248 0.161
q15 0.869 0.712 0.157 0.804 0.199 0.223 0.146
q16 2.367 1.452 0.915 1.931 0.181 0.195 0.128
q17 1.634 1.442 0.192 1.564 0.183 0.197 0.133
q18 1.119 0.888 0.231 1.016 0.280 0.282 0.195
Note:
Values highlighted in red are above the chosen cutoff 0.5 logits. Background color brown and blue indicate the lowest and highest values among the DIF groups.
Code
RIdifThreshFigLR(d_v, d_dif_v$Kön)

Code
RIpartgamDIF(d_v, d_dif_v$Årskurs)
[1] "No statistically significant DIF found."
Code
RIdifTableLR(d_v, d_dif_v$Årskurs)
Item locations
Standard errors
Item 1 2 MaxDiff All SE_1 SE_2 SE_All
q13 0.314 0.264 0.05 0.306 0.247 0.256 0.172
q14 0.386 0.244 0.142 0.321 0.227 0.236 0.161
q15 0.764 0.836 0.072 0.804 0.212 0.209 0.146
q16 1.756 2.115 0.359 1.931 0.186 0.178 0.128
q17 1.508 1.632 0.124 1.564 0.190 0.188 0.133
q18 0.857 1.195 0.338 1.016 0.284 0.263 0.195
Note:
Values highlighted in red are above the chosen cutoff 0.5 logits. Background color brown and blue indicate the lowest and highest values among the DIF groups.
Code
RIdifThreshFigLR(d_v, d_dif_v$Årskurs)

Code
RIpartgamDIF(d_v, d_dif_v$Bostad)
Item Partial gamma SE Lower CI Upper CI Adjusted p-value (BH)
q16 -0.168 0.047 -0.259 -0.076 0.002
Code
#RIdifTableLR(d_v, d_dif_v$Bostad)
#RIdifThreshFigLR(d_v, d_dif_v$Bostad)
#RIciccPlot(d_rest, dif = "yes", dif_var = d_dif_rest$year)
Code
d_v %>% 
  #select(!any_of(removed_items)) %>% 
  RItif(samplePSI = T)

MJ: 16 är mest underfit, jag testade ta bort den och sedan även 17 pga underfit (när 16 tagits bort). Såg ut att fungera bra med uppsättningen “q13” “q14” “q15” “q18”, även om det finns en reskorr mellan 13 och 14 som ligger på gränsen.

itemnr item 1 q13 lycka och glädje? 2 q14 ett intresse för livet? 3 q15 dig nöjd med livet som det är just nu? 4 q18 Hur ofta tycker du att livet är härligt?

Om du tar bort 14 istf 16 så blir 16 underfit i nästa steg, och tar du bort 16 blir 17 underfit. Så jag tänker att vi bör behålla 14.

Code
removed_items <- c("q20", "q19", "q14")
Code
d_v <- d_v %>% 
  select(!any_of(removed_items))

2.12 Analys 4

itemnr item
q13 lycka och glädje?
q15 dig nöjd med livet som det är just nu?
q16 dig lugn och avslappnad?
q17 dig pigg och full av energi?
q18 Hur ofta tycker du att livet är härligt?
Code
aisp(d_v) %>% 
  as.data.frame() %>% 
  set_names("h > 0.3") %>% 
  arrange(`h > 0.3`) %>% 
  kbl_rise(tbl_width = 20)
h > 0.3
q13 1
q15 1
q16 1
q17 1
q18 1
Code
d_v[,-3] %>% 
  #select(!any_of(removed_items)) %>% 
  RIbootRestscore(iterations = 200, samplesize = 600, cpu = 8)
Item Item-restscore result % of iterations Conditional MSQ infit Relative average item location
q17 underfit 87.0 1.27 -1.11
q13 overfit 88.0 0.82 -2.42
q15 overfit 54.0 0.87 -1.90
q18 overfit 12.5 1.03 -1.68
Note:
Results based on 200 bootstrap iterations with n = 600 and 4 items. Conditional mean-square infit based on complete responders only (n = 1365).
Code
RIrestscore(d_v)
Item Observed value Model expected value Absolute difference Adjusted p-value (BH) Statistical significance level Location Relative location
q13 0.79 0.71 0.08 0.000 *** -0.78 -2.24
q15 0.79 0.71 0.08 0.000 *** -0.30 -1.76
q16 0.65 0.72 0.07 0.000 *** 0.77 -0.69
q17 0.69 0.72 0.03 0.096 . 0.42 -1.04
q18 0.74 0.72 0.02 0.156 -0.09 -1.54
Code
simfit3 <- d_v %>%
 RIgetfit(iterations = 200, cpu = 8)

d_v %>%
  RIitemfit(simfit3)
Item InfitMSQ Infit thresholds OutfitMSQ Outfit thresholds Infit diff Outfit diff Relative location
q13 0.779 [0.928, 1.091] 0.772 [0.9, 1.131] 0.149 0.128 -2.24
q15 0.804 [0.913, 1.087] 0.757 [0.894, 1.108] 0.109 0.137 -1.76
q16 1.249 [0.901, 1.095] 1.215 [0.888, 1.097] 0.154 0.118 -0.69
q17 1.11 [0.917, 1.081] 1.09 [0.913, 1.072] 0.029 0.018 -1.04
q18 1.063 [0.92, 1.081] 1.061 [0.918, 1.078] no misfit no misfit -1.54
Note:
MSQ values based on conditional calculations (n = 1365 complete cases).
Simulation based thresholds from 200 simulated datasets.
Code
RIpcmPCA(d_v)

PCA of Rasch model residuals

Eigenvalues Proportion of variance
1.59 34.7%
1.25 27.2%
1.11 21.1%
1.03 16.7%
0.01 0.2%
Code
RIloadLoc(d_v)

Code
RIbootLRT(d_v)
Result n Percent
Not statistically significant 38 3.8
Statistically significant 962 96.2
Code
RIpartgamLD(d_v)
Item 1 Item 2 Partial gamma SE Lower CI Upper CI Adjusted p-value (BH)
q13 q18 0.35 0.054 0.245 0.456 0
q15 q18 0.308 0.054 0.203 0.413 0
q13 q15 0.3 0.056 0.190 0.411 0
q15 q13 0.287 0.057 0.176 0.399 0
q18 q13 0.261 0.057 0.150 0.372 0
q18 q15 0.238 0.055 0.131 0.344 0
Code
simcor3 <- RIgetResidCor(d_v, iterations = 500, cpu = 8)

RIresidcorr(d_v, cutoff = simcor3$p995)
q13 q15 q16 q17 q18
q13
q15 -0.03
q16 -0.28 -0.26
q17 -0.23 -0.31 -0.17
q18 -0.08 -0.08 -0.41 -0.29
Note:
Relative cut-off value is -0.122, which is 0.093 above the average correlation (-0.215).
Correlations above the cut-off are highlighted in red text.
Code
RItargeting(d_v)

Code
RIitemHierarchy(d_v)

Code
mirt(d_v, model=1, itemtype='Rasch', verbose = FALSE) %>% 
  plot(type="trace", as.table = TRUE, 
       theta_lim = c(-5,5))

Code
RIpfit(d_v)

Code
RIpartgamDIF(d_v, d_dif_v$Kön)
Item Partial gamma SE Lower CI Upper CI Adjusted p-value (BH)
q16 0.333 0.051 0.233 0.434 0.000
q13 -0.184 0.067 -0.314 -0.053 0.029
q17 -0.182 0.057 -0.294 -0.071 0.007
Code
RIdifTableLR(d_v, d_dif_v$Kön)
Item locations
Standard errors
Item 1 2 MaxDiff All SE_1 SE_2 SE_All
q13 0.278 0.115 0.163 0.217 0.223 0.280 0.172
q15 0.735 0.625 0.11 0.691 0.199 0.224 0.147
q16 2.163 1.341 0.822 1.768 0.184 0.198 0.129
q17 1.461 1.33 0.131 1.416 0.185 0.199 0.134
q18 0.993 0.812 0.181 0.912 0.278 0.282 0.194
Note:
Values highlighted in red are above the chosen cutoff 0.5 logits. Background color brown and blue indicate the lowest and highest values among the DIF groups.
Code
RIdifThreshFigLR(d_v, d_dif_v$Kön)

Code
RIpartgamDIF(d_v, d_dif_v$Årskurs)
[1] "No statistically significant DIF found."
Code
RIdifTableLR(d_v, d_dif_v$Årskurs)
Item locations
Standard errors
Item 1 2 MaxDiff All SE_1 SE_2 SE_All
q13 0.244 0.152 0.092 0.217 0.246 0.258 0.172
q15 0.659 0.712 0.053 0.691 0.213 0.211 0.147
q16 1.586 1.959 0.373 1.768 0.187 0.181 0.129
q17 1.354 1.486 0.132 1.416 0.191 0.191 0.134
q18 0.772 1.066 0.294 0.912 0.281 0.265 0.194
Note:
Values highlighted in red are above the chosen cutoff 0.5 logits. Background color brown and blue indicate the lowest and highest values among the DIF groups.
Code
RIdifThreshFigLR(d_v, d_dif_v$Årskurs)

Code
RIpartgamDIF(d_v, d_dif_v$Bostad)
Item Partial gamma SE Lower CI Upper CI Adjusted p-value (BH)
q16 -0.181 0.046 -0.272 -0.091 0
Code
#RIdifTableLR(d_v, d_dif_v$Bostad)
#RIdifThreshFigLR(d_v, d_dif_v$Bostad)
#RIciccPlot(d_rest, dif = "yes", dif_var = d_dif_rest$year)
Code
d_v %>% 
  #select(!any_of(removed_items)) %>% 
  RItif(samplePSI = T)

2.13 Programvara som använts för analyserna

Code
# pkgs <- cite_packages(cite.tidyverse = TRUE, 
#                       output = "table",
#                       bib.file = "grateful-refs.bib",
#                       include.RStudio = TRUE,
#                       out.dir = getwd())
# formattable(pkgs, 
#             table.attr = 'class=\"table table-striped\" style="font-size: 15px; font-family: Lato; width: 80%"')
Code
R version 4.4.3 (2025-02-28)
Platform: aarch64-apple-darwin20
Running under: macOS Sequoia 15.6

Matrix products: default
BLAS:   /Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/lib/libRblas.0.dylib 
LAPACK: /Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/lib/libRlapack.dylib;  LAPACK version 3.12.0

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

time zone: Europe/Stockholm
tzcode source: internal

attached base packages:
 [1] parallel  grid      stats4    stats     graphics  grDevices utils    
 [8] datasets  methods   base     

other attached packages:
 [1] gtsummary_2.3.0      labelled_2.13.0      haven_2.5.4         
 [4] foreign_0.8-88       easyRasch_0.3.6.3    doParallel_1.0.17   
 [7] iterators_1.0.14     furrr_0.3.1          future_1.67.0       
[10] foreach_1.5.2        ggdist_3.3.3         janitor_2.2.1       
[13] hexbin_1.28.4        catR_3.17            glue_1.8.0          
[16] formattable_0.2.1    patchwork_1.3.0      knitr_1.48          
[19] reshape_0.8.9        matrixStats_1.4.1    psychotree_0.16-2   
[22] psychotools_0.7-4    partykit_1.2-24      mvtnorm_1.3-1       
[25] libcoin_1.0-10       psych_2.5.6          iarm_0.4.3          
[28] mirt_1.44.0          lattice_0.22-6       eRm_1.0-10          
[31] lubridate_1.9.4      forcats_1.0.0        stringr_1.5.1       
[34] dplyr_1.1.4          purrr_1.1.0          readr_2.1.5         
[37] tidyr_1.3.1          tibble_3.3.0         tidyverse_2.0.0     
[40] readxl_1.4.5         kableExtra_1.4.0     grateful_0.2.4      
[43] car_3.1-2            carData_3.0-5        ggrepel_0.9.6       
[46] ggplot2_3.5.2        arrow_16.1.0         mokken_3.1.2        
[49] poLCA_1.6.0.1        MASS_7.3-64          scatterplot3d_0.3-44

loaded via a namespace (and not attached):
  [1] splines_4.4.3        R.oo_1.26.0          cellranger_1.1.0    
  [4] rpart_4.1.24         lifecycle_1.0.4      rprojroot_2.0.4     
  [7] globals_0.18.0       vroom_1.6.5          backports_1.5.0     
 [10] magrittr_2.0.3       vcd_1.4-12           Hmisc_5.2-3         
 [13] rmarkdown_2.28       yaml_2.3.10          sessioninfo_1.2.3   
 [16] pbapply_1.7-2        RColorBrewer_1.1-3   abind_1.4-5         
 [19] audio_0.1-11         R.utils_2.12.3       nnet_7.3-20         
 [22] listenv_0.9.1        testthat_3.2.1.1     RPushbullet_0.3.4   
 [25] vegan_2.6-8          parallelly_1.45.0    svglite_2.1.3       
 [28] permute_0.9-7        codetools_0.2-20     xml2_1.3.6          
 [31] tidyselect_1.2.1     farver_2.1.2         base64enc_0.1-3     
 [34] jsonlite_1.8.9       progressr_0.14.0     Formula_1.2-5       
 [37] survival_3.8-3       systemfonts_1.1.0    tools_4.4.3         
 [40] gnm_1.1-5            snow_0.4-4           Rcpp_1.0.14         
 [43] mnormt_2.1.1         gridExtra_2.3        xfun_0.46           
 [46] here_1.0.1           mgcv_1.9-1           distributional_0.4.0
 [49] ca_0.71.1            withr_3.0.2          beepr_2.0           
 [52] fastmap_1.2.0        digest_0.6.37        timechange_0.3.0    
 [55] R6_2.5.1             colorspace_2.1-1     R.methodsS3_1.8.2   
 [58] inum_1.0-5           utf8_1.2.4           generics_0.1.3      
 [61] data.table_1.17.8    SimDesign_2.17.1     htmlwidgets_1.6.4   
 [64] pkgconfig_2.0.3      gtable_0.3.5         lmtest_0.9-40       
 [67] brio_1.1.5           htmltools_0.5.8.1    scales_1.4.0        
 [70] snakecase_0.11.1     rstudioapi_0.17.1    tzdb_0.4.0          
 [73] checkmate_2.3.2      nlme_3.1-167         curl_6.2.2          
 [76] zoo_1.8-12           relimp_1.0-5         vcdExtra_0.8-5      
 [79] pillar_1.10.1        vctrs_0.6.5          Deriv_4.1.3         
 [82] cluster_2.1.8        dcurver_0.9.2        archive_1.1.8       
 [85] GPArotation_2024.3-1 htmlTable_2.4.3      evaluate_1.0.1      
 [88] cli_3.6.3            compiler_4.4.3       rlang_1.1.6         
 [91] crayon_1.5.3         future.apply_1.20.0  labeling_0.4.3      
 [94] plyr_1.8.9           stringi_1.8.4        viridisLite_0.4.2   
 [97] assertthat_0.2.1     Matrix_1.7-2         qvcalc_1.0.3        
[100] hms_1.1.3            bit64_4.0.5          bit_4.0.5           

2.14 Referenser