# Obtain hazard ratio from other hazard ratios

Given a hazard ratio($$HR$$) as $$𝐻𝑅_{b}=ℎ𝑎𝑧𝑎𝑟𝑑(b)/ℎ𝑎𝑧𝑎𝑟𝑑(a)$$ and another hazard ratio as $$𝐻𝑅_{c}=ℎ𝑎𝑧𝑎𝑟𝑑(c)/ℎ𝑎𝑧𝑎𝑟𝑑(a)$$ How can we obtain the hazard ratio between $$b$$ and $$c$$ from $$HR_{b}$$ and $$HR_{c}$$ ?

Here $$hazard(a),hazard(b),hazard(c)$$ are hazards for three subgroups consisting of samples of a bigger data-set on which cluster analysis was applied to find the 3 subgroups(of samples). The model was decribed here before

• Write out the full models (you're probably conditioning on something, e.g. covariates) and sample characteristics/study design, e.g., are HRb and HRc estimated using the same dataset so that a single protocol is in place? – Frank Harrell Apr 6 '19 at 12:26
• If my answer(s) clarify your questions consider marking them as answered. – user213325 Apr 6 '19 at 12:37
• Using cluster analysis to find groups to test is almost always problematic. You either need to use the continuous distance from cluster centers for each observations, or directly analyze the measurements that went into the clustering and drop the clustering. – Frank Harrell Apr 9 '19 at 4:13
• I wasn't clear on whether you were clustering observations or clustering variables. It seems you are clustering observations, which is the more problematic situation. Clustering, at least the kind I'm familiar with, groups observations but within each cluster there is too much heterogeneity of the observations to consider them as a homogeneous group as you are doing. Continuous distances or non-clustering methods will fix this. (Imagine 2 clusters as touching circles; a subject at the edge of one may be more like obs. in the other cluster than in her own cluster.) – Frank Harrell Apr 9 '19 at 12:16
• I don't have a reference at my fingertips for the distance from cluster center, but it is motivated by the need to take into account heterogeneity within clusters, i.e., clusters don't have a radius of zero. For non-cluster methods see my RMS book and course notes. – Frank Harrell Apr 9 '19 at 19:03

You can do it with HR(c)/HR(b)

The great thing about R is that you can try it if you are not sure. Like this here:

# firstly, load some data
data(lung)

# creating some factor
# number of each cluster (I use 3 clusters)
nk <- nrow(lung)/3
# create some factor
lung$cluster <- factor(c(rep("cluster1", nk), rep("cluster2", nk), rep("cluster3", nk))) # fit models # Here reference level is cluster1 m1 <- coxph(Surv(time, status) ~ cluster, data=lung) # with cluster 2 as reference # change reference level to cluster2 lung$$cluster <- relevel(lung$$cluster, "cluster2") # fit a model with cluster2 as reference m2 <- coxph(Surv(time, status) ~ cluster, data=lung) # calculating hazard ratio for cluater2 vs. cluster3 from m1 exp(m1$$coefficients["clustercluster3"]) / exp(m1$$coefficients["clustercluster2"]) 0.8416011 # comparing it to the hazard ratio cluster2 vs. cluster3. from model fit exp(m2$coefficients["clustercluster3"])
0.8416011