Question: Polygenic Risk Scores: Odds ratio or Beta-coefficient?
3
2.2 years ago by
Volka120
Volka120 wrote:

Hi all, I have recently started a project on modelling a polygenic risk score model to evaluate its utilitiy in predicting a certain disease. After doing some reading, I have come across various models for unweighted and weighted Genetic Risk Score models.

I am wondering about the use of odds ratio (OR) versus the Beta-coefficient of each SNP variant in a risk score model. For instance, here they used the Beta-coefficient in their model, while here they used the odds ratio. Is there any difference in using the odds ratio versus the Beta-coefficient in a risk score model? Also, I noticed that some papers use log(OR) rather than ln(OR), is there a major difference between both?

Thanks!

modified 7 months ago by Mike20 • written 2.2 years ago by Volka120
5
2.2 years ago by
Kevin Blighe67k
Republic of Ireland
Kevin Blighe67k wrote:

Hey,

The odds ratio (OR) is the exponent of the beta coefficient. The beta coefficient itself is the per unit increase/decrease in the exposure. A practical example will explain it better:

# create random data with a condition A + B ('outcome') and gene1 ('exposure')

``````modeling <- data.frame(
condition=factor(c(rep("A",100), rep("B",100)), levels=c("A", "B")),
gene1=c(runif(100), runif(100)))
condition     gene1
1         A 0.3607443
2         A 0.3268301
3         A 0.4237005
4         A 0.7621534
5         A 0.1456797
6         A 0.3201094
``````

Note that we have set `A` as the reference level.

# create a binomial logistic regression model, with gene1's expression 'predicting' the outcome

``````model <- glm(condition ~ gene1, data=modeling, family=binomial(link='logit'))
summary(model)

Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.03767    0.30014  -0.126    0.900
gene1        0.07294    0.51258   0.142    0.887
``````

Here, the beta coefficient for gene1 in relation to condition B versus A is 0.07294. So, gene1 increases in expression in condition B (if it decreased, the beta coefficient would be negative). This is not a statistically significant finding, though, with p=0.887.

We can also test the gene1 via the Wald test on the beta coefficient:

``````require(aod)
wald.test(b=coef(model), Sigma=vcov(model), Terms=2)
Wald test:
----------
Chi-squared test:
X2 = 0.02, df = 1, P(> X2) = 0.89
``````

# obtain the odds ratio and upper / lower confidence intervals (CIs):

``````exp(cbind(OR=coef(model), confint(model, level = 0.95)))
OR     2.5 %   97.5 %
(Intercept) 0.9630288 0.5333548 1.737047
gene1       1.0756700 0.3930383 2.949061
``````

So, odds ratio is just 1.1, which, as you can tell, is not huge and only reflects a slight increase.

# log OR

The log OR is just the natural logarithm of the OR. With regard to why we may even want to use log OR over OR, well, there are probably many reasons. One is that we can calculate the Z score from the log OR:

``````OR <- 1.0756700
lowerCI <- 0.3930383
upperCI <- 2.949061

logOR <- log(OR)
logORlowerCI <- log(lowerCI)
logORSE <- (logOR - logORlowerCI) / 1.96
``````

Then calculate Z:

``````logOR / logORSE
[1] 0.1420052
``````

Kevin

why can't lnOR be used for z-score?

``````?log
‘log’ computes logarithms, by default natural logarithms...
``````
2
7 months ago by
Mike20
University of Cincinnati
Mike20 wrote:

I'm a student and do research in this area and after a lot of reading, I'm pretty sure you want to use the log odds (Betas) as your weights for your model. The beta is the true weighting even though the OR is more often reported, I believe because it is easier for humans to understand. Also, a lot of the time people say Log(OR) they mean LN(OR). In this field, or generally in bioinformatics, it appears that LN is the default type of logarithmic transformation, so unless you see someone write Log10, they probably mean LN.

Hope this helps!

Mike