Skip to contents

This function takes a Z score and converts it to one of a number of alternative derived scores (e.g., T score, index score, scaled score, sten score, stanine score, SAT score, percentile).

Usage

convert_z(z, metric = "index", mean.new = NULL, sd.new = NULL, dp = 2)

Arguments

z

Numeric input (or vector) specifying the Z score for conversion.

metric

Character string specifying the metric of the input scores. ("z", "t", "index", "scaled", "sten", "stanine", "sat", "percentile"). Default is "z".

mean.new

Optional numeric value specifying the mean of the new metric. If provided, this takes precedence over metric.new.

sd.new

Optional numeric value specifying the standard deviation of the new metric. If provided, this takes precedence over metric.new.

dp

Integer specifying the number of decimal places to round the converted scores to. Default is 2.

Value

A numeric value or vector of converted scores.

A numeric value

Details

The function is flexible, allowing for custom mean and standard deviation inputs for the new metric, making it suitable for a wide range of standardised testing applications.

The conversion process uses a linear transformation based on the properties of the normal distribution. Specifically, the conversion is performed using the formula (as described in Crawford, 2004):

$$ X_{\text{new}} = \frac{\sigma_{\text{new}}}{\sigma_{\text{old}}} \times (X_{\text{old}} - \bar{X}_{\text{old}}) + \bar{X}_{\text{new}} $$

Where:

\(X_{\text{new}}\) is the converted score,

\(X_{\text{old}}\) is the original score,

\(\bar{X}_{\text{old}}\) and \(\sigma_{\text{old}}\) are the mean and standard deviation of the original metric.

\(\bar{X}_{\text{new}}\) and \(\sigma_{\text{new}}\) are the mean and standard deviation of the new metric.

Below is a table summarizing the default mean and standard deviation for each metric:

MetricMeanStandard Deviation
Z-score01
T-score5010
Index Score10015
Scaled Score103
Sten Score5.52
Stanine52
SAT Score500100
Percentile50N/A (non-linear)

See also

convert_standard() for converting between different standardised metrics.

Examples

convert_z(z = 2, metric = "index")
#> [1] 130
convert_z(z = 0.32, metric = "sten")
#> [1] 6.14
convert_z(z = 1, metric = "percentile")
#> [1] 84.13
convert_z(z = 1, mean.new = 60, sd.new = 15)
#> [1] 75