Init
library(kirkegaard)
## Loading required package: tidyverse
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.1 ──
## ✔ ggplot2 3.3.6 ✔ purrr 0.3.4
## ✔ tibble 3.1.7 ✔ dplyr 1.0.9
## ✔ tidyr 1.2.0 ✔ stringr 1.4.0
## ✔ readr 2.1.2 ✔ forcats 0.5.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## Loading required package: magrittr
##
## Attaching package: 'magrittr'
## The following object is masked from 'package:purrr':
##
## set_names
## The following object is masked from 'package:tidyr':
##
## extract
## Loading required package: weights
## Loading required package: Hmisc
## Loading required package: lattice
## Loading required package: survival
## Loading required package: Formula
##
## Attaching package: 'Hmisc'
## The following objects are masked from 'package:dplyr':
##
## src, summarize
## The following objects are masked from 'package:base':
##
## format.pval, units
## Loading required package: assertthat
##
## Attaching package: 'assertthat'
## The following object is masked from 'package:tibble':
##
## has_name
## Loading required package: psych
##
## Attaching package: 'psych'
## The following object is masked from 'package:Hmisc':
##
## describe
## The following objects are masked from 'package:ggplot2':
##
## %+%, alpha
##
## Attaching package: 'kirkegaard'
## The following object is masked from 'package:psych':
##
## rescale
## The following object is masked from 'package:assertthat':
##
## are_equal
## The following objects are masked from 'package:purrr':
##
## is_logical, is_numeric
## The following object is masked from 'package:base':
##
## +
load_packages(
mirt,
patchwork
)
## Loading required package: stats4
theme_set(theme_bw())
Analysis
item_names = d %>% select(A1:E12) %>% names()
item_names
## [1] "A1" "A2" "A3" "A4" "A5" "A6" "A7" "A8" "A9" "A10" "A11" "A12"
## [13] "B1" "B2" "B3" "B4" "B5" "B6" "B7" "B8" "B9" "B10" "B11" "B12"
## [25] "C1" "C2" "C3" "C4" "C5" "C6" "C7" "C8" "C9" "C10" "C11" "C12"
## [37] "D1" "D2" "D3" "D4" "D5" "D6" "D7" "D8" "D9" "D10" "D11" "D12"
## [49] "E1" "E2" "E3" "E4" "E5" "E6" "E7" "E8" "E9" "E10" "E11" "E12"
item_names %>% length()
## [1] 60
#items with using pass rate is every item except for A1
item_names_ok = item_names[-1]
#ages
ggplot(d, aes(Age, fill = Sample)) +
geom_bar(position = "dodge") +
scale_x_continuous("Age", breaks = 0:100)

