Main Question

What is an appropriate measure of determination in genetic studies?

I used to think that $R^2$ was such a measure, but I'm no longer so sure. Specifically, it seems that $R^2$ undermeasures low determination and overmeasures high determination.

The reason for my doubt in $R^2$ comes from the following simulation.

Simple model

For simplicity, let us assume that a characteristic such as height (weight, Intelligence Quotient, Autism Quotient, etc.) of an individual is inherited from a mother and a father in the following fashion:

(fathersHeight * fathersInfluence + mothersHeight * (1 - fathersInfluence))/2,

where fathersInfluence is a constant between 0 and 1.

To give a specific example, if mother is 170 cm and father is 190 cm, and fathersInfluence is 0.5 then we know that their child will be exactly 180 cm.

Let us further assume that we can only measure the characteristic of any father and any son. We can not measure the characteristic of any mother.

Let us say that we'll try to predict son's height from father's height using good old linear regression, and report how much of son's height is determined from father's height. This can be done easily enough in python

_, _, r_value, _, _ = scipy.stats.linregress(fathers, sons)

Entire simulation can be wrapped up into the following python function:

def sonsHeight(sampleSize, fathersInfluence=0.5):
    # loc = mean
    # scale = standard deviation
    fathers = scipy.stats.norm.rvs(loc=170, scale=10, size=sampleSize)
    mothers = scipy.stats.norm.rvs(loc=170, scale=10, size=sampleSize)

    def weightedAvg(fathersHeight, mothersHeight):
        return (fathersHeight * fathersInfluence + mothersHeight * (1 - fathersInfluence))/2

    sons = [weightedAvg(father, mother) for father, mother in zip(fathers, mothers)]

    _, _, r_value, _, _ = scipy.stats.linregress(fathers, sons)
    return r_value ** 2

If we take fathersInfluence = 0.5 I would expect that any successful measure of determination would report that father's height determines son's height in 50%. $R^2$ passes this check, running the simulation with 1 million sons and fathers gives:

>>> size = 1000000
>>> print(sonsHeight(size, fathersInfluence=0.5))
>>> 0.500071151111

which seems reassuring. However, the values of $R^2$ for fathersInfluence any different than 0.5, seems to converge in probability to unexpected values. In fact running the experiment 101 times, for values of fathersInfluence from 0 to 1 in steps of 0.01 we get the following nice curve, which reassuringly passes close to $(0, 0)$ and $(1, 1)$, but surprisingly is not a straight line!

An S-shaped curve, with fathersInfluence on x-axis and R^2 on y-axis, going from (0,0) through (1/2) to (1,1)

It becomes more disturbing though when particular values of $R^2$ are looked at, especially for fathersInfluence close to 0 or close to 1 (all $R^2$ come from taking a sample of 1 million).

In particular, for small values of fathersInfluence, say

$0.01$, $0.02$, $0.03$

the values of $R^2$ look close to

$0.01^2$, $0.02^2$, $0.03^2$.

Even for fathersInfluence of $0.1$ the value of $R^2$ is scarcely above $1\%$!

fathersInfluence, R^2
0.01, 7.3243188318051775e-05
0.02, 0.00042435668897930067
0.03, 0.00097257546851807486
..., ...
0.1, 0.012287962714812851
..., ...
0.97, 0.99904501126494283
0.98, 0.9995837493389228
0.99, 0.99989808360606525


  1. Is there a measure of determination, which plotted against fathersInfluence would give me a nice straight line passing through $(0, 0)$, $(1/2, 1/2)$ and $(1, 1)$?
  2. Would such measure be desirable?
  3. What other measures of determination can be used, especially when the determination is low?


I realize that the presented model of how genetics works is probably too simplistic and perhaps not useful as stated. However, I believe it resembles a good model for genetics in several aspects:

  1. We have a thing that we can measure (e.g. gene expression level) and are observing as random noise important things we can't measure (environmental factors).
  2. The independent variable (gene expression level) may influence the dependent variable (height, IQ, etc) only slightly.

All the code used to run this simulation can be accessed on github.


1 Answer 1


fathersHeight * fathersInfluence + mothersHeight * (1 - fathersInfluence))/2

is a terrible model for genetics. It says that the genetic contributions of the two parents are exactly anti-correleated. In fact they are essentially independent. I think what you are looking for is the notion of heritability.

  • $\begingroup$ The model is not anti-correlated, becasue fathersInfluence is a real number in the interval $[0, 1]$ and each parent's trait is positively correlated with the offspring's trait. $\endgroup$ Nov 17, 2016 at 11:40
  • $\begingroup$ Your model says that the larger the fathers's influence, the smaller the mother's influence. Genetics only rarely works that way. You may be thinking some sort of dominance model for a single locus, but height is a complex trait involving many genes. If dad contributes a height enhancing version of gene A, and mom contributes a height enhancing version of gene B, the contributions of the two genes will typically be additive but independent of each other. I urge you to read the Wiki article I linked too to see the basics of a real genetic model. $\endgroup$ Nov 17, 2016 at 16:51
  • $\begingroup$ Thanks, I certainly will study heredity in some good detail. I perhaps haven't put across my point very clearly. mothersHeight is meant to be pretty much anything we can't measure (environmental factors, and other factors outside of our study). fathersHeight is the thing we can measure (expression level of a particular gene). fathersHeight is obviously going to have very small influence on the total outcome of the characteristic (most genes do in the end!), in the range of 1-2%. The point I'm raising is that R^2 will undermeasure this influence by a factor of ~ 100 for the 1% influence $\endgroup$ Nov 18, 2016 at 11:09
  • $\begingroup$ It is very possible (and expected!), and I will definitely check it, that heredity doesn't suffer from this problem. $\endgroup$ Nov 18, 2016 at 11:11

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .