Statistical helper functions
There are dozens of useful helper functions in the umx
library.
A great overview of these is sitting in the package help (?umx
). It’s organized into families of functions
to help you navigate.
umxAPA
Many functions in R present data in ways designed for programming pipelines, and to be highly modular. This is great for programming, but not so good in helping you quickly create tables, and text-summaries of the results of a hypothesis test.
umxAPA
is a flexible function to summarize, process, and present data in ways that are suitable for viewing or inclusion in publications. If we walk through a writeup, it’s value can soon be seen.
First, you might need descriptive statistics. Given a dataframe, umxAPA
will return a table of correlations, with the mean and SD of each variable as the last row. So, umxAPA(mtcars[,c(“cyl”, “wt”, “mpg”, )] yields a table of correlations, means and SDs thus:
cyl | wt | mpg | |
---|---|---|---|
cyl | 1 | 0.78 | -0.85 |
wt | 0.78 | 1 | -0.87 |
mpg | -0.85 | -0.87 | 1 |
mean_sd | 6.19 | (1.79) | 3.22 |
Next, having run a linear model, you’ll want to tell readers what the result was, with an effect, CI, and p-value formatted correctly.
Given an lm
model, umxAPA
will return a formatted effect, including 95% CI in square brackets, for each effect. or all of the effects (specified by name in se). e.g.:
m1 = lm(mpg~wt, data = mtcars)
umxAPA(m1, "wt")
β = -5.34 [-6.49, -4.2], t = -9.56, p < 0.001
You can also just ask for one effect, by setting the name that appears in the anova table. You can also standardize the model. An example of this is:
m1 = lm(mpg ~ wt + disp, data = mtcars)
umxAPA(m1, "wt", std = TRUE)
β = -0.54 [-0.93, -0.16], t = -2.88, p = 0.007
Perhaps while writing the introduction, you hit data from another paper that gave only a beta and se, and you’d like the CI. umxAPA
returns a CI based on 1.96 times the se. e.g. umxAPA(.3, se=.1)
yields: β = 0.3 [0.1, 0.5].
While the digits=
parameter of umx functions often gives you numbers to the precision you need, often you’ll need to format a p-value. Just give umxAPA
a single value, it will be treated as a p-value as returned in APA format. e.g., umxAPA(.000034)
gives “< 0.001”
You will often want to report a correlation. Pass in a cor.test object to umxAPA
.
m1 = cor.test(~mpg + wt, data = mtcars)
umxAPA(m1)
yields: r = -0.87 [-0.93, -0.74], t(30) = -9.56, p = < 0.001
umxAPA
works the same way for several other objects, including t.test
:
m1 = t.test(extra ~ group, data = sleep)
umxAPA(m1)
Means were ‘0.75’ and ‘2.33’. CI[-3.37, 0.21]. t(17.78) = -1.86, p = 0.08
On my TODO list are tutorial blogs about:
- umx_aggregate
- umx_names
- umx_print
- umx_time
- FishersMethod
- umxWeightedAIC
- tmx_is.identified
- tmx_show