# [R] Cronbach's alpha

Doran, Harold HDoran at air.org
Wed Jan 24 19:33:30 CET 2007

```Weiwei

Something is wrong. Coefficient alpha is bounded between 0 and 1, so
negative values are outside the parameter space for a reliability
statistic. Recall that reliability is the ratio of "true score" variance
to "total score variance". That is

var(t)/ var(t) + var(e)

If all variance is true score variance, then var(e)=0 and the
reliability is var(t)/var(t)=1. On the other hand, if all variance is
measurement error, then var(t) = 0 and reliability is 0.

Here is a function I wrote to compute alpha along with an example. Maybe
try recomputing your statistic using this function and see if you get
the same result.

alpha <- function(columns){
k <- ncol(columns)
colVars <- apply(columns, 2, var)
total   <- var(apply(columns, 1, sum))
a <- (total - sum(colVars)) / total * (k/(k-1))
a
}

data(LSAT, package='ltm')
> alpha(LSAT)
[1] 0.2949972

Harold

> -----Original Message-----
> From: r-help-bounces at stat.math.ethz.ch
> [mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Weiwei Shi
> Sent: Wednesday, January 24, 2007 1:17 PM
> To: R R
> Subject: [R] Cronbach's alpha
>
> Dear Listers:
>
> I used cronbach{psy} to evaluate the internal consistency and
> some set of variables gave me alpha=-1.1003, while other,
> alpha=-0.2; alpha=0.89; and so on. I am interested in knowing
> how to interpret 1. negative value 2. negative value less than -1.
>
> I also want to re-mention my previous question about how to
> evaluate the consistency of a set of variables and about the
> total correlation (my 2 cent to answer the question). Is
> there any function in R to do that?
>
> Thank you very much!
>
>
>
> --
> Weiwei Shi, Ph.D
> Research Scientist
> GeneGO, Inc.
>
> "Did you always know?"
> "No, I did not. But I believed..."
> ---Matrix III
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help