[R] Tetrachoric correlation in R vs. stata
Gary Collins
collins.gs at gmail.com
Sun Jun 25 11:10:07 CEST 2006
looking at the help page/code in STATA for tetrachoric, it says it
estimates the tetrachoric correlation via the approximation suggested
by Edwards & Edwards (1984), "Approximating the tetrachoric
correlation", Biometrics, 40(2): 563.
that is,
(alpha (pi/4) - 1) / (alpha^(pi/4)+1), where alpha is ad/bc
i.e.
> alpha=(522 * 22)/(34 * 54)
> (alpha^(pi/4)-1) / (alpha^(pi/4)+1)
[1] 0.6168851
HTH
Gary
On 25/06/06, John Fox <jfox at mcmaster.ca> wrote:
> Dear Janet,
>
> A good thing to do when different software gives different answers is
> to check each against known results. I'm away from home, and don't have
> all of the examples that I used to check polychor(), but I dug up the
> following. The polychor() function produces output that agrees with
> both of these sources. How does Stata do?
>
> > # example from Drasgow (1988), pp. 69-74 in Kotz and Johnson,
> > # Encyclopedia of statistical sciences. Vol. 7.
> > tab
> [,1] [,2] [,3]
> [1,] 58 52 1
> [2,] 26 58 3
> [3,] 8 12 9
>
> > polychor(tab, std.err=TRUE)
>
> Polychoric Correlation, 2-step est. = 0.42 (0.07474)
> Test of bivariate normality: Chisquare = 11.55, df = 3, p = 0.009078
>
> > polychor(tab, ML=TRUE, std.err=TRUE)
>
> Polychoric Correlation, ML est. = 0.4191 (0.07616)
> Test of bivariate normality: Chisquare = 11.54, df = 3, p = 0.009157
>
> Row Thresholds
> Threshold Std.Err.
> 1 -0.02988 0.08299
> 2 1.13300 0.10630
>
>
> Column Thresholds
> Threshold Std.Err.
> 1 -0.2422 0.08361
> 2 1.5940 0.13720
>
> > tab # example from Brown (1977) Applied Statistics, 26:343-351.
> [,1] [,2]
> [1,] 1562 42
> [2,] 383 94
>
> > polychor(tab)
> [1] 0.595824
> >
>
> Regards,
> John
>
> On Fri, 23 Jun 2006 14:33:31 -0700
> Janet Rosenbaum <jrosenba at rand.org> wrote:
> > Peter --- Thanks for pointing out the omitted information. The
> > hazards
> > of attempting to be brief.
> >
> > In R, I am using polychor(vec1, vec2, std.err=T) and have used both
> > the
> > ML and 2 step estimates, which give virtually identical answers. I
> > am
> > explicitly using only the 632 complete cases in R to make sure
> > missing
> > data is handled the same way as in stata.
> >
> > Here's my data:
> >
> > 522 54
> > 34 22
> >
> > > polychor(v1, v2, std.err=T, ML=T)
> >
> > Polychoric Correlation, ML est. = 0.5172 (0.08048)
> > Test of bivariate normality: Chisquare = 8.063e-06, df = 0, p = NaN
> >
> > Row Thresholds
> > Threshold Std.Err.
> > 1 1.349 0.07042
> >
> >
> > Column Thresholds
> > Threshold Std.Err.
> > 1 1.174 0.06458
> > Warning message:
> > NaNs produced in: pchisq(q, df, lower.tail, log.p)
> >
> > In stata, I get:
> >
> > . tetrachoric t1_v19a ct1_ix17
> >
> > Tetrachoric correlations (N=632)
> >
> > ----------------------------------
> > Variable | t1_v19a ct1_ix17
> > -------------+--------------------
> > t1_v19a | 1
> > ct1_ix17 | .6169 1
> > ----------------------------------
> >
> > Thanks for your help.
> >
> > Janet
> >
> >
> >
> > Peter Dalgaard wrote:
> > > Janet Rosenbaum <jrosenba at rand.org> writes:
> > >
> > >> I hope someone here knows the answer to this since it will save me
> > from
> > >> delving deep into documentation.
> > >>
> > >> Based on 22 pairs of vectors, I have noticed that tetrachoric
> > >> correlation coefficients in stata are almost uniformly higher than
> > those
> > >> in R, sometimes dramatically so (TCC=.61 in stata, .51 in R; .51
> > in
> > >> stata, .39 in R). Stata's estimate is higher than R's in 20 out
> > of 22
> > >> computations, although the estimates always fall within the 95% CI
> > for
> > >> the TCC calculated by R.
> > >>
> > >> Do stata and R calculate TCC in dramatically different ways? Is
> > the
> > >> handling of missing data perhaps different? Any thoughts?
> > >>
> > >> Btw, I am sending this question only to the R-help list.
> > >
> > >
> > > A bit more information seems necessary:
> > >
> > > - tetrachoric correlations depend on 4 numbers, so you should be
> > able
> > > to give a direct example
> > >
> > > - you're not telling us how you calculate the TCC in R. This is not
> > > obvious (package polycor?).
> > >
> >
> >
> > --------------------
> >
> > This email message is for the sole use of the intended\ > ...{{dropped}}
>
> ______________________________________________
> 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
>
More information about the R-help
mailing list