I am thinking about this interesting question which arises in the following realistic setting. For example, in one medical experiment one drug and one placebo are applied to two randomized groups of people with eye disease for sample size n respectively. Responses are the cure rates for some eye disease. But we know that two eyes of one person are correlated with each other. So during our traditional model we are required to take into account the correlation between two eyes in some categorical data analysis. Otherwise we can not consider two eyes of one person are independent and use simple two sample t-test based on independence assumption.

So my naive thinking is that if we could transform the correlated two random variables into independent ones, so we could just use simple two sample test. But could we do it without knowing the independence structure?? just for curious exploring.

thank you everyone for any suggestions.

  • $\begingroup$ Is it possible to treat only one eye in each person? Alternatively, you could estimate a GLM with random effects. Response is cure rate, treatment is a fixed effect, and person is a random effect. $\endgroup$
    – Eric Brady
    Commented Nov 21, 2014 at 15:44
  • $\begingroup$ @EricBrady, Yes Eric your idea is great we can treat one eye for consideration. I am thinking whether other method exists. thx $\endgroup$
    – lzstat
    Commented Nov 22, 2014 at 21:02
  • $\begingroup$ I think the 2 eyes are subsamples under this design, and the best approach is to average their response. $\endgroup$
    – katya
    Commented Nov 23, 2014 at 22:18
  • $\begingroup$ @katya ,thank you I will give it a try to see how it works comparing tradition methods under Mote Carlo simulations $\endgroup$
    – lzstat
    Commented Nov 25, 2014 at 0:00
  • $\begingroup$ Are both eyes treated, or are you treating one and using the other as a control? $\endgroup$
    – Glen_b
    Commented Nov 26, 2014 at 1:08

3 Answers 3


To expand on my comment, I think using each eye may be the best option (unless there are other non-statistical concerns at play). Blocking is used in experimental design when there are groups that have similar characteristics. In this case, your unit is each eye, and your "group" is each person. A special case, called matched pairs, is a design that can be used when there are two treatments and you can group together experimental units. In this case, you are effectively blocking over each patient, and grouping their eyes together. This should be more effective as you expect greater between patient variance than within patient variance.

Thus, assuming I am understanding cure rates right, your model would be something like:

$$ logit(eye_{ij}) = \mu + treat_i + block_j + e_{ij} \\ block_j \sim N(0, \sigma_B^2) \\ e_{ij} \sim N(0, \sigma_e^2) $$

And your error degrees of freedom is number of people - 1. This seems like the most effective design to me, because either way you are going to want to account for differences between individual patients.


Two ideas.

First, use Cholesky decomposition to create uncorrelated series from correlated as follows in MATLAB code:

>> rho=0.5

rho =


>> sig=[1 rho;rho 1]

sig =

    1.0000    0.5000
    0.5000    1.0000

>> r=mvnrnd([0 0],sig,10000);
>> corr(r)

ans =

    1.0000    0.4979
    0.4979    1.0000

>> sigp=chol(sig)

sigp =

    1.0000    0.5000
         0    0.8660

>> rp=r*inv(sigp);
>> corr(rp)

ans =

    1.0000   -0.0015
   -0.0015    1.0000

This example creates correlated multivariate Normal random series with $\rho=0.5$ correlation. This will work with any other series, I used Normal for convenience. This does NOT create independent series, but uncorrelated.

Note, that Cholesky is usually applied to the inverse problem, i.e. creating correlated series from uncorrelated in Monte Carlo simulation.

Second option, use PCA: as in the example with the same series created above in MATLAB:

>> [coeff,score]=pca(r);
>> coeff

coeff =

    0.7059    0.7083
    0.7083   -0.7059

>> corr(score)

ans =

    1.0000   -0.0000
   -0.0000    1.0000

This creates new variables (factors) from your variables. The factors are uncorrelated. I printed out the coefficients for a reference. You can see that the factors are approximately:$f_1=x_1+x_2$ and $f_2=x_1-x_2$.


I did appreciate the previous answer for simplicity, exposition and efficiency. Concerning the transformation into independent random variables, I cannot see up to now an other solution than trying to identify polynomial chaos expansion coefficients from two given independent variables, i.e. giving a parametric form of a transformation and fitting its parameters to mimic the data. See e.g. https://en.wikipedia.org/wiki/Polynomial_chaos , http://chaospy.readthedocs.io/en/master/regression.html


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.