Overview

Several of you reported that with a small number of populations the coalescence time of the 1-d stepping stone model was less than that of the island model. Since your simulations showed that pattern, I gave you full credit even though I thought the result might be a statistical artifact rather than real. But since it was several of you who saw the phenomenon, I decided to check further by significantly increasing the number of replications, which makes it much less likely that any differences would be a statisctical artifact. I also modified run_simulation() to report both the mean and the median time to coalescence to see if it made a difference which measure of central tendency we used.1

Results

NOTE: I store the result of run_simulation() in result not because I’m going to use it, but to suppress output of all of the individual simulation results. The table that is printed after each simulation provides the mean and median coalescence time for each model.

I set n_reps to 10,000 in the code that’s hidden. That’s 10 times greater than the default.

n_pops = 5

result <- run_simulation(n_pops = 5, m = 0.01, n_reps = n_reps)

result <- run_simulation(n_pops = 5, m = 0.1, n_reps = n_reps)

result <- run_simulation(n_pops = 5, m = 0.5, n_reps = n_reps)

n_pops = 10

result <- run_simulation(n_pops = 10, m = 0.01, n_reps = n_reps)

result <- run_simulation(n_pops = 10, m = 0.1, n_reps = n_reps)

result <- run_simulation(n_pops = 10, m = 0.5, n_reps = n_reps)

n_pops = 15

result <- run_simulation(n_pops = 15, m = 0.01, n_reps = n_reps)

result <- run_simulation(n_pops = 15, m = 0.1, n_reps = n_reps)

result <- run_simulation(n_pops = 15, m = 0.5, n_reps = n_reps)

n_pops = 20

result <- run_simulation(n_pops = 20, m = 0.01, n_reps = n_reps)

result <- run_simulation(n_pops = 20, m = 0.1, n_reps = n_reps)

result <- run_simulation(n_pops = 20, m = 0.5, n_reps = n_reps)


  1. NOTE: I used options in the R notebook that suppress display of the startup code. If you’re interested in seeing it, hit the Code button in the top right and download it.↩︎

