I was intrigued by this New York Times article and its accompanying visualizations, and wanted to find out if I could get the raw data and work with it in the Wolfram Language. I found a description of the Martin-Quinn scores used in the article here, with raw data available here. Quoting short discription:
The “Martin-Quinn” scores are estimated for every justice serving from the October 1937 term to the present. Currently estimates are available through the October 2014 term.

The measures are estimated using a dynamic item response theory model, allowing judicial ideology to trend smoothly through time. The animated figure above demonstrates these dynamics. Since the scores are estimated from a probability model, they can be used to form other quantities of interest, such as locating the pivotal “median” justice, as all well the location of each case in the policy space.
From there, it was trivial to get the data:
scotusRaw = Import["http://mqscores.berkeley.edu/media/2014/justices.csv"];
In[131]:= scotusRaw[[;; 3]]
Out[131]= {{"term", "justice", "justiceName", "code", "post_mn",
"post_sd", "post_med", "post_025", "post_975"}, {2005, 112, "Alito",
"ALTO", 1.523, 0.369, 1.516, 0.818, 2.248}, {2006, 112, "Alito",
"ALTO", 1.536, 0.31, 1.524, 0.961, 2.172}}
And then to do some minor cleanup to produce a nice Dataset:
In[158]:= heads = scotusRaw[[1]]
Out[158]= {"term", "justice", "justiceName", "code", "post_mn", \
"post_sd", "post_med", "post_025", "post_975"}
In[134]:= scotusDate =
MapAt[DateObject[{#}] &, #, 1] & /@ scotusRaw[[2 ;;]]
scotusDS = Dataset[AssociationThread[heads -> #] & /@ scotusDate]
From there, I could easily roll up a TimeSeries object for each justice:
scotusTS =
TimeSeries /@
Values /@
GroupBy[scotusDS, "justiceName"][[All, All, {"term", "post_mn"}]]
And plot changes in Martin-Quinn scores over time for each justice:
DateListPlot[scotusTS]
Or just for the current court (plus Scalia):
DateListPlot[
scotusTS[{"Thomas", "Scalia", "Roberts", "Kennedy", "Ginsburg",
"Sotomayor", "Breyer", "Alito", "Kagan"}]]
And also get a different view of the distribution of scores by year:
scotusTerm =
GroupBy[scotusDS, "term"][All, All, "post_mn"] // KeySort
chart = BoxWhiskerChart[scotusTerm, "Outliers",
PlotTheme -> "Business"]
I’ll refrain from making any political observations here, but it’s an interesting dataset to explore. Feel free to grab my cleaned-up Dataset if you want to do some analysis and visualization of your own.
CloudObject["https://www.wolframcloud.com/objects/user-8a7d28b9-c01d-46b8-ba65-c3daa0ded865/SCOTUS-Martin-Quinn-Scores"]










