Learning Python for Social Scientists (2015)
nealcaren.github.io
nealcaren.github.io
Even for methods such as linear and generalized linear regression, there's just a range of libraries and diagnostic capabilities in R that aren't present in Python libraries.
Granted, a lot of these statistical methods can be expressed in Stan or some other probabilistic programming engines that have interfaces in Python. However, when you are a social scientists and not a statistician there's a big difference between having a few functions you can call and expressing a likelihood function.
The other big advantage IMO is that it straddles the space between "traditional stats package" (SAS, Stata, SPSS, Minitab, etc.) and "programming language". We here know that it's more or less the latter, but the "batteries included" standard library with first-class support for a "data-frame" type makes it feel much like the former, especially if that's what you're already familiar with. It's a gradual transition from a stats package to general-purpose programming, and you don't have to jump through hoops, install third-party packages for basic stats work, or deal with ugly/counterintuitive syntax.
I find it amazing that Linear Regression in scikit-learn doesn't return standard errors/t-scores for the coefficients. (These can be useful for model selection, for example). I know about statsmodels and pysal, but the workflow with these is already slightly different.
It's less surprising when you see how some people work with these types of models in Python. They minimize the prediction errors, and if another method has lower error than Linear Regression they use that. There's very limited thinking around diagnosing why a model is not working or modeling at all.
As nerdponx pointed out, this is completely opposite to how social scientists or statisticians do modeling work for research. The goal is to support or provide evidence against a hypothesis that has a theoretical basis. You cannot do that by just focusing on minimizing prediction error.
Linear Regression in R vs Python is great example of how simple functionality like print(lm) and plot(lm) exposes the different ways of thinking about how to approach a problem. R's lm() provides strong diagnostic functionality out of the box with a few commands, which support people who are focused on diagnosing a model and making adjustments to how the model is defined, not just doing basic transforms (e.g. log) and adjusting hyperparamters to minimize prediction error.
Case in point! You don't typically need those for machine learning, so why bother with them in a machine learning toolkit/library?
R is not inferior to Python. Perhaps for general programming, but for stats and visualization, R is the gold standard.
Satellite images have been used in research in economics to estimate poverty and deforestation.