Title: | Applied Psychometric Theory |
---|---|
Description: | Contains functions useful for correlation theory, meta-analysis (validity-generalization), reliability, item analysis, inter-rater reliability, and classical utility. |
Authors: | Thomas D. Fletcher |
Maintainer: | Thomas D. Fletcher <[email protected]> |
License: | GPL (>= 2) |
Version: | 2.4 |
Built: | 2025-02-12 03:24:39 UTC |
Source: | https://github.com/cran/psychometric |
Contains functions useful for correlation theory, meta-analysis (validity-generalization), reliability, item analysis, inter-rater reliability, and classical utility
Package: | psychometric |
Type: | Package |
Version: | 2.4 |
License: | GPL (version 2.0 or later) |
This package corresponds to the basic concepts encountered in an introductory course in Psychometric Theory at the Graduate level. It is especially useful for Industrial/Organizational Psychologists, but will be useful for any student or practitioner of psychometric theory. I originally developed this package to correspond with concepts covered illustrated in PSYC 7429 at the University of MO - St. Louis course in Psychometric Theory.
Thomas D. Fletcher
Strategic Resources
State Farm Insurance Cos.
Maintainer: Thomas D. Fletcher [email protected]
multilevel-package
ltm-package
psy-package
polycor-package
nlme-package
# Convert Pearson r to Fisher z' r2z (.51) # Convert Fisher z' to r z2r (.563) # Construct a CI about a True Score # Observed = 700, Test Ave. = 500, SD = 100, and reliability = .9 CI.tscore (700, 500, 100, .9) # Compute the classical utility of a test # Assuming base-rate = .5, selection ratio = .5 and rxy = .5 ClassUtil(rxy=.5, BR=.5, SR=.5) # Examine test score items data(TestScores) item.exam(TestScores[,1:10], y = TestScores[,11], discrim=TRUE)
# Convert Pearson r to Fisher z' r2z (.51) # Convert Fisher z' to r z2r (.563) # Construct a CI about a True Score # Observed = 700, Test Ave. = 500, SD = 100, and reliability = .9 CI.tscore (700, 500, 100, .9) # Compute the classical utility of a test # Assuming base-rate = .5, selection ratio = .5 and rxy = .5 ClassUtil(rxy=.5, BR=.5, SR=.5) # Examine test score items data(TestScores) item.exam(TestScores[,1:10], y = TestScores[,11], discrim=TRUE)
These data are used as an example in ch. 3 of Conducting Meta-Analysis using SAS. The data appear in table 3.1 and 3.2 on pages 66 and 68. The example data are useful in illustrating simple meta-analysis concepts.
data(ABHt32)
data(ABHt32)
A data frame with 10 observations on the following 7 variables.
study Study code
Rxy Published Correlation
n Sample Size
Rxx Reliability of Predictor
Ryy Reliability of Criterion
u Range Restriction Ratio
moderator Gender
Arthur, Jr., W., Bennett, Jr., W., and Huffcutt, A. I. (2001) Conducting Meta-analysis using SAS. Mahwah, NJ: Erlbaum.
data(ABHt32) str(ABHt32) rbar(ABHt32) FunnelPlot(ABHt32)
data(ABHt32) str(ABHt32) rbar(ABHt32) FunnelPlot(ABHt32)
Coefficient alpha is a measure of internal consistency. It is a standard measure of reliability for tests.
alpha(x)
alpha(x)
x |
Data.frame or matrix object with rows corresponding individuals and columns to items |
You can specify any portion of a matrix or data.frame. For instance, if using a data.frame
with numerous variables corresponding to items, one can specify subsets of those items. See examples
below.
alpha <-
where k is the number of items, Sx is the standard deviaton of the total test, and SumSxi is the
sum of the standard deviations for each item.
coefficient alpha
Thomas D. Fletcher [email protected]
Cronbach, L. J. (1951). Coefficient alpha and the internal structure of tests. Psychometrika, 6, 297-334.
data(attitude) alpha(attitude) alpha(attitude[,1:5])
data(attitude) alpha(attitude) alpha(attitude[,1:5])
Computes a one-tailed (or two-tailed) CI at the desired level for coefficient alpha
alpha.CI(alpha, k, N, level = 0.90, onesided = FALSE)
alpha.CI(alpha, k, N, level = 0.90, onesided = FALSE)
alpha |
coefficient alpha to use for CI construction |
k |
number if items |
N |
sample size |
level |
Significance Level for constructing the CI, default is .90 |
onesided |
return a one-sided (one-tailed) test, default is FALSE |
By inputting alpha, number of items and sample size, one can make inferences via a confidence interval. This can be used to compare two alpha coefficients (e.g., from two groups), or to compare alpha to some specified value (e.g., > = .7). onesided = FALSE renders a two-sided test (i.e., this is the difference between tails of .025/.975 and .05/.95)
Returns a table with 3 elements
LCL |
lower confidence limit of CI |
ALPHA |
coefficient alpha |
UCL |
upper confidence limit of CI |
You must first compute alpha and then enter into function. alpha.CI
will not evaluate a data.frame or matrix object.
Feldt et al., provide a number of procedures for making inferences about alpha (e.g., F test of the null hypothesis). Since the CI is the most versatile, it is the only function created in this package
Thomas D. Fletcher [email protected]
Feldt, L. S., Woodruff, D. J., & Salih, F. A. (1987). Statistical inferences for coefficient alpha. Applied Psychological Measurement, 11, 93-103.
# From Feldt et al (1987) # alpha = .79, #items = 26, #examinees = 41 # a two-tailed test 90% level alpha.CI(.79, 26, 41)
# From Feldt et al (1987) # alpha = .79, #items = 26, #examinees = 41 # a two-tailed test 90% level alpha.CI(.79, 26, 41)
Three artifact distributions are computed with each of these three functions which are then used to correct the observed sample-weighted mean correlation for attenuation. The artifacts are reliability in predictor, reliability in criterion, and range-restriction.
aRxx(x) bRyy(x) cRR(x)
aRxx(x) bRyy(x) cRR(x)
x |
A matrix or data.frame with columns Rxx, Ryy, and u: see |
aRxx Distribution of measurement error in the predictor: a = sqrt(Rxx)
bRyy Distribution of measurement error in the criterion: b = sqrt(Ryy)
cRR Degree of range restriction indicated by ratio u
(restricted SD/unrestricted SD): .
These are used in the computation of the compound attentuation factor CAFAA
=
mean(a)*mean(b)*mean(c).
A list containing:
ma |
Mean of a (or b or c) |
va |
Variance of a (or b or c) |
One usually will not use these functions alone, but rather use functions that make use of these correction factors.
Thomas D. Fletcher [email protected]
Arthur, Jr., W., Bennett, Jr., W., and Huffcutt, A. I. (2001) Conducting Meta-analysis using SAS. Mahwah, NJ: Erlbaum.
Hunter, J.E. and Schmidt, F.L. (2004). Methods of meta-analysis: Correcting error and bias in research findings (2nd ed.). Thousand Oaks: Sage Publications.
Hunter, J.E., Schmidt, F.L., and Jackson, G.B. (1982). Meta-analysis: Cumulating research findings across studies. Beverly Hills: Sage Publications.
# From Arthur et al data(ABHt32) aRxx(ABHt32) bRyy(ABHt32) cRR(ABHt32) rhoCA(ABHt32) # From Hunter et al data(HSJt35) aRxx(HSJt35) bRyy(HSJt35) cRR(HSJt35) rhoCA(HSJt35)
# From Arthur et al data(ABHt32) aRxx(ABHt32) bRyy(ABHt32) cRR(ABHt32) rhoCA(ABHt32) # From Hunter et al data(HSJt35) aRxx(HSJt35) bRyy(HSJt35) cRR(HSJt35) rhoCA(HSJt35)
The compound attenuation factor is computed as the product of the mean for each artifact distribution (square root of artifact) when correcting for attenuation in a correlation coefficient.
CAFAA(x)
CAFAA(x)
x |
A matrix or data.frame with columns Rxx, Ryy, and u: see |
The compound attenuation factor is computed as the product of mean(a)*mean(b)*mean(c) where
a = sqrt(Rxx) and is computed with the function aRxx
b = sqrt(Ryy) and is computed with the function bRyy
c = and is computed with the function
cRR
A numeric value representing the compound attenuation factor
This value is used in the correction for artifacts of a correlation coefficient
Thomas D. Fletcher [email protected]
Arthur, Jr., W., Bennett, Jr., W., and Huffcutt, A. I. (2001) Conducting Meta-analysis using SAS. Mahwah, NJ: Erlbaum.
Hunter, J.E. and Schmidt, F.L. (2004). Methods of meta-analysis: Correcting error and bias in research findings (2nd ed.). Thousand Oaks: Sage Publications.
Hunter, J.E., Schmidt, F.L., and Jackson, G.B. (1982). Meta-analysis: Cumulating research findings across studies. Beverly Hills: Sage Publications.
#From Arthur et al data(ABHt32) CAFAA(ABHt32) rhoCA(ABHt32) # From Hunter et al data(HSJt35) CAFAA(HSJt35) rhoCA(HSJt35)
#From Arthur et al data(ABHt32) CAFAA(ABHt32) rhoCA(ABHt32) # From Hunter et al data(HSJt35) CAFAA(HSJt35) rhoCA(HSJt35)
Computes the confidence interval for a desired level for the squared-multiple correlation
CI.Rsq(rsq, n, k, level = 0.95)
CI.Rsq(rsq, n, k, level = 0.95)
rsq |
Squared Multiple Correlation |
n |
Sample Size |
k |
Number of Predictors in Model |
level |
Significance Level for constructing the CI, default is .95 |
CI is constructed based on the approximate SE of Rsq
Returns a table with 4 elements
Rsq |
Squared Multiple Correlation |
SErsq |
Standard error of Rsq |
LCL |
Lower Confidence Limit of the CI |
UCL |
Upper Confidence Limit of the CI |
This is an adequate approximation for n > 60
Thomas D. Fletcher [email protected]
Olkin, I. & Finn, J. D. (1995). Correlation Redux. Psychological Bulletin, 118, 155-164.
Cohen, J., Cohen, P., West, S. G., & Aiken, L. S. (2003). Applied multiple regression/correlation analysis for the behavioral sciences (3rd ed.). Mahwah, NJ: Lawrence Erlbaum.
# see section 3.6.2 Cohen et al (2003) # 95 percent CI CI.Rsq(.5032, 62, 4, level = .95) # 80 percent CI CI.Rsq(.5032, 62, 4, level = .80)
# see section 3.6.2 Cohen et al (2003) # 95 percent CI CI.Rsq(.5032, 62, 4, level = .95) # 80 percent CI CI.Rsq(.5032, 62, 4, level = .80)
Computes the CI for a desired level based on an object of class lm()
CI.Rsqlm(obj, level = 0.95)
CI.Rsqlm(obj, level = 0.95)
obj |
object of a linear model |
level |
Significance Level for constructing the CI, default is .95 |
Extracts the necessary information from the linear model object
and uses CI.Rsq
Returns a table with 4 elements
Rsq |
Squared Multiple Correlation |
SErsq |
Standard error of Rsq |
LCL |
Lower Confidence Limit of the CI |
UCL |
Upper Confidence Limit of the CI |
This is an adequate approximation for n > 60
Thomas D. Fletcher [email protected]
Olkin, I. & Finn, J. D. (1995). Correlation Redux. Psychological Bulletin, 118, 155-164.
Cohen, J., Cohen, P., West, S. G., & Aiken, L. S. (2003). Applied multiple regression/correlation analysis for the behavioral sciences (3rd ed.). Mahwah, NJ: Lawrence Erlbaum.
# Generate data x <- rnorm(100) z <- rnorm(100) xz <- x*z y <- .25*x - .25*z + .25*x*z + .25*rnorm(100) # Create an lm() object lm1 <- lm(y ~ x*z) CI.Rsqlm(lm1)
# Generate data x <- rnorm(100) z <- rnorm(100) xz <- x*z y <- .25*x - .25*z + .25*x*z + .25*rnorm(100) # Create an lm() object lm1 <- lm(y ~ x*z) CI.Rsqlm(lm1)
Computes the CI for a desired level for observed scores and estimated true scores
CI.tscore(obs, mx, s, rxx, level = 0.95) CI.obs(obs, s, rxx, level = 0.95)
CI.tscore(obs, mx, s, rxx, level = 0.95) CI.obs(obs, s, rxx, level = 0.95)
obs |
Observed test score on test x |
mx |
mean of test x |
s |
standard deviation of test x |
rxx |
reliability of test x |
level |
Significance Level for constructing the CI, default is .95 |
CI.tscore
makes use of Est.true
to correct the observed score for
regression to the mean and SE.Est
for the correct standard error. CI.tscore
also requires entry of the mean of the test scores for correcting for regression to the mean. CI.obs
is much simpler in construction as it only makes use of the observed score without any
corrections. CI.obs
uses SE.Meas
, the SEM that appears in most test manuals and
text books.
Both functions return a table with 4 elements
SE. |
Standard Error of the Estimate or SE of Measurement |
LCL |
lower confidence limit of the CIDescription of 'comp2' |
T.Score |
(or OBS) Estimate True Score or Observed score |
UCL |
upper confidence limit of the CI |
Be Cautious in construction and interpretation of CIs
To obtain percent for 1 SEM
1-((1-pnorm(1))*2)
To obtain percent for 2 SEM
1-((1-pnorm(2))*2)
95 percent CI corresponds to 1.96 * SE
1 * SE corresponds to .6827
2 * SE corresponds to 0.9772499
so, for two-sided, 2 * SE corresponds to 0.9544997
It is not in error to report any one of these. The misinterpretation is in taking the observed score and making inferences about the true score without (1) using the correct standard error and (2) correcting for regression toward the mean of the observed scores.
Thomas D. Fletcher [email protected]
Dudek, F. J. (1979). The continuing misinterpretation of the standard error of measurement. Psychological Bulletin, 86, 335-337.
# Examples from Dudek (1979) # Suppose a test has mean = 500, SD = 100 rxx = .9 # If an individual scores 700 on the test CI.tscore (700, 500, 100, .9, level=.68) CI.obs(700, 100,.9, level=.68)
# Examples from Dudek (1979) # Suppose a test has mean = 500, SD = 100 rxx = .9 # If an individual scores 700 on the test CI.tscore (700, 500, 100, .9, level=.68) CI.obs(700, 100,.9, level=.68)
Will construct the CI for a desired level given a correlation and sample size
CIr(r, n, level = 0.95)
CIr(r, n, level = 0.95)
r |
Correlation Coefficient |
n |
Sample Size |
level |
Significance Level for constructing the CI, default is .95 |
LCL |
Lower Confidence Limit of the CI |
UCL |
Upper Confidence Limit of the CI |
Does not compute r, you must enter it into the function
Thomas D. Fletcher [email protected]
Cohen, J., Cohen, P., West, S. G., & Aiken, L. S. (2003). Applied multiple regression/correlation analysis for the behavioral sciences (3rd ed.). Mahwah, NJ: Lawrence Erlbaum.
# From ch. 2 in Cohen et al (2003) CIr (.657, 15)
# From ch. 2 in Cohen et al (2003) CIr (.657, 15)
Produces a CI for the desired level of the sample weighted mean correlation using the appropriate standard error.
CIrb(x, LEVEL = 0.95, homogenous = TRUE)
CIrb(x, LEVEL = 0.95, homogenous = TRUE)
x |
A matrix or data.frame with columns Rxy and n: see |
LEVEL |
Significance Level for constructing the CI, default is .95 |
homogenous |
Whether or not to use homogenous or heterogenous SE |
The CI is constructed based on the uncorrected mean correlation. It is
corrected for sampling error only. To get the CI for the mean correlation
corrected for artifacts, use CredIntRho
, but this is a
credibility interval rather than a confidence interval. See Hunter &
Schmidt (2004) for more details on the interpretation of the differences.
If the CI is computed about a heterogenous mean correlation, one is implying that moderators are present, but that one can't determine what those moderators might be. Otherwise, strive to parse the studies into homogenous subsets and create CI about those means within the subsets.
A list containing:
LCL |
Lower Confidence Limit of the CI |
UCL |
Upper Confidence Limit of the CI |
Thomas D. Fletcher [email protected]
Arthur, Jr., W., Bennett, Jr., W., and Huffcutt, A. I. (2001) Conducting Meta-analysis using SAS. Mahwah, NJ: Erlbaum.
Hunter, J.E. and Schmidt, F.L. (2004). Methods of meta-analysis: Correcting error and bias in research findings (2nd ed.). Thousand Oaks: Sage Publications.
Hunter, J.E., Schmidt, F.L., and Jackson, G.B. (1982). Meta-analysis: Cumulating research findings across studies. Beverly Hills: Sage Publications.
#From Arthur et al data(ABHt32) rbar(ABHt32) CIrb(ABHt32) # From Hunter et al data(HSJt35) rbar(HSJt35) CIrb(HSJt35)
#From Arthur et al data(ABHt32) rbar(ABHt32) CIrb(ABHt32) # From Hunter et al data(HSJt35) rbar(HSJt35) CIrb(HSJt35)
Will construct the CI for a difference in two correlations for a desired level
CIrdif(r1, r2, n1, n2, level = 0.95)
CIrdif(r1, r2, n1, n2, level = 0.95)
r1 |
Correlation 1 |
r2 |
Correlation 2 |
n1 |
Sample size for |
n2 |
Sample size for |
level |
Significance Level for constructing the CI, default is .95 |
Constructs a confidence interval based on the standard error of the difference
of two correlations , sed
Returns a table with 4 elements
DifR |
Observed Difference in correlations |
SED |
Standard error of the difference |
LCL |
Lower Confidence Limit of the CI |
UCL |
Upper Confidence Limit of the CI |
Thomas D. Fletcher [email protected]
Cohen, J., Cohen, P., West, S. G., & Aiken, L. S. (2003). Applied multiple regression/correlation analysis for the behavioral sciences (3rd ed.). Mahwah, NJ: Lawrence Erlbaum.
# From ch. 2 in Cohen et al (2003) CIrdif(.657, .430, 62, 143)
# From ch. 2 in Cohen et al (2003) CIrdif(.657, .430, 62, 143)
Constructs a CI for a specified level about z'. This is useful for constructing CI for a correlation
CIz(z, n, level = 0.95)
CIz(z, n, level = 0.95)
z |
Fishers z' |
n |
Sample Size |
level |
Significance Level for constructing the CI, default is .95 |
LCL |
Lower Confidence Limit of the CI |
UCL |
Upper Confidence Limit of the CI |
Thomas D. Fletcher [email protected]
Cohen, J., Cohen, P., West, S. G., & Aiken, L. S. (2003). Applied multiple regression/correlation analysis for the behavioral sciences (3rd ed.). Mahwah, NJ: Lawrence Erlbaum.
# From ch. 2 in Cohen et al (2003) zp <- r2z(.657) CIz(zp, 15)
# From ch. 2 in Cohen et al (2003) zp <- r2z(.657) CIz(zp, 15)
Calculate the classical utility of a test given a correlation, base-rate and selection ratio.
ClassUtil(rxy = 0, BR = 0.5, SR = 0.5)
ClassUtil(rxy = 0, BR = 0.5, SR = 0.5)
rxy |
Correlation of Test X with Outcome Y |
BR |
Base Rate or prevalence without use of a test |
SR |
Selection Ratio: Number selected out of those tested |
The degree of utility of using a test as a selection instrument over randomly selecting individuals can be reflected in the decision outcomes expected by using the selection instrument. Suppose you have a predictor (selection instrument) and a criterion (job performance). By regressing the criterion on the predictor, and selecting individuals based on some cut-off value, we have 4 possible outcomes. A = True Positives, B = True Negatives, C = False Negatives, and D = False Positives. The classical utility of using the test over current procedures (random selection) is:
[A / (A+D)] - [(A + C) / (A + B + C + D)]
Various manipulations of these relationships can be used to assist in decision making.
Returns a table with the following elements reflecting decision outcomes:
True Positives |
Probability of correctly selecting a successful candidate |
False Negatives |
Probability of incorrectly not selecting a successful candidate |
False Positives |
Probability of incorrectly selecting an unsuccessful candidate |
True Negatives |
Probability of correctly not selecting an unsuccessful candidate |
Sensitivity |
True Positives / (True Positives + False Negatives) |
Specificity |
True Negatives / (True Negatives + False Positives) |
% of Decisions Correct |
Percentage of correct decisions |
Proportion Selected Succesful |
Proportion of those selected expected to be successful |
% Improvement over BR |
Percentage of improvement using the test over random selection |
Thomas D. Fletcher [email protected]
Murphy, K. R. & Davidshofer, C. O. (2005). Psychological testing: Principles and applications (5th ed.). Saddle River, NJ: Prentice Hall.
# 50 percent of those randomly selected are expected to be successful # A company need only select 1/10 applicants # The correlation between test scores and performance is .35 ClassUtil(.35, .5, .1)
# 50 percent of those randomly selected are expected to be successful # A company need only select 1/10 applicants # The correlation between test scores and performance is .35 ClassUtil(.35, .5, .1)
Computed the credibility interval about the population correlation coefficient at the desired level.
CredIntRho(x, aprox = FALSE, level = 0.95)
CredIntRho(x, aprox = FALSE, level = 0.95)
x |
A matrix or data.frame with columns Rxy, n and artifacts (Rxx, Ryy, u):
see |
aprox |
Logical test to determine if the approximate or exact var e is used |
level |
Significance Level for constructing the CI, default is .95 |
The credibility interval is used for the detection of potential moderators. Intervals that large or include zero potentially reflect the presence of moderators. Credibility intervals are constructed about rho, whereas confidence intervals are generally constructed about rbar. See Hunter & Schmidt (2004) for a description of the different uses.
The credibility interval is computed as: rho +/- z[crit] * SD(rho)
where, rho is the corrected correlation, z[crit] is the critcal z value (1.96 for 95%), and SD(rho) is the sqrt(variance in rho).
LCL |
Lower Confidence Limit of the CI |
UCL |
Upper Confidence Limit of the CI |
Thomas D. Fletcher [email protected]
Arthur, Jr., W., Bennett, Jr., W., and Huffcutt, A. I. (2001) Conducting Meta-analysis using SAS. Mahwah, NJ: Erlbaum.
Hunter, J.E. and Schmidt, F.L. (2004). Methods of meta-analysis: Correcting error and bias in research findings (2nd ed.). Thousand Oaks: Sage Publications.
Hunter, J.E., Schmidt, F.L., and Jackson, G.B. (1982). Meta-analysis: Cumulating research findings across studies. Beverly Hills: Sage Publications.
# From Arthur et al data(ABHt32) CredIntRho(ABHt32, aprox=TRUE) # From Hunter et al data(HSJt35) CredIntRho(HSJt35)
# From Arthur et al data(ABHt32) CredIntRho(ABHt32, aprox=TRUE) # From Hunter et al data(HSJt35) CredIntRho(HSJt35)
Corrects a correlation for Range restriction given population and sample standard deviations
cRRr(rr, sdy, sdyu)
cRRr(rr, sdy, sdyu)
rr |
Observed or restricted correlation |
sdy |
Standard deviation of a restricted sample |
sdyu |
Standard deviation of an unrestricted sample |
When one of the variables used to measure a correlation has a restricted variance
One the correlation will be attenuated. This commonly occurs for instance when using
incumbents (those already selected by previous procedures) to based decisions about
validity of new selection procedures. Given u (ratio of unrestricted
SD of one variable to the restricted SD of that variable), the following formula is used
to correct for attenuation in a correlation coefficient:
unrestricted |
corrected correlation |
Do not confuse this function with the meta-analysis function cRR in this same package!
Thomas D. Fletcher [email protected]
Cohen, J., Cohen, P., West, S. G., & Aiken, L. S. (2003). Applied multiple regression/correlation analysis for the behavioral sciences (3rd ed.). Mahwah, NJ: Lawrence Erlbaum.
# See section 2.10.3 of Cohen et al (2003) cRRr(.25, 12, 5) # Create two correlated variables x <- rnorm(1000) y <- 0.71*x +rnorm(1000) cor(x,y) # order and select top 1/10 tmp <- cbind(x,y)[order(y,x),][1:100,] rxyr <- cor(tmp[,"x"],tmp[,"y"]) # restricted rxy rxyr # correct for restriction of range cRRr(rxyr, sd(tmp[,"y"]), sd(y))
# See section 2.10.3 of Cohen et al (2003) cRRr(.25, 12, 5) # Create two correlated variables x <- rnorm(1000) y <- 0.71*x +rnorm(1000) cor(x,y) # order and select top 1/10 tmp <- cbind(x,y)[order(y,x),][1:100,] rxyr <- cor(tmp[,"x"],tmp[,"y"]) # restricted rxy rxyr # correct for restriction of range cRRr(rxyr, sd(tmp[,"y"]), sd(y))
The compound variance factor is computed by summing the individual squared coefficients of variation for each artifact when correcting for attenuation in a correlation coefficient
CVF(x)
CVF(x)
x |
A matrix or data.frame with columns representing artifacts (Rxx, Ryy, u):
see |
The CVF is equal to scv(a) + scv(b) + scv(c), where scv is the squared coefficient of variation. The letters a, b, c represent artifacts reliability in predictor, reliability in criterion, and restriction of range respectively. The scv is computed as the variance in the artifact divided by the square of the average for the artifact.
a numeric value representing the compound variance factor
Thomas D. Fletcher [email protected]
Arthur, Jr., W., Bennett, Jr., W., and Huffcutt, A. I. (2001) Conducting Meta-analysis using SAS. Mahwah, NJ: Erlbaum.
Hunter, J.E. and Schmidt, F.L. (2004). Methods of meta-analysis: Correcting error and bias in research findings (2nd ed.). Thousand Oaks: Sage Publications.
Hunter, J.E., Schmidt, F.L., and Jackson, G.B. (1982). Meta-analysis: Cumulating research findings across studies. Beverly Hills: Sage Publications.
# From Arthur et al data(ABHt32) CVF(ABHt32) # From Hunter et al data(HSJt35) CVF(HSJt35)
# From Arthur et al data(ABHt32) CVF(ABHt32) # From Hunter et al data(HSJt35) CVF(HSJt35)
Computes Lawshe's CVR for determining whether items are essential or not.
CVratio(NTOTAL, NESSENTIAL)
CVratio(NTOTAL, NESSENTIAL)
NTOTAL |
Total number of Experts |
NESSENTIAL |
Number of Experts indicating item 'essential' |
To determine content validity (in relation to job performance), a panel of
subject matter experts will examine a set of items indicating
whether the items are essential, useful, not necessary. The CVR is
calculated to indicate whether the item is pertinent to the content validity.
CVR values range +1 to -1. Values closer to +1 indicated experts are in aggreement that the item is essential to content validity.
Content Validity Ratio
CVR = (Ne - N/2)/(N-1)
Thomas D. Fletcher [email protected]
Lawshe, C. H. (1975). A quantitative approach to content validity. Personnel Psychology, 28, 563-575.
# Using 5 Expert panelists (SMEs) # The ratings for an item is as follows: # Rater1 = Essential # Rater2 = Essential # Rater3 = Essential # Rater4 = Useful # Rater5 = Not necessary # # essential = 3 CVratio (5, 3)
# Using 5 Expert panelists (SMEs) # The ratings for an item is as follows: # Rater1 = Essential # Rater2 = Essential # Rater3 = Essential # Rater4 = Useful # Rater5 = Not necessary # # essential = 3 CVratio (5, 3)
Discrimination of an item is the ability for a specific item to distinguish among upper and lower ability individuals on a test
discrim(x)
discrim(x)
x |
matrix or data.frame of items to be examined. Rows represent persons, Columns represent items |
The function takes data on individuals and their test scores and computes a total score to
separate high and low ordered individuals. The upper and lower groups are defined as the top and
bottom 1/3 of the total. Discrimination is then computed and returned for each item using the formula:
(number correct in the upper group - number correct in the lower group ) / size of each group
Discrimination index for each item in the data.frame or matrix analyzed.
discrim
is used by item.exam
discrim
is especially useful for
dichotomously coded items such as correct/incorrect. If items are not dischotomously coded, the
interpretation of discrim
has less meaning.
Thomas D. Fletcher [email protected]
Allen, M. J. & Yen, W. M. (1979). Introduction to measurement theory. Monterey, CA: Brooks/Cole.
# see item.exam # Scores on a test for 12 individuals # 1 = correct item1 <- c(1,1,1,0,1,1,1,1,1,1,0,1) item2 <- c(1,0,1,1,1,1,1,1,1,1,1,0) item3 <- c(1,1,1,1,1,1,1,1,1,1,1,1) item4 <- c(0,1,0,1,0,1,0,1,1,1,1,1) item5 <- c(0,0,0,0,1,0,0,1,1,1,1,1) item6 <- c(0,0,0,0,0,0,1,0,0,1,1,1) item7 <- c(0,0,0,0,0,0,0,0,1,0,0,0) exam <- cbind(item1, item2, item3, item4, item5, item6, item7) discrim(exam)
# see item.exam # Scores on a test for 12 individuals # 1 = correct item1 <- c(1,1,1,0,1,1,1,1,1,1,0,1) item2 <- c(1,0,1,1,1,1,1,1,1,1,1,0) item3 <- c(1,1,1,1,1,1,1,1,1,1,1,1) item4 <- c(0,1,0,1,0,1,0,1,1,1,1,1) item5 <- c(0,0,0,0,1,0,0,1,1,1,1,1) item6 <- c(0,0,0,0,0,0,1,0,0,1,1,1) item7 <- c(0,0,0,0,0,0,0,0,1,0,0,0) exam <- cbind(item1, item2, item3, item4, item5, item6, item7) discrim(exam)
This function creates data entry object suitable for creating an object needed in the typical meta-analysis. The object will have the appropriate variable names.
EnterMeta()
EnterMeta()
To create a data object appropriate for the meta-analysis functions in this package:
Type
my.Meta.data <- EnterMeta()
Then use the data editor to enter data in the appropriate columns.
Does not return a value, but rather is used for naming columns of a data.frame()
The final object (if saved) will contain:
study |
Enter Study Code or article name |
Rxy |
Correlation coefficient |
n |
Sample size for study |
Rxx |
Reliability of predictor variable X |
Ryy |
Reliability of criterion variable Y |
u |
Degree of range restriction - ratio of restricted to unrestricted standard deviations |
moderator |
moderator variable (if any) |
This function will not automatically save your data object. You must create the object using the assignment operator.
This is the general format required for data objects used for all the meta-analysis functions in this package. If certain variables are empty (e.g., Rxx, u), then the appropriate correction is not made, but the placeholder must be there. Moderator is useful for the user to subset the data and re-run any functions.
Thomas D. Fletcher [email protected]
As an alternative, consider read.csv
for importing data prepared
elsewhere (e.g., Excel)
# my.data <- EnterMeta()
# my.data <- EnterMeta()
Given the mean and reliability of a test, this function estimates the true score based on an observed score. The estimation is accounting for regression to the mean
Est.true(obs, mx, rxx)
Est.true(obs, mx, rxx)
obs |
an observed score on test x |
mx |
mean of test x |
rxx |
reliability of test x |
The estimated true score (that) is computed as
that <- mx*(1-rxx)+rxx*obs
When the obs score is much higher than the mean, the that < obs
When the obs score is much lower than the mean, that > obs
Estimated True score
Thomas D. Fletcher [email protected]
Dudek, F. J. (1979). The continuing misinterpretation of the standard error of measurement. Psychological Bulletin, 86, 335-337.
# Examples from Dudek (1979) # Suppose a test has mean = 500, SD = 100 rxx = .9 # If an individual scores 700 on the test Est.true(700, 500, .9) # If an individual scores 400 on the test Est.true(400, 500, .9)
# Examples from Dudek (1979) # Suppose a test has mean = 500, SD = 100 rxx = .9 # If an individual scores 700 on the test Est.true(700, 500, .9) # If an individual scores 400 on the test Est.true(400, 500, .9)
Computes the number of 'lost' studies needed to render the observed meta-analytic correlation to non-significance.
FileDrawer(x, rc = 0.1)
FileDrawer(x, rc = 0.1)
x |
A matrix or data.frame with columns Rxy and n: see |
rc |
cut-off correlation for which to make a comparison |
Use to detect availability bias in published correlations. It is computed as n <- k * (rb/rc - 1), where, n is the file drawer n, k is the number of studies in current meta-analyis, rb is rbar and rc is the cut-off correlation for which you wish to make a comparison. For a test of the null hypothesis, use rc = 0. In many instances, practitioners are interested in reducing correlations to less than 1 percent of the variance accounted for (i.e., rc = .1).
"# of 'lost' studies needed" |
File drawer N needed to change decision |
Thomas D. Fletcher [email protected]
Hunter, J.E. and Schmidt, F.L. (2004). Methods of meta-analysis: Correcting error and bias in research findings (2nd ed.). Thousand Oaks: Sage Publications.
Rosenthal, R. (1979). The "file-drawer problem" and tolerance for null results. Psychological Bulletin, 86, 638-641.
# From Arthur et al data(ABHt32) FileDrawer(ABHt32) # From Hunter et al data(HSJt35) FileDrawer(HSJt35)
# From Arthur et al data(ABHt32) FileDrawer(ABHt32) # From Hunter et al data(HSJt35) FileDrawer(HSJt35)
Produces a simple x-y plot corresponding to the correlation and sample size. A vertical line is produced representing the sample weighted correlation.
FunnelPlot(x)
FunnelPlot(x)
x |
A matrix or data.frame with columns Rxy and n: see |
Plot showing 'no evidence' of availabilty bias will resemble funnel getting smaller at the top, and larger at the bottom of the plot. A plot showing evidence of availablity bias will not resemble a funnel.
a plot
Thomas D. Fletcher [email protected]
Arthur, Jr., W., Bennett, Jr., W., and Huffcutt, A. I. (2001) Conducting Meta-analysis using SAS. Mahwah, NJ: Erlbaum.
Hunter, J.E. and Schmidt, F.L. (2004). Methods of meta-analysis: Correcting error and bias in research findings (2nd ed.). Thousand Oaks: Sage Publications.
Hunter, J.E., Schmidt, F.L., and Jackson, G.B. (1982). Meta-analysis: Cumulating research findings across studies. Beverly Hills: Sage Publications.
# From Arthur et al data(ABHt32) FunnelPlot(ABHt32) # From Hunter et al data(HSJt35) FunnelPlot(HSJt35)
# From Arthur et al data(ABHt32) FunnelPlot(ABHt32) # From Hunter et al data(HSJt35) FunnelPlot(HSJt35)
This is a useful and fictious example for conducting Meta-Analysis. It appeared in Hunter et al (1982)
data(HSJt35)
data(HSJt35)
A data frame with 8 observations on the following 7 variables.
study Study code
Rxy Published correlation
n Sample size
Rxx Reliability of predictor
Ryy Reliability of criterion
u Range Restriction Ratio
moderator none <na>
This example has been replicated a number of times (e.g., Hunter & Schmidt, 2004). It is useful in illustrating the basic concepts of validity generalization. The data can be used to demonstrate bare-bones MA as well as correction for artifacts. This data format is the format necessary for the R functions in the psychometric package.
Hunter, J.E. and Schmidt, F.L. (2004). Methods of meta-analysis: Correcting error and bias in research findings (2nd ed.). Thousand Oaks: Sage Publications.
Hunter, J.E., Schmidt, F.L., and Jackson, G.B. (1982). Meta-analysis: Cumulating research findings across studies. Beverly Hills: Sage Publications.
data(HSJt35) rbar(HSJt35) FunnelPlot(HSJt35) CredIntRho(HSJt35)
data(HSJt35) rbar(HSJt35) FunnelPlot(HSJt35) CredIntRho(HSJt35)
Computes the CI at the desired level for the ICC1 and ICC2
ICC1.CI(dv, iv, data, level = 0.95) ICC2.CI(dv, iv, data, level = 0.95)
ICC1.CI(dv, iv, data, level = 0.95) ICC2.CI(dv, iv, data, level = 0.95)
dv |
The dependent variable of interest |
iv |
cluster or grouping variable |
data |
data.frame containing the data |
level |
Significance Level for constructing the CI, default is .95 |
Computes the ICC from a one-way ANOVA. The CI is then computed at the desired level using formulae provided by McGraw & Wong (1996). They use the terminology ICC(1) and ICC(k) for ICC1 and ICC2 respectively.
A table with 3 elements:
LCL |
lower confidence limit if CI |
ICC |
intra-class correlation |
UCL |
upper confidence limit if CI |
Thomas D. Fletcher [email protected]
McGraw, K. O. & Wong, S. P. (1996). Forming some inferences about some intraclass correlation coefficients. Psychological Methods, 1, 30-46.
Bliese, P. (2000). Within-group agreement, non-independence, and reliability: Implications for data aggregation and analysis. In K. J. Klein & S. W. J. Kozlowski (Eds.), Multilevel theory, research, and methods in organizations: Foundations, extensions, and new directions (pp. 349-381). San Francisco: Jossey-Bass.
library(multilevel) data(bh1996) ICC1.CI(HRS, GRP, bh1996) ICC2.CI(HRS, GRP, bh1996)
library(multilevel) data(bh1996) ICC1.CI(HRS, GRP, bh1996) ICC2.CI(HRS, GRP, bh1996)
ICC1 and ICC2 computed from a lme() model.
ICC1.lme(dv, grp, data) ICC2.lme(dv, grp, data, weighted = FALSE)
ICC1.lme(dv, grp, data) ICC2.lme(dv, grp, data, weighted = FALSE)
dv |
The dependent variable of interest |
grp |
cluster or grouping variable |
data |
data.frame containing the data |
weighted |
Whether or not a weighted mean is used in calculation of ICC2 |
First a lme() model is computed from the data. Then ICC1 is computed as ,
where t00 is the variance in intercept of the model and
is the residual variance for
the model. The ICC2 is computed by computing the ICC2 for each group
where nj is the size of group j. The mean across all groups is then taken to be the ICC2.
However, one can specify that the mean should be weigted by group size such that larger groups
are given more weight. The calculation of the individual group ICC2 is done by Bliese's
gmeanrel
function. An alternate specification not used here,
but sometimes seen in the literature for ICC2 is to use the formula above for the total data
set, but replace nj with the average group size. This is the method used in Bliese's
mult.icc
.
ICC1 or ICC2
If data used are attached, you will sometimes receive a warning that can be ignored. The warning states that the following variables ... are masked. This is because the function first attaches the data and then detaches it within the function.
ICC1.lme and ICC2.lme should in principle be equal an ICC computed from a one-way ANOVA only when the data are balanced (equal group sizes for all groups and no missing data). The ICC.lme should be a more accurate measure of ICC in all other instances. The three specifications of ICC2 mentioned above (details) will be similar by not exactly equal because of group variablity.
Thomas D. Fletcher [email protected]
Bliese, P. (2000). Within-group agreement, non-independence, and reliability: Implications for data aggregation and analysis. In K. J. Klein & S. W. J. Kozlowski (Eds.), Multilevel theory, research, and methods in organizations: Foundations, extensions, and new directions (pp. 349-381). San Francisco: Jossey-Bass.
library(nlme) library(multilevel) data(bh1996) ICC1.lme(HRS, GRP, data=bh1996) ICC2.lme(HRS, GRP, data=bh1996)
library(nlme) library(multilevel) data(bh1996) ICC1.lme(HRS, GRP, data=bh1996) ICC2.lme(HRS, GRP, data=bh1996)
Conducts an item level analysis. Provides item-total correlations, Standard deviation in items, difficulty, discrimination, and reliability and validity indices.
item.exam(x, y = NULL, discrim = FALSE)
item.exam(x, y = NULL, discrim = FALSE)
x |
matrix or data.frame of items |
y |
Criterion variable |
discrim |
Whether or not the discrimination of item is to be computed |
If someone is interested in examining the items of a dataset contained in data.frame x, and
the criterion measure is also in data.frame x, one must parse the matrix or data.frame and specify
each part into the function. See example below. Otherwise, one must be sure that x and y are properly
merged/matched. If one is not interested in assessing item-criterion relationships, simply leave out
that portion of the call. The function does not check whether the items are dichotomously coded,
this is user specified. As such, one can specify that items are binary when in fact they are not. This
has the effect of computing the discrimination index for continuously coded variables.
The difficulty index (p) is simply the mean of the item. When dichotomously coded, p reflects the
proportion endorsing the item. However, when continuously coded, p has a different interpretation.
A table with rows representing each item and columns repsenting :
Sample.SD |
Standard deviation of the item |
Item.total |
Correlation of the item with the total test score |
Item.Tot.woi |
Correlation of item with total test score (scored without item) |
Difficulty |
Mean of the item (p) |
Discrimination |
Discrimination of the item (u-l)/n |
Item.Criterion |
Correlation of the item with the Criterion (y) |
Item.Reliab |
Item reliability index |
Item.Rel.woi |
Item reliability index (scored without item) |
Item.Validity |
Item validity index |
Be cautious when using data with missing values or small data sets.
Listwise deletion is employed for both X (matrix of items to be analyzed) and Y (criterion). When the datasets are small, such listwise deletion can make a big impact. Further, since the upper and lower groups are defined as the upper and lower 1/3, the stability of this division of examinees is greatly increased with larger N.
Most all text books suggest the point-biserial correlation for the item-total.
Since the point-biserial is equivalent to the Pearson r, the cor
function is used
to render the Pearson r for each item-total. However, it might be suggested that the
polyserial is more appropriate. For practical purposes, the Pearson is sufficient and is
used here.
If discrim = TRUE, then the discrimination index is computed and returned EVEN IF the items
are not dichotomously coded. The interpretation of the discrimination index is then suspect.
discrim
computes the number of correct responses in the upper and lower groups by
summation of the '1s' (correct responses). When data are continuous, the discrimination index
represents the difference in the sum of the scores divided by number in each group (1/3*N).
Thomas D. Fletcher [email protected]
Allen, M. J. & Yen, W. M. (1979). Introduction to measurement theory. Monterey, CA: Brooks/Cole.
data(TestScores) # Look at the data TestScores # Examine the items item.exam(TestScores[,1:10], y = TestScores[,11], discrim=TRUE)
data(TestScores) # Look at the data TestScores # Examine the items item.exam(TestScores[,1:10], y = TestScores[,11], discrim=TRUE)
Computes and returns the major functions involved in a Meta-Analysis. It is generic in the sense that no options are available to alter defaults.
MetaTable(x)
MetaTable(x)
x |
A matrix or data.frame with columns Rxy, n and artifacts (Rxx, Ryy, u):
see |
For a set of correlations for each study (i), the following calculations are made and returned:
r-bar rbar
, variance in r-bar varr
, variance due to sampling error
(not approximated) vare
, percent of variance due to sampling error pvse
,
95% CI for r-bar (using both the heterogenous and homogenous SE) CIrb
, rho (
corrected r-bar) rhoCA
, variance in rho varRCA
, percent of variance
attributable to artifacts pvaaa
, 90% Credibility interval CredIntRho
Data.frame with various statistics returned - see details above
Thomas D. Fletcher [email protected]
Arthur, Jr., W., Bennett, Jr., W., and Huffcutt, A. I. (2001) Conducting Meta-analysis using SAS. Mahwah, NJ: Erlbaum.
Hunter, J.E. and Schmidt, F.L. (2004). Methods of meta-analysis: Correcting error and bias in research findings (2nd ed.). Thousand Oaks: Sage Publications.
Hunter, J.E., Schmidt, F.L., and Jackson, G.B. (1982). Meta-analysis: Cumulating research findings across studies. Beverly Hills: Sage Publications.
# From Arthur et al data(ABHt32) MetaTable(ABHt32) # From Hunter et al data(HSJt35) MetaTable(HSJt35)
# From Arthur et al data(ABHt32) MetaTable(ABHt32) # From Hunter et al data(HSJt35) MetaTable(HSJt35)
Computes the percentage variance attributed to attenuating artifacts (sampling error, restriction of range, reliability in predictor and criterion.
pvaaa(x, aprox = FALSE)
pvaaa(x, aprox = FALSE)
x |
A matrix or data.frame with columns Rxy, n and artifacts (Rxx, Ryy, u):
see |
aprox |
Logical test to determine if the approximate or exact var e is used |
Percent of variance is computed as: ( vare
+ varAV
) / varr
* 100
A numeric value representing the percent of variance accounted for by artifacts
Thomas D. Fletcher [email protected]
Arthur, Jr., W., Bennett, Jr., W., and Huffcutt, A. I. (2001) Conducting Meta-analysis using SAS. Mahwah, NJ: Erlbaum.
Hunter, J.E. and Schmidt, F.L. (2004). Methods of meta-analysis: Correcting error and bias in research findings (2nd ed.). Thousand Oaks: Sage Publications.
Hunter, J.E., Schmidt, F.L., and Jackson, G.B. (1982). Meta-analysis: Cumulating research findings across studies. Beverly Hills: Sage Publications.
# From Arthur et al data(ABHt32) pvaaa(ABHt32) # From Hunter et al data(HSJt35) pvaaa(HSJt35)
# From Arthur et al data(ABHt32) pvaaa(ABHt32) # From Hunter et al data(HSJt35) pvaaa(HSJt35)
Ratio of sampling error variance to weighted variance in correlations for a meta-analysis. This value is compared to 75 (e.g., 75% rule) to determine the presence of moderators.
pvse(x)
pvse(x)
x |
A matrix or data.frame with columns Rxy and n: see |
A single numeric value of class matrix representing the % of variance accounted for by sampling error
Thomas D. Fletcher [email protected]
Arthur, Jr., W., Bennett, Jr., W., and Huffcutt, A. I. (2001) Conducting Meta-analysis using SAS. Mahwah, NJ: Erlbaum.
Hunter, J.E. and Schmidt, F.L. (2004). Methods of meta-analysis: Correcting error and bias in research findings (2nd ed.). Thousand Oaks: Sage Publications.
Hunter, J.E., Schmidt, F.L., and Jackson, G.B. (1982). Meta-analysis: Cumulating research findings across studies. Beverly Hills: Sage Publications.
# From Arthur et al data(ABHt32) pvse(ABHt32) # From Hunter et al data(HSJt35) pvse(HSJt35)
# From Arthur et al data(ABHt32) pvse(ABHt32) # From Hunter et al data(HSJt35) pvse(HSJt35)
Provides a chi-square test for significant variation in sample weighted correlation, rbar
Qrbar(x) aprox.Qrbar(x)
Qrbar(x) aprox.Qrbar(x)
x |
A matrix or data.frame with columns Rxy and n: see |
Q is distributed as chi-square with df equal to the number of studies - 1. Multiple equations exist presumably because of a need to do the calculations ‘by hand’ in the past. A significant Q statistic implies the presence of one or more moderating variables operating on the observed correlations.
A table containing the following items:
CHISQ |
Chi-square value |
df |
degrees of freedom |
p-val |
probabilty value |
The test is presented by Hunter et al. 1982, but is NOT recommended
nor mentioned by Hunter & Schmidt (2004). The test is sensitive to the number of studies
included in the meta-analysis. Large meta-analyses may find significant Q statistics when
variation in the population is not present, and small meta-analyses may find lack of
significant Q statistics when moderators are present. Hunter & Schmidt (2004) recommend
the credibility inteval, CredIntRho
, or the 75% rule, pvse
,
as determinants of the presence of moderators.
Qrbar
is computed as:
aprox.Qrbar
is computed as:
where n is sample size of study i, N is total sample size across studies,
rb is rbar
, r is the correlation of study i,
and vr is varr
.
Thomas D. Fletcher [email protected]
Arthur, Jr., W., Bennett, Jr., W., and Huffcutt, A. I. (2001) Conducting Meta-analysis using SAS. Mahwah, NJ: Erlbaum.
Hunter, J.E. and Schmidt, F.L. (2004). Methods of meta-analysis: Correcting error and bias in research findings (2nd ed.). Thousand Oaks: Sage Publications.
Hunter, J.E., Schmidt, F.L., and Jackson, G.B. (1982). Meta-analysis: Cumulating research findings across studies. Beverly Hills: Sage Publications.
varr
, vare
, rbar
,
CredIntRho
, pvse
# From Arthur et al data(ABHt32) aprox.Qrbar(ABHt32) # From Hunter et al data(HSJt35) Qrbar(HSJt35) aprox.Qrbar(HSJt35)
# From Arthur et al data(ABHt32) aprox.Qrbar(ABHt32) # From Hunter et al data(HSJt35) Qrbar(HSJt35) aprox.Qrbar(HSJt35)
Provides a chi-square test for significant variation in sample weighted correlation corrected for attenuating artifacts
Qrho(x, aproxe = FALSE)
Qrho(x, aproxe = FALSE)
x |
A matrix or data.frame with columns Rxy, n and artifacts (Rxx, Ryy, u):
see |
aproxe |
Logical test to determine if the approximate or exact var e is used |
Q is distributed as chi-square with df equal to the number of studies - 1. A significant Q statistic implies the presence of one or more moderating variables operating on the observed correlations after corrections for artifacts.
A table containing the following items:
CHISQ |
Chi-square value |
df |
degrees of freedom |
p-val |
probabilty value |
The test is sensitive to the number of studies included in the meta-analysis.
Large meta-analyses may find significant Q statistics when variation in the population is not present,
and small meta-analyses may find lack of significant Q statistics when moderators are present. Hunter &
Schmidt (2004) recommend the credibility inteval, CredIntRho
, or the 75% rule,
pvse
, as determinants of the presence of moderators.
Q is defined as: (k*vr)/(vav+ve)
where, k is the number of studies, vr is varr
, vav is varAV
, and ve is
vare
Thomas D. Fletcher [email protected]
Arthur, Jr., W., Bennett, Jr., W., and Huffcutt, A. I. (2001) Conducting Meta-analysis using SAS. Mahwah, NJ: Erlbaum.
Hunter, J.E. and Schmidt, F.L. (2004). Methods of meta-analysis: Correcting error and bias in research findings (2nd ed.). Thousand Oaks: Sage Publications.
Hunter, J.E., Schmidt, F.L., and Jackson, G.B. (1982). Meta-analysis: Cumulating research findings across studies. Beverly Hills: Sage Publications.
varr
, vare
, rbar
,
CredIntRho
, pvse
# From Arthur et al data(ABHt32) Qrho(ABHt32) # From Hunter et al data(HSJt35) Qrho(HSJt35)
# From Arthur et al data(ABHt32) Qrho(ABHt32) # From Hunter et al data(HSJt35) Qrho(HSJt35)
Performs a two-tailed t-test of the H0 that r = 0
r.nil(r, n)
r.nil(r, n)
r |
Correlation coefficient |
n |
Sample Size |
Returns a table with 4 elements
correlation to be tested
t |
t value for the H0 |
df |
degrees of freedom |
p |
p value |
Thomas D. Fletcher [email protected]
Cohen, J., Cohen, P., West, S. G., & Aiken, L. S. (2003). Applied multiple regression/correlation analysis for the behavioral sciences (3rd ed.). Mahwah, NJ: Lawrence Erlbaum.
# From ch. 2 in Cohen et al (2003) r.nil(.657, 15)
# From ch. 2 in Cohen et al (2003) r.nil(.657, 15)
Converts a Pearson correlation coefficient to Fishers z'
r2z(x)
r2z(x)
x |
Pearson correlation coefficient |
z' = .5 * log((1+r)/(1-r))
Fisher z'
Thomas D. Fletcher [email protected]
Cohen, J., Cohen, P., West, S. G., & Aiken, L. S. (2003). Applied multiple regression/correlation analysis for the behavioral sciences (3rd ed.). Mahwah, NJ: Lawrence Erlbaum.
# From ch. 2 in Cohen et al (2003) r2z(.657)
# From ch. 2 in Cohen et al (2003) r2z(.657)
Computes the weighted mean correlation from a data object of the general format found in
EnterMeta
rbar(x)
rbar(x)
x |
A matrix or data.frame with columns Rxy and n: see |
For a set of correlations for each study (i), rbar is computed as: sum(Ni*ri)/sum(Ni) where, Ni is the sample size of study i and ri is the correlation in study i.
Sample Weighted Average Correlation: uncorrected for artifacts other than sampling error
This is the mean correlation across studies corrected for sampling error. It is also known as bare-bones meta-analysis.
Thomas D. Fletcher [email protected]
Arthur, Jr., W., Bennett, Jr., W., and Huffcutt, A. I. (2001) Conducting Meta-analysis using SAS. Mahwah, NJ: Erlbaum.
Hunter, J.E. and Schmidt, F.L. (2004). Methods of meta-analysis: Correcting error and bias in research findings (2nd ed.). Thousand Oaks: Sage Publications.
Hunter, J.E., Schmidt, F.L., and Jackson, G.B. (1982). Meta-analysis: Cumulating research findings across studies. Beverly Hills: Sage Publications.
# From Arthur et al data(ABHt32) rbar(ABHt32) # From Hunter et al data(HSJt35) rbar(HSJt35)
# From Arthur et al data(ABHt32) rbar(ABHt32) # From Hunter et al data(HSJt35) rbar(HSJt35)
Tests the hypothesis that two correlations are significantly different
rdif.nul(r1, r2, n1, n2)
rdif.nul(r1, r2, n1, n2)
r1 |
Correlation 1 |
r2 |
Correlation 2 |
n1 |
Sample size for |
n2 |
Sample size for |
First converts r to z' for each correlation. Then constructs a z test for the difference z <- (z1 - z2)/sqrt(1/(n1-3)+1/(n2-3))
Returns a table with 2 elements
zDIF |
z value for the H0 |
p |
p value |
Does not test alternate hypotheses (e.g., difference = .1)
Thomas D. Fletcher [email protected]
Cohen, J., Cohen, P., West, S. G., & Aiken, L. S. (2003). Applied multiple regression/correlation analysis for the behavioral sciences (3rd ed.). Mahwah, NJ: Lawrence Erlbaum.
# From ch. 2 in Cohen et al (2003) rdif.nul(.657, .430, 62, 143)
# From ch. 2 in Cohen et al (2003) rdif.nul(.657, .430, 62, 143)
This represents the population correlation coefficient free from attenuaton due to artifacts (sampling error, range-restriction, reliability in the predictor and criterion).
rhoCA(x)
rhoCA(x)
x |
A matrix or data.frame with columns Rxy, n and artifacts (Rxx, Ryy, u):
see |
This is the sample weighted correlation coefficient rbar
divided by the
compound attenuation factor, CAFAA
.
A numeric value represting the corrected correlation coefficient.
Thomas D. Fletcher [email protected]
Arthur, Jr., W., Bennett, Jr., W., and Huffcutt, A. I. (2001) Conducting Meta-analysis using SAS. Mahwah, NJ: Erlbaum.
Hunter, J.E. and Schmidt, F.L. (2004). Methods of meta-analysis: Correcting error and bias in research findings (2nd ed.). Thousand Oaks: Sage Publications.
Hunter, J.E., Schmidt, F.L., and Jackson, G.B. (1982). Meta-analysis: Cumulating research findings across studies. Beverly Hills: Sage Publications.
# From Arthur et al data(ABHt32) rhoCA(ABHt32) # From Hunter et al data(HSJt35) rhoCA(HSJt35)
# From Arthur et al data(ABHt32) rhoCA(ABHt32) # From Hunter et al data(HSJt35) rhoCA(HSJt35)
These functions will calculate the three Standard Errors of Measurement as described by Dudek(1979). They are useful in constructing CI about observed scores, true scores and predicting observed scores on parallel measures.
SE.Meas(s, rxx) SE.Est (s, rxx) SE.Pred(sy, rxx)
SE.Meas(s, rxx) SE.Est (s, rxx) SE.Pred(sy, rxx)
s |
Standard Deviation in tests scores on test x |
sy |
Standard Deviation in tests scores on parallel test y = x |
rxx |
Reliability of test x |
Dudek (1979) notes that in practice, individuals often misinterpret the SEM.
In fact, most textbooks misinterpret these measures. The SE.Meas
is useful in the construction of CI about observed scores, but should not be
interpreted as indicating the TRUE SCORE is necessarily included in the CI. The
SE.Est
is useful in the construction of CI about the TRUE
SCORE. The estimate of a CI for a TRUE SCORE also requires the calculation of a
TRUE SCORE (due to regression to the mean) from observed scores. The SE.Pred
is useful in predicting the score on a parallel measure (Y)
given a score on test X. SE.Pred is usually used to estimate the score of a
re-test of an individual.
The returned value is the appropriate standard error
Since strictly parallel tests have the same SD, s and sy are equivalent in these functions.
SE.Meas() is used by CI.obs
. SE.Est() is used by CI.tscore
. You must use
Est.true
to first compute the estimated true score from an observed score accounting for regression
to the mean.
Thomas D. Fletcher [email protected]
Dudek, F. J. (1979). The continuing misinterpretation of the standard error of measurement. Psychological Bulletin, 86, 335-337.
Lord, F. M. & Novick, M. R. (1968). Statistical theories of mental test scores. Reading, MA: Addison-Wesley.
Nunnally, J. C. & Bernstein, I. H. (1994). Psychometric Theory (3rd ed.). New York: McGraw-Hill.
# Examples from Dudek (1979) # Suppose a test has mean = 500, SD = 100 rxx = .9 # If an individual scores 700 on the test # The three SE are: SE.Meas (100, .9) SE.Est (100, .9) SE.Pred (100, 9) # CI about the true score CI.tscore(700, 500, 100, .9) # CI about the observed score CI.obs(700, 100, .9)
# Examples from Dudek (1979) # Suppose a test has mean = 500, SD = 100 rxx = .9 # If an individual scores 700 on the test # The three SE are: SE.Meas (100, .9) SE.Est (100, .9) SE.Pred (100, 9) # CI about the true score CI.tscore(700, 500, 100, .9) # CI about the observed score CI.obs(700, 100, .9)
The standard error of homogenous or heterogenous samples is computed to be used for
construction of confidence intervals about the Sample Size Weighted Mean Correlation in
meta-analysis. Use SERHOM
if no moderators are present (population is homogenous), and
use SERHET
if moderators are present (population is heterogenous).
SERHOM(x) SERHET(x)
SERHOM(x) SERHET(x)
x |
A matrix or data.frame with columns Rxy and n: see |
The formula for each are:
SERHOM <-
SERHET <-
where, rb is rbar
, N is the total sample size, k is the number of studies.
A numeric value, the standard error
Thomas D. Fletcher [email protected]
Arthur, Jr., W., Bennett, Jr., W., and Huffcutt, A. I. (2001) Conducting Meta-analysis using SAS. Mahwah, NJ: Erlbaum.
Hunter, J.E. and Schmidt, F.L. (2004). Methods of meta-analysis: Correcting error and bias in research findings (2nd ed.). Thousand Oaks: Sage Publications.
Hunter, J.E., Schmidt, F.L., and Jackson, G.B. (1982). Meta-analysis: Cumulating research findings across studies. Beverly Hills: Sage Publications.
# From Arthur et al data(ABHt32) SERHOM(ABHt32) SERHET(ABHt32) CIrb(ABHt32) # From Hunter et al data(HSJt35) SERHOM(HSJt35) SERHET(HSJt35) CIrb(HSJt35)
# From Arthur et al data(ABHt32) SERHOM(ABHt32) SERHET(ABHt32) CIrb(ABHt32) # From Hunter et al data(HSJt35) SERHOM(HSJt35) SERHET(HSJt35) CIrb(HSJt35)
Given a sample size, n, will compute the aproximate standard error for z prime This is useful for constructing confidence intervals about a correlation.
SEz(n)
SEz(n)
n |
sample size |
SEz = 1/sqrt(n-3)
The approximate standard error for Fisher's z prime
Thomas D. Fletcher [email protected]
Olkin, I. & Finn, J. D. (1995). Correlation Redux. Psychological Bulletin, 118, 155-164.
Cohen, J., Cohen, P., West, S. G., & Aiken, L. S. (2003). Applied multiple regression/correlation analysis for the behavioral sciences (3rd ed.). Mahwah, NJ: Lawrence Erlbaum.
# From ch. 2 in Cohen et al (2003) zp <- r2z(.657) zp SEz(15)
# From ch. 2 in Cohen et al (2003) zp <- r2z(.657) zp SEz(15)
These two functions are various manipulations of the Spearman-Brown Prophecy Formula. They are useful in determining relibility if test length is changed or length of a new test if reliability were to change.
SBrel(Nlength, rxx) SBlength(rxxp, rxx)
SBrel(Nlength, rxx) SBlength(rxxp, rxx)
Nlength |
New length of a test in relation to original |
rxx |
reliability of test x |
rxxp |
reliability of desired (parallel) test x |
Nlength represents a ratio of new to original. If the new test has 10 items, and the original test has 5 items, Nlength is 2. Likewise, if the original test has 5 items, and the new test has 10 items, Nlength is .5. In general, researchers should aim for reliabilities > .9.
SBrel
is used to address the question, what if I increased/decreased my test length?
What will the new reliability be? This is used when computing split-half reliabilities
and when when concerned about reducing test length. SBlength
is used to address the question, how long must my test be (in relation to the
original test) in order to achieve a desired reliability?
The formulae for each are:
rxxp <- Nlength*rxx/(1+(Nlength-1)*rxx)
N <- rxxp*(1-rxx)/(rxx*(1-rxxp))
rxxp |
the prophesized reliability |
N |
Ratio of new test length to original test length |
Thomas D. Fletcher [email protected]
Allen, M. J. & Yen, W. M. (1979). Introduction to measurement theory. Monterey, CA: Brooks/Cole.
# Given a test with rxx = .7, 10 items # Desire a test with rxx=.9, how many items are needed? new.length <- SBlength(.9, .7) new.length * 10 # 39 items are needed # what is the reliability of a test 1/2 as long SBrel(.5, .7)
# Given a test with rxx = .7, 10 items # Desire a test with rxx=.9, how many items are needed? new.length <- SBlength(.9, .7) new.length * 10 # 39 items are needed # what is the reliability of a test 1/2 as long SBrel(.5, .7)
These data were created to correspond to scores for 30 examinees on 10 items of test X plus a score on criterion Y.
data(TestScores)
data(TestScores)
A matrix with 30 observations on the following 11 variables.
i1
item1 on test x
i2
item2 on test x
i3
item3 on test x
i4
item4 on test x
i5
item5 on test x
i6
item6 on test x
i7
item7 on test x
i8
item8 on test x
i9
item9 on test x
i10
item10 on test x
y
Score on criterion Y
These data are constructed such that items 1 - 10 are coded 0,1 for incorrect/correct responses. The data illustate that some items are better for maintaining internal consistency, whereas others may be more useful for relating to external criteria.
data(TestScores) str(TestScores) item.exam(TestScores[,1:10], y = TestScores[,11], discrim=TRUE) alpha(TestScores[,1:10])
data(TestScores) str(TestScores) item.exam(TestScores[,1:10], y = TestScores[,11], discrim=TRUE) alpha(TestScores[,1:10])
Computes the marginal or total utility of a test.
MargUtil(Rxy, Sy, MXg, COST, Nselected) TotUtil(Rxy, Sy, MXg, COST, Nselected)
MargUtil(Rxy, Sy, MXg, COST, Nselected) TotUtil(Rxy, Sy, MXg, COST, Nselected)
Rxy |
Correlation of Test X with Criterion Y |
Sy |
Standard Deviation of Y in monetary units |
MXg |
Mean of selected group on test X in standard score units |
COST |
Total cost of testing |
Nselected |
number of applicants selected |
Marginal utility is the gain expected in the outcome (i.e., job performance), in monetary units, for a person from the predictor selected subgroup compared to a person who is randomly selected.
Total utility is the total gain in the outcome (i.e., job performance), in monetary units, expected for those selected using the test.
Marginal or Total Utility of a Test (a numeric value in monetary units)
Computation for marginal and total utility are:
MU <- Rxy*Sy*MXg - COST/Nselected
TU <- Nselected*Rxy*Sy*MXg - COST
The computation of Sy should be done locally (within an organization) and is often difficult.
Thomas D. Fletcher [email protected]
Cascio, W. F. & Aguinis, H. (2005). Applied Psychology in Human Resource Management (6th ed.) Englewood Cliffs, NJ: Prentice-Hall.
Murphy, K. R. & Davidshofer, C. O. (2005). Psychological testing: Principles and applications (5th ed.). Saddle River, NJ: Prentice Hall.
# Rxy = .35 # Each year 72 workers are hired # SD of performance in dollars is $4000 # 1 out of 10 applicants are selected # cost per test = $5 # average test score for those selected = 1.76 MargUtil(.35, 4000, 1.76, 720*5, 72) TotUtil (.35, 4000, 1.76, 720*5, 72)
# Rxy = .35 # Each year 72 workers are hired # SD of performance in dollars is $4000 # 1 out of 10 applicants are selected # cost per test = $5 # average test score for those selected = 1.76 MargUtil(.35, 4000, 1.76, 720*5, 72) TotUtil (.35, 4000, 1.76, 720*5, 72)
Since the presence of artifacts may inflate the observed variance in correlations, one needs to compute the variance attributed to the artifacts.
varAV(x)
varAV(x)
x |
A matrix or data.frame with columns Rxy, n and artifacts (Rxx, Ryy, u):
see |
varAV is computed as
varAV is used to compute the residual variance in correlations varResT
A numeric value representing the variance due to attenuating artifacts
Thomas D. Fletcher [email protected]
Arthur, Jr., W., Bennett, Jr., W., and Huffcutt, A. I. (2001) Conducting Meta-analysis using SAS. Mahwah, NJ: Erlbaum.
Hunter, J.E. and Schmidt, F.L. (2004). Methods of meta-analysis: Correcting error and bias in research findings (2nd ed.). Thousand Oaks: Sage Publications.
Hunter, J.E., Schmidt, F.L., and Jackson, G.B. (1982). Meta-analysis: Cumulating research findings across studies. Beverly Hills: Sage Publications.
# From Arthur et al data(ABHt32) varAV(ABHt32) # From Hunter et al data(HSJt35) varAV(HSJt35)
# From Arthur et al data(ABHt32) varAV(ABHt32) # From Hunter et al data(HSJt35) varAV(HSJt35)
Computes sampling error variance in correlations from a data object of the general format found in
EnterMeta
vare(x) aprox.vare(x) vare36(x)
vare(x) aprox.vare(x) vare36(x)
x |
A matrix or data.frame with columns Rxy and n: see |
vare
is the 'core' equation for estimating the sampling error variance. Presumably because
of the history of meta-analysis and lack of desktop computing power, hand-calculatons were needed.
Thus, two additional equations were developed. The aprox.vare
appears in many textbooks and is
used often (Arthur et al.). Another variation is presented by Hunter & Schmidt (2004)
as their equation 3.6 vare36
.
Sampling error variance (exact, approximate, or alternate aproximate)
The equations for each function are:
vare <-
aprox.vare <-
vare36 <- where k is number of studies and T is total sample size
These are only presented here for completeness. The recommended equation is vare
.
Thomas D. Fletcher [email protected]
Arthur, Jr., W., Bennett, Jr., W., and Huffcutt, A. I. (2001) Conducting Meta-analysis using SAS. Mahwah, NJ: Erlbaum.
Hunter, J.E. and Schmidt, F.L. (2004). Methods of meta-analysis: Correcting error and bias in research findings (2nd ed.). Thousand Oaks: Sage Publications.
Hunter, J.E., Schmidt, F.L., and Jackson, G.B. (1982). Meta-analysis: Cumulating research findings across studies. Beverly Hills: Sage Publications.
# From Arthur et al data(ABHt32) vare(ABHt32) aprox.vare(ABHt32) vare36(ABHt32) # From Hunter et al data(HSJt35) vare(HSJt35) aprox.vare(HSJt35) vare36(HSJt35)
# From Arthur et al data(ABHt32) vare(ABHt32) aprox.vare(ABHt32) vare36(ABHt32) # From Hunter et al data(HSJt35) vare(HSJt35) aprox.vare(HSJt35) vare36(HSJt35)
Computes the weighted variance in correlations from a data object of the general format found in
EnterMeta
varr(x)
varr(x)
x |
A matrix or data.frame with columns Rxy and n: see |
For a set of correlations for each study (i), varr is computed as:
where, Ni is the sample size of study i and ri
is the correlation in study i and rbar is the weighted mean correlation.
Sample weighted variance in correlations: uncorrected for artifacts other than sampling error
This is the variance in correlations across studies corrected for sampling error. It is also known as bare-bones meta-analysis.
Thomas D. Fletcher [email protected]
Arthur, Jr., W., Bennett, Jr., W., and Huffcutt, A. I. (2001) Conducting Meta-analysis using SAS. Mahwah, NJ: Erlbaum.
Hunter, J.E. and Schmidt, F.L. (2004). Methods of meta-analysis: Correcting error and bias in research findings (2nd ed.). Thousand Oaks: Sage Publications.
Hunter, J.E., Schmidt, F.L., and Jackson, G.B. (1982). Meta-analysis: Cumulating research findings across studies. Beverly Hills: Sage Publications.
# From Arthur et al data(ABHt32) varr(ABHt32) # From Hunter et al data(HSJt35) varr(HSJt35)
# From Arthur et al data(ABHt32) varr(ABHt32) # From Hunter et al data(HSJt35) varr(HSJt35)
Computes the estimate of the variance in the corrected correlation coefficient.
varRCA(x, aprox = FALSE)
varRCA(x, aprox = FALSE)
x |
A matrix or data.frame with columns Rxy, n and artifacts (Rxx, Ryy, u):
see |
aprox |
Logical test to determine if the approximate or exact var e is used |
Variance in Rho is computed as:
This is used to construct credibility intervals for rho CredIntRho
A numeric value representing the variance in the population correlation coefficient
Thomas D. Fletcher [email protected]
Arthur, Jr., W., Bennett, Jr., W., and Huffcutt, A. I. (2001) Conducting Meta-analysis using SAS. Mahwah, NJ: Erlbaum.
Hunter, J.E. and Schmidt, F.L. (2004). Methods of meta-analysis: Correcting error and bias in research findings (2nd ed.). Thousand Oaks: Sage Publications.
Hunter, J.E., Schmidt, F.L., and Jackson, G.B. (1982). Meta-analysis: Cumulating research findings across studies. Beverly Hills: Sage Publications.
rhoCA
, CAFAA
, varResT
, varRes
CredIntRho
# From Arthur et al data(ABHt32) varRCA(ABHt32) # From Hunter et al data(HSJt35) varRCA(HSJt35)
# From Arthur et al data(ABHt32) varRCA(ABHt32) # From Hunter et al data(HSJt35) varRCA(HSJt35)
Computes the residual variance in the sample-weighted correlation coefficient by removing variance due to sampling error.
varRes(x)
varRes(x)
x |
A matrix or data.frame with columns Rxy and n: see |
computed as varr
- vare
Useful in the construction of the SE for heterogenous populations SERHET
A numeric value representing the residual variance
Thomas D. Fletcher [email protected]
Arthur, Jr., W., Bennett, Jr., W., and Huffcutt, A. I. (2001) Conducting Meta-analysis using SAS. Mahwah, NJ: Erlbaum.
Hunter, J.E. and Schmidt, F.L. (2004). Methods of meta-analysis: Correcting error and bias in research findings (2nd ed.). Thousand Oaks: Sage Publications.
Hunter, J.E., Schmidt, F.L., and Jackson, G.B. (1982). Meta-analysis: Cumulating research findings across studies. Beverly Hills: Sage Publications.
# From Arthur et al data(ABHt32) varRes(ABHt32) # From Hunter et al data(HSJt35) varRes(HSJt35)
# From Arthur et al data(ABHt32) varRes(ABHt32) # From Hunter et al data(HSJt35) varRes(HSJt35)
Residual variance attributed to both the variance due to sampling error and artifacts.
varResT(x, aprox = FALSE)
varResT(x, aprox = FALSE)
x |
A matrix or data.frame with columns Rxy, n and artifacts (Rxx, Ryy, u):
see |
aprox |
Logical test to determine if the approximate or exact var e is used |
varResT
<- varr
- vare
- varAV
varResT is used in the compution of the variance in rho, varRCA
A numeric value representing the True residual variance
Thomas D. Fletcher [email protected]
Arthur, Jr., W., Bennett, Jr., W., and Huffcutt, A. I. (2001) Conducting Meta-analysis using SAS. Mahwah, NJ: Erlbaum.
Hunter, J.E. and Schmidt, F.L. (2004). Methods of meta-analysis: Correcting error and bias in research findings (2nd ed.). Thousand Oaks: Sage Publications.
Hunter, J.E., Schmidt, F.L., and Jackson, G.B. (1982). Meta-analysis: Cumulating research findings across studies. Beverly Hills: Sage Publications.
# From Arthur et al data(ABHt32) varResT(ABHt32) # From Hunter et al data(HSJt35) varResT(HSJt35)
# From Arthur et al data(ABHt32) varResT(ABHt32) # From Hunter et al data(HSJt35) varResT(HSJt35)
Converts a Fishers z' to Pearson correlation coefficient
z2r(x)
z2r(x)
x |
z' (Fishers z prime) |
r = (exp(2*z)-1)/exp(2*z)+1)
A Pearson Correlation coefficient
Thomas D. Fletcher [email protected]
Cohen, J., Cohen, P., West, S. G., & Aiken, L. S. (2003). Applied multiple regression/correlation analysis for the behavioral sciences (3rd ed.). Mahwah, NJ: Lawrence Erlbaum.
# From ch. 2 in Cohen et al (2003) zp <- r2z(.657) zp z2r(zp)
# From ch. 2 in Cohen et al (2003) zp <- r2z(.657) zp z2r(zp)