#item data
items_all = tibble(
name = item_names_ok,
pass_rate = d[item_names_ok] %>% colMeans(na.rm = T)
)
items_benin = tibble(
name = item_names_ok,
pass_rate = d_Benin[item_names_ok] %>% colMeans(na.rm = T)
)
items_djibouti = tibble(
name = item_names_ok,
pass_rate = d_Djibouti[item_names_ok] %>% colMeans(na.rm = T)
)
#mirt
mirt_all = mirt(
d[item_names_ok],
model = 1
)
##
Iteration: 1, Log-Lik: -169436.089, Max-Change: 1.02417
Iteration: 2, Log-Lik: -157836.717, Max-Change: 0.70066
Iteration: 3, Log-Lik: -156444.956, Max-Change: 0.30441
Iteration: 4, Log-Lik: -156313.807, Max-Change: 0.18053
Iteration: 5, Log-Lik: -156271.202, Max-Change: 0.09674
Iteration: 6, Log-Lik: -156247.834, Max-Change: 0.06686
Iteration: 7, Log-Lik: -156233.541, Max-Change: 0.05109
Iteration: 8, Log-Lik: -156226.195, Max-Change: 0.03911
Iteration: 9, Log-Lik: -156221.570, Max-Change: 0.02684
Iteration: 10, Log-Lik: -156218.928, Max-Change: 0.02293
Iteration: 11, Log-Lik: -156217.002, Max-Change: 0.01898
Iteration: 12, Log-Lik: -156215.700, Max-Change: 0.01555
Iteration: 13, Log-Lik: -156212.969, Max-Change: 0.00263
Iteration: 14, Log-Lik: -156212.916, Max-Change: 0.00193
Iteration: 15, Log-Lik: -156212.865, Max-Change: 0.00271
Iteration: 16, Log-Lik: -156212.732, Max-Change: 0.00331
Iteration: 17, Log-Lik: -156212.691, Max-Change: 0.00215
Iteration: 18, Log-Lik: -156212.666, Max-Change: 0.00206
Iteration: 19, Log-Lik: -156212.628, Max-Change: 0.00181
Iteration: 20, Log-Lik: -156212.605, Max-Change: 0.00186
Iteration: 21, Log-Lik: -156212.587, Max-Change: 0.00164
Iteration: 22, Log-Lik: -156212.523, Max-Change: 0.00116
Iteration: 23, Log-Lik: -156212.518, Max-Change: 0.00086
Iteration: 24, Log-Lik: -156212.514, Max-Change: 0.00078
Iteration: 25, Log-Lik: -156212.509, Max-Change: 0.00142
Iteration: 26, Log-Lik: -156212.506, Max-Change: 0.00036
Iteration: 27, Log-Lik: -156212.505, Max-Change: 0.00090
Iteration: 28, Log-Lik: -156212.502, Max-Change: 0.00046
Iteration: 29, Log-Lik: -156212.501, Max-Change: 0.00122
Iteration: 30, Log-Lik: -156212.499, Max-Change: 0.00155
Iteration: 31, Log-Lik: -156212.497, Max-Change: 0.00122
Iteration: 32, Log-Lik: -156212.496, Max-Change: 0.00031
Iteration: 33, Log-Lik: -156212.495, Max-Change: 0.00079
Iteration: 34, Log-Lik: -156212.494, Max-Change: 0.00039
Iteration: 35, Log-Lik: -156212.493, Max-Change: 0.00104
Iteration: 36, Log-Lik: -156212.492, Max-Change: 0.00027
Iteration: 37, Log-Lik: -156212.491, Max-Change: 0.00120
Iteration: 38, Log-Lik: -156212.491, Max-Change: 0.00036
Iteration: 39, Log-Lik: -156212.490, Max-Change: 0.00095
Iteration: 40, Log-Lik: -156212.490, Max-Change: 0.00042
Iteration: 41, Log-Lik: -156212.489, Max-Change: 0.00022
Iteration: 42, Log-Lik: -156212.488, Max-Change: 0.00055
Iteration: 43, Log-Lik: -156212.488, Max-Change: 0.00027
Iteration: 44, Log-Lik: -156212.487, Max-Change: 0.00072
Iteration: 45, Log-Lik: -156212.487, Max-Change: 0.00019
Iteration: 46, Log-Lik: -156212.487, Max-Change: 0.00083
Iteration: 47, Log-Lik: -156212.487, Max-Change: 0.00025
Iteration: 48, Log-Lik: -156212.486, Max-Change: 0.00065
Iteration: 49, Log-Lik: -156212.486, Max-Change: 0.00029
Iteration: 50, Log-Lik: -156212.486, Max-Change: 0.00075
Iteration: 51, Log-Lik: -156212.485, Max-Change: 0.00022
Iteration: 52, Log-Lik: -156212.485, Max-Change: 0.00020
Iteration: 53, Log-Lik: -156212.485, Max-Change: 0.00053
Iteration: 54, Log-Lik: -156212.485, Max-Change: 0.00014
Iteration: 55, Log-Lik: -156212.485, Max-Change: 0.00061
Iteration: 56, Log-Lik: -156212.485, Max-Change: 0.00018
Iteration: 57, Log-Lik: -156212.485, Max-Change: 0.00048
Iteration: 58, Log-Lik: -156212.485, Max-Change: 0.00022
Iteration: 59, Log-Lik: -156212.484, Max-Change: 0.00011
Iteration: 60, Log-Lik: -156212.484, Max-Change: 0.00028
Iteration: 61, Log-Lik: -156212.484, Max-Change: 0.00014
Iteration: 62, Log-Lik: -156212.484, Max-Change: 0.00037
Iteration: 63, Log-Lik: -156212.484, Max-Change: 0.00010
mirt_benin = mirt(
d_Benin[item_names_ok],
model = 1
)
##
Iteration: 1, Log-Lik: -95025.823, Max-Change: 1.28639
Iteration: 2, Log-Lik: -86767.860, Max-Change: 0.77991
Iteration: 3, Log-Lik: -85493.928, Max-Change: 0.35571
Iteration: 4, Log-Lik: -85358.212, Max-Change: 0.23108
Iteration: 5, Log-Lik: -85310.509, Max-Change: 0.13574
Iteration: 6, Log-Lik: -85288.455, Max-Change: 0.08082
Iteration: 7, Log-Lik: -85276.408, Max-Change: 0.07561
Iteration: 8, Log-Lik: -85269.250, Max-Change: 0.05033
Iteration: 9, Log-Lik: -85264.400, Max-Change: 0.03974
Iteration: 10, Log-Lik: -85261.177, Max-Change: 0.03467
Iteration: 11, Log-Lik: -85259.121, Max-Change: 0.02558
Iteration: 12, Log-Lik: -85257.768, Max-Change: 0.02114
Iteration: 13, Log-Lik: -85255.037, Max-Change: 0.00609
Iteration: 14, Log-Lik: -85254.982, Max-Change: 0.00298
Iteration: 15, Log-Lik: -85254.944, Max-Change: 0.00244
Iteration: 16, Log-Lik: -85254.858, Max-Change: 0.00293
Iteration: 17, Log-Lik: -85254.832, Max-Change: 0.00140
Iteration: 18, Log-Lik: -85254.814, Max-Change: 0.00181
Iteration: 19, Log-Lik: -85254.785, Max-Change: 0.00151
Iteration: 20, Log-Lik: -85254.773, Max-Change: 0.00154
Iteration: 21, Log-Lik: -85254.763, Max-Change: 0.00117
Iteration: 22, Log-Lik: -85254.737, Max-Change: 0.00148
Iteration: 23, Log-Lik: -85254.731, Max-Change: 0.00117
Iteration: 24, Log-Lik: -85254.725, Max-Change: 0.00109
Iteration: 25, Log-Lik: -85254.701, Max-Change: 0.00059
Iteration: 26, Log-Lik: -85254.699, Max-Change: 0.00039
Iteration: 27, Log-Lik: -85254.698, Max-Change: 0.00040
Iteration: 28, Log-Lik: -85254.694, Max-Change: 0.00039
Iteration: 29, Log-Lik: -85254.693, Max-Change: 0.00036
Iteration: 30, Log-Lik: -85254.692, Max-Change: 0.00034
Iteration: 31, Log-Lik: -85254.688, Max-Change: 0.00035
Iteration: 32, Log-Lik: -85254.688, Max-Change: 0.00025
Iteration: 33, Log-Lik: -85254.687, Max-Change: 0.00025
Iteration: 34, Log-Lik: -85254.686, Max-Change: 0.00025
Iteration: 35, Log-Lik: -85254.685, Max-Change: 0.00021
Iteration: 36, Log-Lik: -85254.685, Max-Change: 0.00020
Iteration: 37, Log-Lik: -85254.684, Max-Change: 0.00023
Iteration: 38, Log-Lik: -85254.684, Max-Change: 0.00017
Iteration: 39, Log-Lik: -85254.684, Max-Change: 0.00016
Iteration: 40, Log-Lik: -85254.683, Max-Change: 0.00017
Iteration: 41, Log-Lik: -85254.683, Max-Change: 0.00013
Iteration: 42, Log-Lik: -85254.683, Max-Change: 0.00013
Iteration: 43, Log-Lik: -85254.682, Max-Change: 0.00015
Iteration: 44, Log-Lik: -85254.682, Max-Change: 0.00011
Iteration: 45, Log-Lik: -85254.682, Max-Change: 0.00010
Iteration: 46, Log-Lik: -85254.682, Max-Change: 0.00011
Iteration: 47, Log-Lik: -85254.682, Max-Change: 0.00009
mirt_djibouti = mirt(
d_Djibouti[item_names_ok],
model = 1
)
##
Iteration: 1, Log-Lik: -68163.400, Max-Change: 1.09623
Iteration: 2, Log-Lik: -64582.070, Max-Change: 0.41521
Iteration: 3, Log-Lik: -64326.284, Max-Change: 0.15718
Iteration: 4, Log-Lik: -64303.599, Max-Change: 0.07771
Iteration: 5, Log-Lik: -64298.889, Max-Change: 0.03745
Iteration: 6, Log-Lik: -64296.787, Max-Change: 0.02305
Iteration: 7, Log-Lik: -64294.022, Max-Change: 0.00984
Iteration: 8, Log-Lik: -64293.300, Max-Change: 0.00926
Iteration: 9, Log-Lik: -64292.727, Max-Change: 0.00875
Iteration: 10, Log-Lik: -64290.737, Max-Change: 0.00492
Iteration: 11, Log-Lik: -64290.649, Max-Change: 0.00446
Iteration: 12, Log-Lik: -64290.575, Max-Change: 0.00414
Iteration: 13, Log-Lik: -64290.293, Max-Change: 0.00197
Iteration: 14, Log-Lik: -64290.279, Max-Change: 0.00167
Iteration: 15, Log-Lik: -64290.268, Max-Change: 0.00148
Iteration: 16, Log-Lik: -64290.226, Max-Change: 0.00066
Iteration: 17, Log-Lik: -64290.224, Max-Change: 0.00065
Iteration: 18, Log-Lik: -64290.222, Max-Change: 0.00038
Iteration: 19, Log-Lik: -64290.220, Max-Change: 0.00037
Iteration: 20, Log-Lik: -64290.219, Max-Change: 0.00036
Iteration: 21, Log-Lik: -64290.218, Max-Change: 0.00035
Iteration: 22, Log-Lik: -64290.214, Max-Change: 0.00026
Iteration: 23, Log-Lik: -64290.213, Max-Change: 0.00024
Iteration: 24, Log-Lik: -64290.213, Max-Change: 0.00022
Iteration: 25, Log-Lik: -64290.211, Max-Change: 0.00014
Iteration: 26, Log-Lik: -64290.211, Max-Change: 0.00014
Iteration: 27, Log-Lik: -64290.211, Max-Change: 0.00014
Iteration: 28, Log-Lik: -64290.210, Max-Change: 0.00010
Iteration: 29, Log-Lik: -64290.210, Max-Change: 0.00010
mirt_all %>% summary()
## F1 h2
## A2 0.825873 6.82e-01
## A3 0.897825 8.06e-01
## A4 0.844157 7.13e-01
## A5 0.425902 1.81e-01
## A6 0.434699 1.89e-01
## A7 0.860622 7.41e-01
## A8 0.836762 7.00e-01
## A9 0.827553 6.85e-01
## A10 0.771630 5.95e-01
## A11 0.826930 6.84e-01
## A12 0.295526 8.73e-02
## B1 0.831518 6.91e-01
## B2 0.844162 7.13e-01
## B3 0.850983 7.24e-01
## B4 0.252869 6.39e-02
## B5 0.246125 6.06e-02
## B6 0.798345 6.37e-01
## B7 0.816658 6.67e-01
## B8 0.794854 6.32e-01
## B9 0.784361 6.15e-01
## B10 0.286886 8.23e-02
## B11 0.717972 5.15e-01
## B12 0.288543 8.33e-02
## C1 0.312548 9.77e-02
## C2 0.727221 5.29e-01
## C3 0.670004 4.49e-01
## C4 0.734566 5.40e-01
## C5 0.718707 5.17e-01
## C6 0.611028 3.73e-01
## C7 -0.107268 1.15e-02
## C8 0.801202 6.42e-01
## C9 0.163599 2.68e-02
## C10 -0.164128 2.69e-02
## C11 -0.129840 1.69e-02
## C12 -0.118473 1.40e-02
## D1 0.403002 1.62e-01
## D2 0.675594 4.56e-01
## D3 0.655783 4.30e-01
## D4 0.553737 3.07e-01
## D5 0.031677 1.00e-03
## D6 -0.018341 3.36e-04
## D7 -0.051631 2.67e-03
## D8 -0.022295 4.97e-04
## D9 -0.195893 3.84e-02
## D10 -0.000711 5.06e-07
## D11 -0.036192 1.31e-03
## D12 -0.049425 2.44e-03
## E1 0.073275 5.37e-03
## E2 -0.138435 1.92e-02
## E3 0.148993 2.22e-02
## E4 -0.070713 5.00e-03
## E5 0.087341 7.63e-03
## E6 0.426509 1.82e-01
## E7 -0.066799 4.46e-03
## E8 0.021223 4.50e-04
## E9 -0.071555 5.12e-03
## E10 -0.080564 6.49e-03
## E11 -0.094858 9.00e-03
## E12 -0.052415 2.75e-03
##
## SS loadings: 16.463
## Proportion Var: 0.279
##
## Factor correlations:
##
## F1
## F1 1
mirt_benin %>% summary()
## F1 h2
## A2 0.661446 4.38e-01
## A3 0.724436 5.25e-01
## A4 0.697762 4.87e-01
## A5 -0.095253 9.07e-03
## A6 -0.095253 9.07e-03
## A7 0.882081 7.78e-01
## A8 0.902048 8.14e-01
## A9 0.823146 6.78e-01
## A10 0.774914 6.00e-01
## A11 0.875149 7.66e-01
## A12 -0.100514 1.01e-02
## B1 0.502658 2.53e-01
## B2 0.660400 4.36e-01
## B3 0.833825 6.95e-01
## B4 -0.127841 1.63e-02
## B5 -0.114344 1.31e-02
## B6 0.886046 7.85e-01
## B7 0.880945 7.76e-01
## B8 0.860937 7.41e-01
## B9 0.880354 7.75e-01
## B10 -0.116155 1.35e-02
## B11 0.822822 6.77e-01
## B12 -0.098881 9.78e-03
## C1 -0.110490 1.22e-02
## C2 0.637017 4.06e-01
## C3 0.804715 6.48e-01
## C4 0.800257 6.40e-01
## C5 0.831775 6.92e-01
## C6 0.787257 6.20e-01
## C7 -0.030667 9.40e-04
## C8 0.816967 6.67e-01
## C9 -0.089808 8.07e-03
## C10 -0.263248 6.93e-02
## C11 -0.075098 5.64e-03
## C12 -0.065837 4.33e-03
## D1 0.510062 2.60e-01
## D2 0.697313 4.86e-01
## D3 0.690254 4.76e-01
## D4 0.647236 4.19e-01
## D5 0.002835 8.03e-06
## D6 0.003910 1.53e-05
## D7 0.088372 7.81e-03
## D8 0.156295 2.44e-02
## D9 -0.279466 7.81e-02
## D10 -0.083894 7.04e-03
## D11 -0.000238 5.67e-08
## D12 -0.000238 5.67e-08
## E1 0.073299 5.37e-03
## E2 -0.014321 2.05e-04
## E3 0.053004 2.81e-03
## E4 0.018489 3.42e-04
## E5 0.035912 1.29e-03
## E6 0.517665 2.68e-01
## E7 -0.029420 8.66e-04
## E8 0.037451 1.40e-03
## E9 0.039043 1.52e-03
## E10 0.052212 2.73e-03
## E11 -0.075651 5.72e-03
## E12 0.073442 5.39e-03
##
## SS loadings: 16.132
## Proportion Var: 0.273
##
## Factor correlations:
##
## F1
## F1 1
mirt_djibouti %>% summary()
## F1 h2
## A2 0.77906 6.07e-01
## A3 0.84023 7.06e-01
## A4 0.75106 5.64e-01
## A5 0.71151 5.06e-01
## A6 0.73943 5.47e-01
## A7 0.73601 5.42e-01
## A8 0.68569 4.70e-01
## A9 0.71820 5.16e-01
## A10 0.51671 2.67e-01
## A11 0.54369 2.96e-01
## A12 0.26500 7.02e-02
## B1 0.84780 7.19e-01
## B2 0.73297 5.37e-01
## B3 0.75174 5.65e-01
## B4 0.40590 1.65e-01
## B5 0.51799 2.68e-01
## B6 0.49294 2.43e-01
## B7 0.57054 3.26e-01
## B8 0.66853 4.47e-01
## B9 0.61803 3.82e-01
## B10 0.52982 2.81e-01
## B11 0.53818 2.90e-01
## B12 0.55756 3.11e-01
## C1 0.69650 4.85e-01
## C2 0.75862 5.76e-01
## C3 0.55673 3.10e-01
## C4 0.63811 4.07e-01
## C5 0.36718 1.35e-01
## C6 0.45722 2.09e-01
## C7 -0.07243 5.25e-03
## C8 0.67895 4.61e-01
## C9 0.08725 7.61e-03
## C10 0.06168 3.81e-03
## C11 -0.03316 1.10e-03
## C12 -0.08594 7.39e-03
## D1 -0.00907 8.23e-05
## D2 0.54323 2.95e-01
## D3 0.61701 3.81e-01
## D4 -0.00500 2.50e-05
## D5 -0.01970 3.88e-04
## D6 0.11805 1.39e-02
## D7 0.21552 4.64e-02
## D8 0.08288 6.87e-03
## D9 -0.24068 5.79e-02
## D10 0.23116 5.34e-02
## D11 -0.15754 2.48e-02
## D12 -0.16815 2.83e-02
## E1 0.28474 8.11e-02
## E2 0.10328 1.07e-02
## E3 0.12816 1.64e-02
## E4 0.04856 2.36e-03
## E5 0.16302 2.66e-02
## E6 0.10262 1.05e-02
## E7 -0.06773 4.59e-03
## E8 -0.11398 1.30e-02
## E9 -0.12145 1.47e-02
## E10 -0.15490 2.40e-02
## E11 -0.09337 8.72e-03
## E12 -0.20330 4.13e-02
##
## SS loadings: 13.393
## Proportion Var: 0.227
##
## Factor correlations:
##
## F1
## F1 1
#get item data
items_all$loading = mirt_all %>% summary(verbose = F) %>% .$rotF %>% .[, 1]
items_all$difficulty = mirt_all %>% coef(simplify = T) %>% .$items %>% .[, 2]
items_benin$loading = mirt_benin %>% summary(verbose = F) %>% .$rotF %>% .[, 1]
items_benin$difficulty = mirt_benin %>% coef(simplify = T) %>% .$items %>% .[, 2]
items_djibouti$loading = mirt_djibouti %>% summary(verbose = F) %>% .$rotF %>% .[, 1]
items_djibouti$difficulty = mirt_djibouti %>% coef(simplify = T) %>% .$items %>% .[, 2]
#plot item data
bind_rows(
items_benin %>% mutate(sample = "Benin"),
items_djibouti %>% mutate(sample = "Djibouti")
) %>% mutate(
name = factor(name, levels = item_names_ok)
) -> items_long
#multi-plot of item data
p_passrate = ggplot(items_long, aes(name, pass_rate, color = sample, group = sample)) +
geom_point() +
scale_x_discrete(guide = guide_axis(n.dodge = 2)) +
scale_y_continuous(limits = c(0, 1), breaks = seq(0, 1, .2))
p_loading = ggplot(items_long, aes(name, loading, color = sample, group = sample)) +
geom_point() +
scale_x_discrete(guide = guide_axis(n.dodge = 2))
p_passrate / p_loading

