Show the code
import pandas as pd
import numpy as np
# modelling
import statsmodels.formula.api as smf
from linearmodels.panel import PanelOLS
# visualisation
from matplotlib import style
from matplotlib import pyplot as pltJeremiah Iyamabo
December 9, 2025
| countryname | countrycode | year | elecrate_total | elecrate_urban | elecrate_rural | |
|---|---|---|---|---|---|---|
| 0 | Albania | ALB | 1970 | 100.0 | NaN | NaN |
| 1 | Algeria | DZA | 1966 | 33.7 | 74.0 | 11.8 |
| 2 | Algeria | DZA | 1969 | 40.0 | NaN | NaN |
| 3 | Algeria | DZA | 1977 | 45.8 | NaN | NaN |
| 4 | Algeria | DZA | 1981 | 59.0 | NaN | NaN |
Year range: 1949 - 2015
| Dep. Variable: | elecrate_total | R-squared: | 0.917 |
|---|---|---|---|
| Model: | OLS | Adj. R-squared: | 0.905 |
| Method: | Least Squares | F-statistic: | 74.48 |
| Date: | Sun, 26 Jul 2026 | Prob (F-statistic): | 0.00 |
| Time: | 23:19:27 | Log-Likelihood: | -3564.1 |
| No. Observations: | 961 | AIC: | 7378. |
| Df Residuals: | 836 | BIC: | 7987. |
| Df Model: | 124 | ||
| Covariance Type: | nonrobust |
| coef | std err | t | P>|t| | [0.025 | 0.975] | |
|---|---|---|---|---|---|---|
| Intercept | -2398.6158 | 59.113 | -40.577 | 0.000 | -2514.643 | -2282.589 |
| C(countryname)[T.Algeria] | -50.5717 | 11.001 | -4.597 | 0.000 | -72.165 | -28.978 |
| C(countryname)[T.Angola] | -125.3689 | 12.265 | -10.222 | 0.000 | -149.443 | -101.295 |
| C(countryname)[T.Argentina] | -41.1700 | 11.457 | -3.593 | 0.000 | -63.658 | -18.682 |
| C(countryname)[T.Bahamas, The] | -46.0363 | 11.621 | -3.961 | 0.000 | -68.846 | -23.227 |
| C(countryname)[T.Bahrain] | -22.3246 | 11.840 | -1.886 | 0.060 | -45.564 | 0.915 |
| C(countryname)[T.Bangladesh] | -108.1162 | 10.943 | -9.880 | 0.000 | -129.595 | -86.637 |
| C(countryname)[T.Barbados] | -38.4789 | 12.232 | -3.146 | 0.002 | -62.489 | -14.469 |
| C(countryname)[T.Belize] | -57.6622 | 11.044 | -5.221 | 0.000 | -79.340 | -35.985 |
| C(countryname)[T.Benin] | -121.5828 | 11.146 | -10.908 | 0.000 | -143.460 | -99.705 |
| C(countryname)[T.Bhutan] | -85.6307 | 11.640 | -7.357 | 0.000 | -108.477 | -62.784 |
| C(countryname)[T.Bolivia] | -69.7564 | 11.246 | -6.203 | 0.000 | -91.831 | -47.682 |
| C(countryname)[T.Bosnia and Herzegovina] | -42.1208 | 12.999 | -3.240 | 0.001 | -67.636 | -16.606 |
| C(countryname)[T.Botswana] | -111.5935 | 11.084 | -10.068 | 0.000 | -133.349 | -89.838 |
| C(countryname)[T.Brazil] | -46.3521 | 11.238 | -4.125 | 0.000 | -68.410 | -24.294 |
| C(countryname)[T.Brunei Darussalam] | -48.1004 | 11.281 | -4.264 | 0.000 | -70.242 | -25.958 |
| C(countryname)[T.Bulgaria] | -8.5137 | 11.595 | -0.734 | 0.463 | -31.273 | 14.245 |
| C(countryname)[T.Burkina Faso] | -131.0435 | 11.099 | -11.807 | 0.000 | -152.829 | -109.259 |
| C(countryname)[T.Burundi] | -141.1831 | 11.274 | -12.523 | 0.000 | -163.312 | -119.054 |
| C(countryname)[T.Cabo Verde] | -78.9596 | 11.201 | -7.049 | 0.000 | -100.946 | -56.973 |
| C(countryname)[T.Cambodia] | -123.0233 | 11.477 | -10.719 | 0.000 | -145.550 | -100.496 |
| C(countryname)[T.Cameroon] | -103.2672 | 11.016 | -9.375 | 0.000 | -124.889 | -81.646 |
| C(countryname)[T.Central African Republic] | -135.9839 | 11.476 | -11.849 | 0.000 | -158.509 | -113.458 |
| C(countryname)[T.Chad] | -136.2500 | 12.254 | -11.118 | 0.000 | -160.303 | -112.197 |
| C(countryname)[T.Chile] | -43.3558 | 11.048 | -3.924 | 0.000 | -65.041 | -21.671 |
| C(countryname)[T.China] | -46.0390 | 11.642 | -3.954 | 0.000 | -68.890 | -23.188 |
| C(countryname)[T.Colombia] | -50.5144 | 10.961 | -4.609 | 0.000 | -72.029 | -29.000 |
| C(countryname)[T.Comoros] | -101.3030 | 11.620 | -8.718 | 0.000 | -124.111 | -78.495 |
| C(countryname)[T.Congo, Dem. Rep.] | -133.4269 | 11.474 | -11.629 | 0.000 | -155.948 | -110.906 |
| C(countryname)[T.Congo, Rep.] | -112.1216 | 11.887 | -9.432 | 0.000 | -135.454 | -88.789 |
| C(countryname)[T.Costa Rica] | -40.1533 | 11.445 | -3.508 | 0.000 | -62.618 | -17.688 |
| C(countryname)[T.Cote d'Ivoire] | -85.6127 | 11.616 | -7.370 | 0.000 | -108.413 | -62.812 |
| C(countryname)[T.Croatia] | -39.8183 | 12.257 | -3.249 | 0.001 | -63.876 | -15.761 |
| C(countryname)[T.Cuba] | -39.8757 | 11.329 | -3.520 | 0.000 | -62.113 | -17.638 |
| C(countryname)[T.Cyprus] | -29.7467 | 12.225 | -2.433 | 0.015 | -53.741 | -5.752 |
| C(countryname)[T.Djibouti] | -89.8983 | 11.479 | -7.832 | 0.000 | -112.429 | -67.368 |
| C(countryname)[T.Dominican Republic] | -54.3809 | 10.958 | -4.963 | 0.000 | -75.889 | -32.873 |
| C(countryname)[T.Ecuador] | -51.3200 | 11.137 | -4.608 | 0.000 | -73.179 | -29.461 |
| C(countryname)[T.Egypt, Arab Rep.] | -43.4742 | 11.267 | -3.859 | 0.000 | -65.588 | -21.360 |
| C(countryname)[T.El Salvador] | -57.5116 | 10.938 | -5.258 | 0.000 | -78.981 | -36.042 |
| C(countryname)[T.Equatorial Guinea] | -99.9433 | 12.247 | -8.161 | 0.000 | -123.981 | -75.906 |
| C(countryname)[T.Eritrea] | -110.2428 | 12.260 | -8.992 | 0.000 | -134.306 | -86.179 |
| C(countryname)[T.Ethiopia] | -125.6026 | 11.351 | -11.066 | 0.000 | -147.882 | -103.323 |
| C(countryname)[T.Fiji] | -65.5133 | 11.863 | -5.522 | 0.000 | -88.798 | -42.228 |
| C(countryname)[T.Gabon] | -64.2100 | 13.007 | -4.936 | 0.000 | -89.741 | -38.679 |
| C(countryname)[T.Gambia, The] | -107.6383 | 11.863 | -9.073 | 0.000 | -130.923 | -84.353 |
| C(countryname)[T.Ghana] | -91.3692 | 10.970 | -8.329 | 0.000 | -112.901 | -69.837 |
| C(countryname)[T.Guatemala] | -69.6833 | 11.329 | -6.151 | 0.000 | -91.920 | -47.447 |
| C(countryname)[T.Guinea] | -118.4529 | 11.255 | -10.525 | 0.000 | -140.544 | -96.362 |
| C(countryname)[T.Guinea-Bissau] | -135.9623 | 11.637 | -11.684 | 0.000 | -158.804 | -113.121 |
| C(countryname)[T.Guyana] | -78.2540 | 11.611 | -6.740 | 0.000 | -101.044 | -55.464 |
| C(countryname)[T.Haiti] | -95.2811 | 12.231 | -7.790 | 0.000 | -119.288 | -71.274 |
| C(countryname)[T.Honduras] | -76.2756 | 11.232 | -6.791 | 0.000 | -98.322 | -54.229 |
| C(countryname)[T.India] | -79.1943 | 11.335 | -6.987 | 0.000 | -101.442 | -56.946 |
| C(countryname)[T.Indonesia] | -73.7408 | 10.760 | -6.853 | 0.000 | -94.861 | -52.620 |
| C(countryname)[T.Iran, Islamic Rep.] | -46.7397 | 11.120 | -4.203 | 0.000 | -68.566 | -24.913 |
| C(countryname)[T.Jamaica] | -58.9037 | 11.860 | -4.967 | 0.000 | -82.182 | -35.626 |
| C(countryname)[T.Jordan] | -48.8338 | 11.078 | -4.408 | 0.000 | -70.578 | -27.090 |
| C(countryname)[T.Kenya] | -123.3887 | 11.264 | -10.955 | 0.000 | -145.497 | -101.280 |
| C(countryname)[T.Kosovo] | -54.5383 | 15.023 | -3.630 | 0.000 | -84.026 | -25.051 |
| C(countryname)[T.Kuwait] | -29.9117 | 12.974 | -2.306 | 0.021 | -55.376 | -4.447 |
| C(countryname)[T.Lao PDR] | -100.0533 | 10.973 | -9.118 | 0.000 | -121.591 | -78.516 |
| C(countryname)[T.Lebanon] | -35.4292 | 11.862 | -2.987 | 0.003 | -58.712 | -12.146 |
| C(countryname)[T.Lesotho] | -127.9485 | 11.093 | -11.534 | 0.000 | -149.722 | -106.175 |
| C(countryname)[T.Liberia] | -145.9125 | 11.895 | -12.267 | 0.000 | -169.259 | -122.566 |
| C(countryname)[T.Libya] | -42.0922 | 11.464 | -3.672 | 0.000 | -64.594 | -19.590 |
| C(countryname)[T.Macedonia, FYR] | -41.5867 | 14.999 | -2.773 | 0.006 | -71.027 | -12.146 |
| C(countryname)[T.Madagascar] | -127.0576 | 11.199 | -11.345 | 0.000 | -149.040 | -105.075 |
| C(countryname)[T.Malawi] | -136.2317 | 11.358 | -11.994 | 0.000 | -158.526 | -113.937 |
| C(countryname)[T.Malaysia] | -50.0894 | 12.237 | -4.093 | 0.000 | -74.109 | -26.070 |
| C(countryname)[T.Maldives] | -51.7350 | 12.266 | -4.218 | 0.000 | -75.811 | -27.659 |
| C(countryname)[T.Mali] | -124.6379 | 11.269 | -11.061 | 0.000 | -146.756 | -102.520 |
| C(countryname)[T.Malta] | -38.0500 | 12.994 | -2.928 | 0.004 | -63.555 | -12.545 |
| C(countryname)[T.Mauritania] | -116.6370 | 11.195 | -10.418 | 0.000 | -138.611 | -94.663 |
| C(countryname)[T.Mauritius] | -36.0600 | 11.329 | -3.183 | 0.002 | -58.298 | -13.822 |
| C(countryname)[T.Mexico] | -42.9702 | 11.336 | -3.791 | 0.000 | -65.221 | -20.720 |
| C(countryname)[T.Mongolia] | -75.8267 | 11.634 | -6.518 | 0.000 | -98.661 | -52.992 |
| C(countryname)[T.Montenegro] | -45.3917 | 15.005 | -3.025 | 0.003 | -74.844 | -15.940 |
| C(countryname)[T.Morocco] | -76.3457 | 10.864 | -7.027 | 0.000 | -97.670 | -55.022 |
| C(countryname)[T.Mozambique] | -131.8247 | 11.103 | -11.873 | 0.000 | -153.618 | -110.031 |
| C(countryname)[T.Myanmar] | -117.3511 | 11.486 | -10.217 | 0.000 | -139.896 | -94.806 |
| C(countryname)[T.Namibia] | -106.9842 | 11.263 | -9.499 | 0.000 | -129.091 | -84.877 |
| C(countryname)[T.Nepal] | -107.1417 | 11.139 | -9.619 | 0.000 | -129.005 | -85.278 |
| C(countryname)[T.Nicaragua] | -67.9971 | 11.250 | -6.044 | 0.000 | -90.078 | -45.916 |
| C(countryname)[T.Niger] | -131.2767 | 11.265 | -11.654 | 0.000 | -153.387 | -109.166 |
| C(countryname)[T.Nigeria] | -108.4774 | 11.354 | -9.554 | 0.000 | -130.763 | -86.191 |
| C(countryname)[T.Oman] | -45.9850 | 12.257 | -3.752 | 0.000 | -70.042 | -21.928 |
| C(countryname)[T.Pakistan] | -71.2921 | 11.333 | -6.291 | 0.000 | -93.536 | -49.048 |
| C(countryname)[T.Panama] | -54.8387 | 11.610 | -4.723 | 0.000 | -77.627 | -32.050 |
| C(countryname)[T.Papua New Guinea] | -129.3900 | 12.264 | -10.551 | 0.000 | -153.461 | -105.319 |
| C(countryname)[T.Paraguay] | -61.3095 | 10.991 | -5.578 | 0.000 | -82.882 | -39.737 |
| C(countryname)[T.Peru] | -69.1489 | 11.242 | -6.151 | 0.000 | -91.214 | -47.084 |
| C(countryname)[T.Philippines] | -67.1223 | 11.070 | -6.064 | 0.000 | -88.850 | -45.395 |
| C(countryname)[T.Qatar] | -45.7417 | 13.005 | -3.517 | 0.000 | -71.268 | -20.215 |
| C(countryname)[T.Romania] | -40.0389 | 12.232 | -3.273 | 0.001 | -64.049 | -16.029 |
| C(countryname)[T.Rwanda] | -134.4587 | 11.145 | -12.065 | 0.000 | -156.334 | -112.584 |
| C(countryname)[T.Saudi Arabia] | -46.2358 | 11.471 | -4.031 | 0.000 | -68.751 | -23.721 |
| C(countryname)[T.Senegal] | -103.6448 | 10.858 | -9.545 | 0.000 | -124.957 | -82.333 |
| C(countryname)[T.Serbia] | -48.3966 | 12.274 | -3.943 | 0.000 | -72.488 | -24.306 |
| C(countryname)[T.Sierra Leone] | -137.4477 | 11.104 | -12.378 | 0.000 | -159.243 | -115.652 |
| C(countryname)[T.Singapore] | -34.5885 | 11.252 | -3.074 | 0.002 | -56.675 | -12.502 |
| C(countryname)[T.Solomon Islands] | -131.4461 | 12.264 | -10.718 | 0.000 | -155.519 | -107.373 |
| C(countryname)[T.Somalia] | -126.3794 | 12.264 | -10.305 | 0.000 | -150.452 | -102.307 |
| C(countryname)[T.South Africa] | -71.6881 | 10.877 | -6.591 | 0.000 | -93.037 | -50.339 |
| C(countryname)[T.South Sudan] | -147.0966 | 15.011 | -9.799 | 0.000 | -176.561 | -117.632 |
| C(countryname)[T.Sri Lanka] | -78.2000 | 10.910 | -7.168 | 0.000 | -99.614 | -56.786 |
| C(countryname)[T.Sudan] | -118.5900 | 11.470 | -10.340 | 0.000 | -141.103 | -96.077 |
| C(countryname)[T.Suriname] | -48.5419 | 11.333 | -4.283 | 0.000 | -70.786 | -26.297 |
| C(countryname)[T.Swaziland] | -109.1839 | 11.476 | -9.514 | 0.000 | -131.709 | -86.658 |
| C(countryname)[T.Syrian Arab Republic] | -39.2575 | 11.443 | -3.431 | 0.001 | -61.719 | -16.796 |
| C(countryname)[T.Tanzania] | -124.6715 | 10.907 | -11.430 | 0.000 | -146.080 | -103.262 |
| C(countryname)[T.Thailand] | -56.9004 | 11.167 | -5.095 | 0.000 | -78.819 | -34.981 |
| C(countryname)[T.Timor-Leste] | -117.7333 | 12.279 | -9.588 | 0.000 | -141.835 | -93.631 |
| C(countryname)[T.Togo] | -120.6872 | 11.034 | -10.938 | 0.000 | -142.345 | -99.029 |
| C(countryname)[T.Trinidad and Tobago] | -35.7048 | 11.232 | -3.179 | 0.002 | -57.751 | -13.658 |
| C(countryname)[T.Tunisia] | -54.6850 | 10.968 | -4.986 | 0.000 | -76.212 | -33.158 |
| C(countryname)[T.Uganda] | -133.6455 | 11.203 | -11.930 | 0.000 | -155.634 | -111.657 |
| C(countryname)[T.United Arab Emirates] | -51.9343 | 11.626 | -4.467 | 0.000 | -74.754 | -29.115 |
| C(countryname)[T.Uruguay] | -38.8906 | 11.250 | -3.457 | 0.001 | -60.972 | -16.809 |
| C(countryname)[T.Venezuela, RB] | -39.0836 | 11.320 | -3.453 | 0.001 | -61.303 | -16.864 |
| C(countryname)[T.Vietnam] | -73.4905 | 10.964 | -6.703 | 0.000 | -95.011 | -51.970 |
| C(countryname)[T.Yemen, Rep.] | -101.0340 | 11.621 | -8.694 | 0.000 | -123.844 | -78.223 |
| C(countryname)[T.Zambia] | -121.3685 | 11.195 | -10.841 | 0.000 | -143.343 | -99.394 |
| C(countryname)[T.Zimbabwe] | -101.7716 | 10.942 | -9.301 | 0.000 | -123.248 | -80.295 |
| year | 1.2683 | 0.030 | 42.963 | 0.000 | 1.210 | 1.326 |
Model 2 specifies country level fixed effects with robust/clustered standard errors.
@online{iyamabo2025,
author = {Iyamabo, Jeremiah},
title = {Model Comparison: {Aklin,} {Harish} \& {Urpelainen} (2018)},
date = {2025-12-09},
url = {https://jiyamabo.nl/posts/2025-12-09_aklin/},
langid = {en}
}