LS0tCnRpdGxlOiAiTGFiIDcgLSBleHBsb3Jpbmcgc21hbGwgbnVtYmVycyBvZiBwb3B1bGF0aW9ucyIKb3V0cHV0OiAKICBodG1sX25vdGVib29rOgogICAgdG9jOiB5ZXMKICAgIHRvY19mbG9hdDogdHJ1ZQotLS0KCiMgT3ZlcnZpZXcKClNldmVyYWwgb2YgeW91IHJlcG9ydGVkIHRoYXQgd2l0aCBhIHNtYWxsIG51bWJlciBvZiBwb3B1bGF0aW9ucyB0aGUgY29hbGVzY2VuY2UgdGltZSBvZiB0aGUgMS1kIHN0ZXBwaW5nIHN0b25lIG1vZGVsIHdhcyBsZXNzIHRoYW4gdGhhdCBvZiB0aGUgaXNsYW5kIG1vZGVsLiBTaW5jZSB5b3VyIHNpbXVsYXRpb25zIHNob3dlZCB0aGF0IHBhdHRlcm4sIEkgZ2F2ZSB5b3UgZnVsbCBjcmVkaXQgZXZlbiB0aG91Z2ggSSB0aG91Z2h0IHRoZSByZXN1bHQgbWlnaHQgYmUgYSBzdGF0aXN0aWNhbCBhcnRpZmFjdCByYXRoZXIgdGhhbiByZWFsLiBCdXQgc2luY2UgaXQgd2FzIHNldmVyYWwgb2YgeW91IHdobyBzYXcgdGhlIHBoZW5vbWVub24sIEkgZGVjaWRlZCB0byBjaGVjayBmdXJ0aGVyIGJ5IHNpZ25pZmljYW50bHkgaW5jcmVhc2luZyB0aGUgbnVtYmVyIG9mIHJlcGxpY2F0aW9ucywgd2hpY2ggbWFrZXMgaXQgbXVjaCBsZXNzIGxpa2VseSB0aGF0IGFueSBkaWZmZXJlbmNlcyB3b3VsZCBiZSBhIHN0YXRpc2N0aWNhbCBhcnRpZmFjdC4gSSBhbHNvIG1vZGlmaWVkIGBydW5fc2ltdWxhdGlvbigpYCB0byByZXBvcnQgYm90aCB0aGUgbWVhbiBhbmQgdGhlIG1lZGlhbiB0aW1lIHRvIGNvYWxlc2NlbmNlIHRvIHNlZSBpZiBpdCBtYWRlIGEgZGlmZmVyZW5jZSB3aGljaCBtZWFzdXJlIG9mIGNlbnRyYWwgdGVuZGVuY3kgd2UgdXNlZC5eW05PVEU6IEkgdXNlZCBvcHRpb25zIGluIHRoZSBSIG5vdGVib29rIHRoYXQgc3VwcHJlc3MgZGlzcGxheSBvZiB0aGUgc3RhcnR1cCBjb2RlLiBJZiB5b3UncmUgaW50ZXJlc3RlZCBpbiBzZWVpbmcgaXQsIGhpdCB0aGUgYENvZGVgIGJ1dHRvbiBpbiB0aGUgdG9wIHJpZ2h0IGFuZCBkb3dubG9hZCBpdC5dIAoKIyBSZXN1bHRzCgpgYGB7ciwgbWVzc2FnZSA9IEZBTFNFLCBlY2hvID0gRkFMU0V9CmxpYnJhcnkoYXBlKQpsaWJyYXJ5KHBoeWNsdXN0KQpsaWJyYXJ5KGdncGxvdDIpCmxpYnJhcnkodGlkeXZlcnNlKQoKcm0obGlzdCA9IGxzKCkpCgojIyBOb3RlOiBzYW1wbGUgc2l6ZXMgc2hvdWxkIGJlIG11bHRpcGxpZWQgYnkgMiBiZWZvcmUgY2FsbGluZwojIyBpc2xhbmQgZm9yIGRpcGxvaWQgc2FtcGxlcwojIwppc2xhbmQgPC0gZnVuY3Rpb24oc2FtcGxlX3NpemVzLCBuZV9tKSB7CiAgb3B0X3N0cmluZyA8LSBwYXN0ZSgiLVQgLUkgIiwgbGVuZ3RoKHNhbXBsZV9zaXplcyksICIgIiwgc2VwID0gIiIpCiAgZm9yIChpIGluIDE6bGVuZ3RoKHNhbXBsZV9zaXplcykpIHsKICAgIG9wdF9zdHJpbmcgPC0gcGFzdGUob3B0X3N0cmluZywgc2FtcGxlX3NpemVzW2ldLCAiICIsIHNlcCA9ICIiKQogIH0KICBvcHRfc3RyaW5nIDwtIHBhc3RlKG9wdF9zdHJpbmcsIG5lX20sICJcbiIsIHNlcCA9ICIiKQogIG1zX291dCA8LSBtcyhuc2FtID0gc3VtKHNhbXBsZV9zaXplcyksIG5yZXBzID0gMSwgb3B0cyA9IG9wdF9zdHJpbmcpCiAgcmV0dXJuKG1zX291dCkgIAp9CgojIyBvbmUtZGltZW5zaW9uYWwgc3RlcHBpbmcgc3RvbmUKIyMKb25lX2Rfc3RlcHBpbmdfc3RvbmUgPC0gZnVuY3Rpb24obl9lLCBtLCBuX3BvcHMpIHsKICBzdG9waWZub3QoKG0gPiAwKSAmJiAobSA8IDEpKQogIG1fbWF0cml4IDwtIGRpYWcoMSAtIG0sIG5yb3cgPSBuX3BvcHMpCiAgbV9tYXRyaXhbMSwgMl0gPC0gbQogIG1fbWF0cml4W25fcG9wcywgbl9wb3BzIC0gMV0gPC0gbQogIGZvciAoaSBpbiAyOihuX3BvcHMgLSAxKSkgewogICAgbV9tYXRyaXhbaSwgaSAtIDFdIDwtIG0vMgogICAgbV9tYXRyaXhbaSwgaSArIDFdIDwtIG0vMgogIH0KICBvcHRfc3RyaW5nIDwtIHBhc3RlKCItVCAtSSAiLCBuX3BvcHMsICIgIiwgc2VwID0gIiIpCiAgZm9yIChpIGluIDE6bl9wb3BzKSB7CiAgICBvcHRfc3RyaW5nIDwtIHBhc3RlKG9wdF9zdHJpbmcsIDIqbl9lLCAiICIsIHNlcCA9ICIiKQogIH0KICBvcHRfc3RyaW5nIDwtIHBhc3RlKG9wdF9zdHJpbmcsICItbWEiLCBzZXAgPSAiIikKICAjIyB0cmFuc3Bvc2UgbV9tYXRyaXggYmVmb3JlIGNvbnZlcnRpbmcgdG8gdmVjdG9yIHRvIGdldCB2ZWN0b3IgZnJvbSBtYXRyaXgKICAjIyBieSByb3cgaW5zdGVhZCBvZiBieSBjb2x1bW4KICAjIwogIG1fdmVjdG9yIDwtIDQqbl9lKmModChtX21hdHJpeCkpCiAgZm9yICggaSBpbiAxOmxlbmd0aChtX3ZlY3RvcikpIHsKICAgIG9wdF9zdHJpbmcgPC0gcGFzdGUob3B0X3N0cmluZywgIiAiLCBtX3ZlY3RvcltpXSwgc2VwID0gIiIpCiAgfQogIG1zX291dCA8LSBtcyhuc2FtID0gMipuX2Uqbl9wb3BzLCBucmVwcyA9IDEsIG9wdHMgPSBvcHRfc3RyaW5nKQogIHJldHVybihtc19vdXQpCn0KCnJ1bl9zaW11bGF0aW9uIDwtIGZ1bmN0aW9uKG5fcG9wcywgbSwgbl9yZXBzID0gMTAwMCkgewogIE5fZSA9IDI1CiAgcG9wX3NpemVzIDwtIHJlcChOX2UsIG5fcG9wcykKICBkZiA8LSB0aWJibGUoTW9kZWwgPSBOQSwgVGltZSA9IE5BKQogIGZvciAoaSBpbiAxOm5fcmVwcykgewogICAgbXNfb3V0IDwtIGlzbGFuZChwb3Bfc2l6ZXMsIE5fZSptKQogICAgbXNfdHJlZSA8LSByZWFkLnRyZWUodGV4dCA9IG1zX291dCkKICAgIGRmIDwtIGFkZF9yb3coZGYsCiAgICAgICAgICAgICAgICAgIE1vZGVsID0gIklzbGFuZCIsCiAgICAgICAgICAgICAgICAgIFRpbWUgPSAoNCpOX2Uqbl9wb3BzKSpicmFuY2hpbmcudGltZXMobXNfdHJlZSlbMV0pCiAgICBtc19vdXQgPC0gb25lX2Rfc3RlcHBpbmdfc3RvbmUoTl9lLCBtLCBuX3BvcHMpCiAgICBtc190cmVlIDwtIHJlYWQudHJlZSh0ZXh0ID0gbXNfb3V0KQogICAgZGYgPC0gYWRkX3JvdyhkZiwKICAgICAgICAgICAgICAgICAgTW9kZWwgPSAiMS1kIiwKICAgICAgICAgICAgICAgICAgVGltZSA9ICg0Kk5fZSpuX3BvcHMpKmJyYW5jaGluZy50aW1lcyhtc190cmVlKVsxXSkKICB9CiAgZGYgPC0gZmlsdGVyKGRmLCAhaXMubmEoTW9kZWwpKQogIHAgPC0gZ2dwbG90KGRmLCBhZXMoeCA9IFRpbWUsIGZpbGwgPSBNb2RlbCkpICsKICAgIGdlb21faGlzdG9ncmFtKHBvc2l0aW9uID0gImlkZW50aXR5IiwgYmlucyA9IG5fcmVwcy8xMCwgYWxwaGEgPSAwLjQpICsKICAgIGdndGl0bGUocGFzdGUoIm5fcG9wcyA9ICIsIG5fcG9wcywgIiwgbSA9ICIsIG0pKSArCiAgICB0aGVtZV9idygpCiAgcHJpbnQocCkKICBzdW0gPC0gZGYgJT4lIGdyb3VwX2J5KE1vZGVsKSAlPiUKICAgIHN1bW1hcml6ZShNZWFuX1RpbWUgPSBtZWFuKFRpbWUpLAogICAgICAgICAgICAgIE1lZGlhbl9UaW1lID0gbWVkaWFuKFRpbWUpKQogIHByaW50KHN1bSkKICByZXR1cm4oZGYpCn0KCm5fcmVwcyA8LSAxMDAwMApgYGAKCk5PVEU6IEkgc3RvcmUgdGhlIHJlc3VsdCBvZiBgcnVuX3NpbXVsYXRpb24oKWAgaW4gcmVzdWx0IG5vdCBiZWNhdXNlIEknbSBnb2luZyB0byB1c2UgaXQsIGJ1dCB0byBzdXBwcmVzcyBvdXRwdXQgb2YgYWxsIG9mIHRoZSBpbmRpdmlkdWFsIHNpbXVsYXRpb24gcmVzdWx0cy4gVGhlIHRhYmxlIHRoYXQgaXMgcHJpbnRlZCBhZnRlciBlYWNoIHNpbXVsYXRpb24gcHJvdmlkZXMgdGhlIG1lYW4gYW5kIG1lZGlhbiBjb2FsZXNjZW5jZSB0aW1lIGZvciBlYWNoIG1vZGVsLgoKSSBzZXQgYG5fcmVwc2AgdG8gMTAsMDAwIGluIHRoZSBjb2RlIHRoYXQncyBoaWRkZW4uIFRoYXQncyAxMCB0aW1lcyBncmVhdGVyIHRoYW4gdGhlIGRlZmF1bHQuCgojIyBuX3BvcHMgPSA1CgpgYGB7cn0KcmVzdWx0IDwtIHJ1bl9zaW11bGF0aW9uKG5fcG9wcyA9IDUsIG0gPSAwLjAxLCBuX3JlcHMgPSBuX3JlcHMpCnJlc3VsdCA8LSBydW5fc2ltdWxhdGlvbihuX3BvcHMgPSA1LCBtID0gMC4xLCBuX3JlcHMgPSBuX3JlcHMpCnJlc3VsdCA8LSBydW5fc2ltdWxhdGlvbihuX3BvcHMgPSA1LCBtID0gMC41LCBuX3JlcHMgPSBuX3JlcHMpCmBgYAoKIyMgbl9wb3BzID0gMTAKCmBgYHtyfQpyZXN1bHQgPC0gcnVuX3NpbXVsYXRpb24obl9wb3BzID0gMTAsIG0gPSAwLjAxLCBuX3JlcHMgPSBuX3JlcHMpCnJlc3VsdCA8LSBydW5fc2ltdWxhdGlvbihuX3BvcHMgPSAxMCwgbSA9IDAuMSwgbl9yZXBzID0gbl9yZXBzKQpyZXN1bHQgPC0gcnVuX3NpbXVsYXRpb24obl9wb3BzID0gMTAsIG0gPSAwLjUsIG5fcmVwcyA9IG5fcmVwcykKYGBgCgojIyBuX3BvcHMgPSAxNQoKYGBge3J9CnJlc3VsdCA8LSBydW5fc2ltdWxhdGlvbihuX3BvcHMgPSAxNSwgbSA9IDAuMDEsIG5fcmVwcyA9IG5fcmVwcykKcmVzdWx0IDwtIHJ1bl9zaW11bGF0aW9uKG5fcG9wcyA9IDE1LCBtID0gMC4xLCBuX3JlcHMgPSBuX3JlcHMpCnJlc3VsdCA8LSBydW5fc2ltdWxhdGlvbihuX3BvcHMgPSAxNSwgbSA9IDAuNSwgbl9yZXBzID0gbl9yZXBzKQpgYGAKCiMjIG5fcG9wcyA9IDIwCgpgYGB7cn0KcmVzdWx0IDwtIHJ1bl9zaW11bGF0aW9uKG5fcG9wcyA9IDIwLCBtID0gMC4wMSwgbl9yZXBzID0gbl9yZXBzKQpyZXN1bHQgPC0gcnVuX3NpbXVsYXRpb24obl9wb3BzID0gMjAsIG0gPSAwLjEsIG5fcmVwcyA9IG5fcmVwcykKcmVzdWx0IDwtIHJ1bl9zaW11bGF0aW9uKG5fcG9wcyA9IDIwLCBtID0gMC41LCBuX3JlcHMgPSBuX3JlcHMpCmBgYA==