[R] Cronbach's alpha

Doran, Harold
2007-01-24T21:18:07Z

Hi Dave

We had a bit of an off list discussion on this. You're correct, it can
be negative IF the covariance among individual items is negative AND if
that covariance term is larger than the sum of the individual item
variances. Both of these conditions would be needed to make alpha go
negative.

Psychometrically speaking, this introduces some question as to whether
the items are measuring the same latent trait. That is, if there is a
negative covariance among items, but those items are thought to measure
a common trait, then (I'm scratching my head) I think we have a
dimensionality issue.



> -----Original Message-----
> From: r-help-bounces at stat.math.ethz.ch
> [mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Dave Atkins
> Sent: Wednesday, January 24, 2007 4:08 PM
> To: R-help at stat.math.ethz.ch
> Subject: Re: [R] Cronbach's alpha
>
>
> Harold & Weiwei--
>
> Actually, alpha *can* go negative, which means that items are
> reliably different as opposed to reliably similar.  This
> happens when the sum of the covariances among items is
> negative.  See the ATS site below for a more thorough explanation:
>
> http://www.ats.ucla.edu/STAT/SPSS/library/negalpha.htm
>
> Hope that helps.
>
> cheers, Dave
> --
> Dave Atkins, PhD
> Assistant Professor in Clinical Psychology Fuller Graduate
> School of Psychology
> Email: datkins at fuller.edu
> Phone: 626.584.5554
>
>
> 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
>  > PLEASE do read the posting guide
>  > http://www.R-project.org/posting-guide.html
>  > and provide commented, minimal, self-contained, reproducible code.
>  >
> --
> Dave Atkins, PhD
> Assistant Professor in Clinical Psychology
> Fuller Graduate School of Psychology
> Email: datkins at fuller.edu
> Phone: 626.584.5554