I have a sample where I have applied five (wildly differing) diagnostic definitions for the same disease. For example, 50% of people who are disease cases under diagnostic definition 1 are not disease cases under diagnostic definition 2, and 10% of people who meet definition 2 are not considered cases under definition 1. Definition 1 is currently the most widely-used "standard", all other definitions will be compared to definition 1.
I want to compare the correlation between two variables that are measured for each person (call them X and Y) and see if cor(X,Y) among people who are disease cases under definition 1 differs from cor(X,Y) among people who are disease cases under definition 2 (keeping in mind that some people meet both definitions and will be in both groups). There are several pairs of variables I want to do this with - depending on the specific variables, I may be using Pearson, Spearman, or tetrachoric correlations.
After restricting the sample to "people who meet at least one of the five diagnostic definitions" my sample size is approximately 80,000, and all diagnostic definitions produce at least 30,000 cases.
My first thought about how to approach this would be to use bootstrapping:
- Sample with replacement using the whole sample of "80,000 people who meet at least one diagnostic definition".
- For each of the five diagnostic definitions, calculate cor(X,Y) using observations in the bootstrap sample that qualified under that definition.
- Use a Fisher transformation on the resulting correlations so subtraction will be appropriate.
- For each of diagnostic definitions 2-5, subtract the correlation for that group from the correlation from the definition 1 cases. (Using the Fisher-transformed correlations from the current bootstrap iteration.)
- Repeat steps 1-4 thousands of times.
- Take
min(percent of differences > 0,percent of differences < 0)
, and multiply that number by 2 to get a two-tailed test of whether the difference between the correlations is not equal to 0.
Is this procedure appropriate? Will it do what I think it does (test for a difference in correlations while accounting for overlap between the two groups that produced the correlations)? Is there something else I should consider using instead?
cor(father,child)
tocor(mother,child)
. Whereas what I want to do is calculatecor(biomarker A,biomarker B)
with both measures coming from the same person, and compare these correlations across two different groups of people (with the groups having some people in common). $\endgroup$