# compute_dmod_npar: Function for computing non-parametric d_Mod effect sizes for... In psychmeta: Psychometric Meta-Analysis Toolkit

 compute_dmod_npar R Documentation

## Function for computing non-parametric d_Mod effect sizes for a single focal group

### Description

This 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.

### Usage

```compute_dmod_npar(
referent_int,
referent_slope,
focal_int,
focal_slope,
focal_x,
referent_sd_y
)
```

### Arguments

 `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.

### Details

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 = sum(n_i * [X_i * (b_1_1 - b_1_2) + b_0_1 - b_0_2]) / (SD_Y_1 * sum(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 ith 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 = sum(n_i * |X_i * (b_1_1 - b_1_2) + b_0_1 - b_0_2]| / (SD_Y_1 * sum(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 = 1/SD_Y_1 * Min[X * (b_1_1 - b_1_2) + b_0_1 - b_0_2].

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 = 1/SD_Y_1 * Max[X * (b_1_1 - b_1_2) + b_0_1 - b_0_2].

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.

### Value

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.

### Examples

```# 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, referent_slope = refRegMod,
focal_int = foc1RegMod, focal_slope = foc1RegMod,
focal_x = foc1Dat[,"X"], referent_sd_y = 1)

# Focal group #2:
compute_dmod_npar(referent_int = refRegMod, referent_slope = refRegMod,
focal_int = foc2RegMod, focal_slope = foc1RegMod,
focal_x = foc2Dat[,"X"], referent_sd_y = 1)

# Focal group #3:
compute_dmod_npar(referent_int = refRegMod, referent_slope = refRegMod,
focal_int = foc3RegMod, focal_slope = foc3RegMod,
focal_x = foc3Dat[,"X"], referent_sd_y = 1)
```

psychmeta documentation built on Aug. 26, 2022, 5:14 p.m.