compute_dmod_npar | R Documentation |
d_{Mod}
effect sizes for a single focal groupThis function computes non-parametric d_{Mod}
effect sizes from user-defined descriptive statistics
and regression coefficients, using a distribution of observed scores as weights.
This non-parametric function is best used when the assumption of normally distributed predictor
scores is not reasonable and/or the distribution of scores observed in a sample is likely to represent the
distribution of scores in the population of interest.
If one has access to the full raw data set, the dMod
function may be used
as a wrapper to this function so that the regression equations and descriptive statistics can
be computed automatically within the program.
compute_dmod_npar(
referent_int,
referent_slope,
focal_int,
focal_slope,
focal_x,
referent_sd_y
)
referent_int |
Referent group's intercept. |
referent_slope |
Referent group's slope. |
focal_int |
Focal group's intercept. |
focal_slope |
Focal group's slope. |
focal_x |
Focal group's vector of predictor scores. |
referent_sd_y |
Referent group's criterion standard deviation. |
The d_{Mod_{Signed}}
effect size (i.e., the average of differences in prediction over
the range of predictor scores) is computed as
d_{Mod_{Signed}}=\frac{\sum_{i=1}^{m}n_{i}\left[X_{i}\left(b_{1_{1}}-b_{1_{2}}\right)+b_{0_{1}}-b_{0_{2}}\right]}{SD_{Y_{1}}\sum_{i=1}^{m}n_{i}},
where
SD_{Y_{1}}
is the referent group's criterion standard deviation;
m
is the number of unique scores in the distribution of focal-group predictor scores;
X
is the vector of unique focal-group predictor scores, indexed i=1
through m
;
X_{i}
is the i^{th}
unique score value;
n
is the vector of frequencies associated with the elements of X
;
n_{i}
is the number of cases with a score equal to X_{i}
;
b_{1_{1}}
and b_{1_{2}}
are the slopes of the regression of Y
on X
for the referent and focal groups, respectively; and
b_{0_{1}}
and b_{0_{2}}
are the intercepts of the regression of Y
on X
for the referent and focal groups, respectively.
The d_{Mod_{Under}}
and d_{Mod_{Over}}
effect sizes are computed
using the same equation as d_{Mod_{Signed}}
, but d_{Mod_{Under}}
is
the weighted average of all scores in the area of underprediction (i.e., the differences in prediction with
negative signs) and d_{Mod_{Over}}
is the weighted average of all scores in the area of
overprediction (i.e., the differences in prediction with negative signs).
The d_{Mod_{Unsigned}}
effect size (i.e., the average of absolute differences in prediction over
the range of predictor scores) is computed as
d_{Mod_{Unsigned}}=\frac{\sum_{i=1}^{m}n_{i}\left|X_{i}\left(b_{1_{1}}-b_{1_{2}}\right)+b_{0_{1}}-b_{0_{2}}\right|}{SD_{Y_{1}}\sum_{i=1}^{m}n_{i}}.
The d_{Min}
effect size (i.e., the smallest absolute difference in prediction observed over the
range of predictor scores) is computed as
d_{Min}=\frac{1}{SD_{Y_{1}}}Min\left[\left|X\left(b_{1_{1}}-b_{1_{2}}\right)+b_{0_{1}}-b_{0_{2}}\right|\right].
The d_{Max}
effect size (i.e., the largest absolute difference in prediction observed over the
range of predictor scores)is computed as
d_{Max}=\frac{1}{SD_{Y_{1}}}Max\left[\left|X\left(b_{1_{1}}-b_{1_{2}}\right)+b_{0_{1}}-b_{0_{2}}\right|\right].
Note: When d_{Min}
and d_{Max}
are computed in this package, the output will display the
signs of the differences (rather than the absolute values of the differences) to aid in interpretation.
A vector of effect sizes (d_{Mod_{Signed}}
,
d_{Mod_{Unsigned}}
, d_{Mod_{Under}}
,
d_{Mod_{Over}}
), proportions of under- and over-predicted criterion scores,
minimum and maximum differences (i.e., d_{Mod_{Under}}
and d_{Mod_{Over}}
),
and the scores associated with minimum and maximum differences.
# Generate some hypothetical data for a referent group and three focal groups:
set.seed(10)
refDat <- MASS::mvrnorm(n = 1000, mu = c(.5, .2),
Sigma = matrix(c(1, .5, .5, 1), 2, 2), empirical = TRUE)
foc1Dat <- MASS::mvrnorm(n = 1000, mu = c(-.5, -.2),
Sigma = matrix(c(1, .5, .5, 1), 2, 2), empirical = TRUE)
foc2Dat <- MASS::mvrnorm(n = 1000, mu = c(0, 0),
Sigma = matrix(c(1, .3, .3, 1), 2, 2), empirical = TRUE)
foc3Dat <- MASS::mvrnorm(n = 1000, mu = c(-.5, -.2),
Sigma = matrix(c(1, .3, .3, 1), 2, 2), empirical = TRUE)
colnames(refDat) <- colnames(foc1Dat) <- colnames(foc2Dat) <- colnames(foc3Dat) <- c("X", "Y")
# Compute a regression model for each group:
refRegMod <- lm(Y ~ X, data.frame(refDat))$coef
foc1RegMod <- lm(Y ~ X, data.frame(foc1Dat))$coef
foc2RegMod <- lm(Y ~ X, data.frame(foc2Dat))$coef
foc3RegMod <- lm(Y ~ X, data.frame(foc3Dat))$coef
# Use the subgroup regression models to compute d_mod for each referent-focal pairing:
# Focal group #1:
compute_dmod_npar(referent_int = refRegMod[1], referent_slope = refRegMod[2],
focal_int = foc1RegMod[1], focal_slope = foc1RegMod[2],
focal_x = foc1Dat[,"X"], referent_sd_y = 1)
# Focal group #2:
compute_dmod_npar(referent_int = refRegMod[1], referent_slope = refRegMod[2],
focal_int = foc2RegMod[1], focal_slope = foc1RegMod[2],
focal_x = foc2Dat[,"X"], referent_sd_y = 1)
# Focal group #3:
compute_dmod_npar(referent_int = refRegMod[1], referent_slope = refRegMod[2],
focal_int = foc3RegMod[1], focal_slope = foc3RegMod[2],
focal_x = foc3Dat[,"X"], referent_sd_y = 1)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.