Compares two marginal effects (MEMs or AMEs). Estimate of uncertainty is from a simulated draw from a normal distribution.
For example:
library(catregs)
data("essUK")
m1 <- glm(safe ~ religious + minority*female + age,data=essUK,family="binomial")
des<-margins.des(m1,expand.grid(minority=c(0,1),female=c(0,1)))
des
## minority female religious age
## 1 0 0 3.602404 53.14563
## 2 1 0 3.602404 53.14563
## 3 0 1 3.602404 53.14563
## 4 1 1 3.602404 53.14563
ma1<-as.data.frame(marginaleffects::avg_slopes(m1,variables="female",newdata=data.frame(minority=0,religious=3.6024,age=53.146)))
## Warning: The `female` variable is treated as a categorical (factor) variable, but
## the original data is of class NULL. It is safer and faster to convert
## such variables to factor before fitting the model and calling a
## `marginaleffects` function.
##
## This warning appears once per session.
ma2<-as.data.frame(marginaleffects::avg_slopes(m1,variables="female",newdata=data.frame(minority=1,religious=3.6024,age=53.146)))
cames <- rbind(ma2,ma1)
compare.margins(margins=cames$estimate,margins.ses=cames$std.error)
## Difference p-value
## 1 0.1447181 0.0199