psych (version 1.3.12)

cor.wt: The sample size weighted correlation may be used in correlating aggregated data

Description

If using aggregated data, the correlation of the means does not reflect the sample size used for each mean. cov.wt in RCore does this and returns a covariance matrix or the correlation matrix. The cor.wt function weights by sample size or by standard errors and by default return correlations.

Usage

cor.wt(data,vars=NULL, w=NULL,sds=NULL, cor=TRUE)

Arguments

data
A matrix or data frame
vars
Variables to analyze
w
A set of weights (e.g., the sample sizes)
sds
Standard deviations of the samples (used if weighting by standard errors)
cor
Report correlations (the default) or covariances

Value

  • corThe weighted correlation
  • xwtThe data as weighted deviations from the weighted mean
  • wtThe weights used (calculated from the sample sizes).
  • meanThe weighted means
  • xcUnweighted, centered deviation scores from the weighted mean
  • xsDeviation scores weighted by the standard error of each sample mean

Details

A weighted correlation is just $r_{ij} = \frac{\sum(wt_{k} (x_{ik} - x_{jk})}{\sqrt{wt_{ik} \sum(x_{ik}^2) wt_jk \sum(x_{jk}^2)}}$ where $x_{ik}$ is a deviation from the weighted mean.

The weighted correlation is appropriate for correlating aggregated data, where individual data points might reflect the means of a number of observations. In this case, each point is weighted by its sample size (or alternatively, by the standard error). If the weights are all equal, the correlation is just a normal Pearson correlation.

Used when finding correlations of group means found using statsBy.

See Also

See Also as cov.wt, statsBy

Examples

Run this code
means.by.age <- statsBy(sat.act,"age")
wt.cors <- cor.wt(means.by.age)
lowerMat(wt.cors$r)  #show the weighted correlations
unwt <- lowerCor(means.by.age$mean)
mixed <- lowerUpper(unwt,wt.cors$r)  #combine both results
cor.plot(mixed,TRUE,main="weighted versus unweighted correlations")
diff <- lowerUpper(unwt,wt.cors$r,TRUE)
cor.plot(diff,TRUE,main="differences of weighted versus unweighted correlations")

Run the code above in your browser using DataCamp Workspace