Description Usage Arguments Value Warning Note Author(s) References See Also Examples
hetcor
computes a heterogenous correlation matrix, consisting of Pearson product-moment
correlations between numeric variables, polyserial correlations between numeric
and ordinal variables, and polychoric correlations between ordinal variables.
The detectCores
function is imported from the parallel package and re-exported.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | hetcor(data, ..., ML = FALSE, std.err = TRUE,
use=c("complete.obs", "pairwise.complete.obs"),
bins=4, pd=TRUE, parallel=FALSE, ncores=detectCores(logical=FALSE))
## S3 method for class 'data.frame'
hetcor(data, ML = FALSE, std.err = TRUE,
use = c("complete.obs", "pairwise.complete.obs"),
bins=4, pd=TRUE, parallel=FALSE, ncores=detectCores(logical=FALSE), ...)
## Default S3 method:
hetcor(data, ..., ML = FALSE, std.err = TRUE,
use=c("complete.obs", "pairwise.complete.obs"),
bins=4, pd=TRUE, parallel=FALSE, ncores=detectCores(logical=FALSE))
## S3 method for class 'hetcor'
print(x, digits = max(3, getOption("digits") - 3), ...)
## S3 method for class 'hetcor'
as.matrix(x, ...)
detectCores(all.tests=FALSE, logical=TRUE)
|
data |
a data frame consisting of factors, ordered factors, logical variables, character variables, and/or numeric variables, or the first of several variables. |
... |
variables and/or arguments to be passed down. |
ML |
if |
std.err |
if |
bins |
number of bins to use for continuous variables in testing bivariate normality; the default is 4. |
pd |
if |
parallel |
if |
ncores |
the number of cores to use for parallel computations; the default is the number of physical cores detected. |
use |
if |
x |
an object of class |
digits |
number of significant digits. |
all.tests |
logical, apply all known tests; default is |
logical |
if |
hetcor
returns an object of class "hetcor"
with the following components:
correlations |
the correlation matrix. |
type |
the type of each correlation: |
std.errors |
the standard errors of the correlations, if requested. |
n |
the number (or numbers) of observations on which the correlations are based. |
tests |
p-values for tests of bivariate normality for each pair of variables. |
NA.method |
the method by which any missing data were handled: |
ML |
|
Be careful with character variables (as opposed to factors), the values of which are
ordered alphabetically. Thus, e.g., the values "disagree"
, "neutral"
,
"agree"
are ordered "agree"
, "disagree"
, "neutral"
.
Although the function reports standard errors for product-moment correlations, transformations (the most well known is Fisher's z-transformation) are available that make the approach to asymptotic normality much more rapid.
John Fox jfox@mcmaster.ca
Drasgow, F. (1986) Polychoric and polyserial correlations. Pp. 68-74 in S. Kotz and N. Johnson, eds., The Encyclopedia of Statistics, Volume 7. Wiley.
Olsson, U. (1979) Maximum likelihood estimation of the polychoric correlation coefficient. Psychometrika 44, 443-460.
Rodriguez, R.N. (1982) Correlation. Pp. 193-204 in S. Kotz and N. Johnson, eds., The Encyclopedia of Statistics, Volume 2. Wiley.
Ghosh, B.K. (1966) Asymptotic expansion for the moments of the distribution of correlation coefficient. Biometrika 53, 258-262.
Olkin, I., and Pratt, J.W. (1958) Unbiased estimation of certain correlation coefficients. Annals of Mathematical Statistics 29, 201-211.
polychor
, polyserial
, nearPD
,
detectCores
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | if(require(mvtnorm)){
set.seed(12345)
R <- matrix(0, 4, 4)
R[upper.tri(R)] <- runif(6)
diag(R) <- 1
R <- cov2cor(t(R) %*% R)
round(R, 4) # population correlations
data <- rmvnorm(1000, rep(0, 4), R)
round(cor(data), 4) # sample correlations
}
if(require(mvtnorm)){
x1 <- data[,1]
x2 <- data[,2]
y1 <- cut(data[,3], c(-Inf, .75, Inf))
y2 <- cut(data[,4], c(-Inf, -1, .5, 1.5, Inf))
data <- data.frame(x1, x2, y1, y2)
hetcor(data) # Pearson, polychoric, and polyserial correlations, 2-step est.
}
if(require(mvtnorm)){
hetcor(x1, x2, y1, y2, ML=TRUE) # Pearson, polychoric, polyserial correlations, ML est.
}
## Not run:
hc <- hetcor(data, ML=TRUE)
# parallel computation:
hc.m <- hetcor(data, ML=TRUE, parallel=TRUE,
ncores=min(2, detectCores()))
hc.m
all.equal(hc, hc.m)
# error handling:
data$y1[data$y2 == "(0.5,1.5]"] <- NA
hetcor(data)
## End(Not run)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.