#item par correlations
ggplot(items_long, aes(pass_rate, loading, color = sample)) +
geom_point() +
geom_smooth()
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'

#scores
d$g = fscores(mirt_all)[, 1]
#distributions
GG_denhist(d, "g", "Sample")
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

#age correlations
ggplot(d, aes(Age, g, color = Sample)) +
geom_point(alpha = .1) +
geom_smooth() +
scale_x_continuous(breaks = 0:100)
## `geom_smooth()` using method = 'gam' and formula 'y ~ s(x, bs = "cs")'

#model
lm(g ~ Age + Sex, data = d) %>% summary()
##
## Call:
## lm(formula = g ~ Age + Sex, data = d)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.2022 -0.7187 -0.1094 0.6796 2.8695
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.743220 0.062408 -11.91 <2e-16 ***
## Age 0.054558 0.003886 14.04 <2e-16 ***
## Sex 0.007243 0.024121 0.30 0.764
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.9461 on 6325 degrees of freedom
## Multiple R-squared: 0.03034, Adjusted R-squared: 0.03003
## F-statistic: 98.95 on 2 and 6325 DF, p-value: < 2.2e-16
lm(g ~ Age + Sex + Sample, data = d) %>% summary()
##
## Call:
## lm(formula = g ~ Age + Sex + Sample, data = d)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.4444 -0.5504 -0.1039 0.5298 2.6375
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.673296 0.051388 -13.102 <2e-16 ***
## Age 0.088256 0.003257 27.096 <2e-16 ***
## Sex -0.021300 0.019862 -1.072 0.284
## SampleDjibouti -1.102831 0.020100 -54.867 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.7788 on 6324 degrees of freedom
## Multiple R-squared: 0.3431, Adjusted R-squared: 0.3427
## F-statistic: 1101 on 3 and 6324 DF, p-value: < 2.2e-16
lm(g ~ Age + Sex + Sample, data = d) %>% stats::anova() %>% sjstats::anova_stats()
## Registered S3 method overwritten by 'parameters':
## method from
## format.parameters_distribution datawizard