-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPaper 2019.Rmd
1209 lines (1012 loc) · 90 KB
/
Paper 2019.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
---
title: |
| Campaign Contribution Limits and Corruption
| Evidence from the 50 states
author: "Mark C. Hand"
date: "01/06/2018"
output: pdf_document
header-includes:
- \usepackage{pdflscape}
- \newcommand{\blandscape}{\begin{landscape}}
- \newcommand{\elandscape}{\end{landscape}}
- \usepackage{setspace}
- \doublespacing
---
Since the 1970s, the U.S. Supreme Court has maintained that nearly all limits on political spending violate the first amendment’s protection of free speech. In its 1976 _Buckley v. Valeo_ decision, the Court laid out only two admissible justifications for limiting campaign donations: To prevent corruption or the appearance of corruption. But do campaign finance limits actually prevent corruption or its appearance? As current challenges to contribution limits wind their way through federal courts, the answer to this question will inform the Supreme Court’s decision to uphold or strike down remaining limits on political campaign contributions. Using state-level data from 1990-2012 on contribution limits, corruption convictions, and media mentions of corruption, this paper employs linear panel regression and first differences analyses to test whether campaign contribution limits are associated with lower levels of corruption convictions or media mentions of corruption. These methods find no relationship between the presence or level of campaign finance laws and quid pro quo corruption.[^SPSA]
[^SPSA]: Working paper presented at the Annual Meeting of the Southern Political Science Association, January 2019. Analysis available on [GitHub](https://github.com/markchand/Money-in-Politics).
```{r setup, include=FALSE}
# This is all necessary setup stuff, including packages and for Markdown
knitr::opts_chunk$set(echo = FALSE, eval=FALSE, cache = TRUE, message=FALSE, warning=FALSE)
library(haven) # import .dta
suppressMessages(library("tidyverse")) # everything
library(plm) # For linear panel regression
library(stargazer) # For regression outputs #fail
library(knitr) # Because Matt Worthington said so
library (MASS) # For binomial regression
library(pglm) # For panel + binomial
library(webshot) # For screenshots
# library(psych) # Also for summary statistics
# library(texreg) # For regression outputs #fail
# library(kableExtra) # For regression outputs
# library(broom) # Because Matt Worthington said so
# library(summarytools) # For summary statistics
```
```{r data import, eval=T, message=F, warning=F}
# Alt and Lassen's "Enforcement and Public Corruption: Evidence from US States"
# http://epstein.wustl.edu/research/LPE.Alt.pdf
AltLassen <- read_dta("data/Replication/AltLassenJLEO.dta")
# Michael Barber's "Ideological Donors, Contribution Limits, and the Polarization of American Legislatures"
# https://doi.org/10.1086/683453
Barber <- read_csv("~/Documents/GitHub/Money-in-Politics/data/Barber/Barber_Limits_Data.csv")
# Data from ICC
# www.greasethewheels.org/cci/
convictions <- read_csv("~/Documents/GitHub/Money-in-Politics/data/ICS/CCI19762015.csv")
reflections <- read_csv("~/Documents/GitHub/Money-in-Politics/data/ICS/CRI19772013.csv")
```
```{r panel data wrangling, eval=T}
# Combining Barber and ICS
corruption <- full_join(convictions, reflections)
corruption <- corruption %>%
rename("st"="State", "year"="Year")
corruption$st <- state.abb[match(corruption$st,state.name)]
BarberICC <- left_join(Barber, corruption)
BarberICC <- BarberICC %>%
mutate(
ind_limits_dummy = ifelse(ind_limits_2010==99999,0,1),
ind2pty_limits_dummy = ifelse(ind2pty_limits_2010==99999,0,1),
pac_limits_dummy = ifelse(pac_limits_2010==99999,0,1),
total_limits_dummy = ifelse(total_limits_2010==99999,0,1)
)
# Adding AltLassen
# table(AltLassen$state_name)
AltLassen$state_name[AltLassen$state_name=="Californ"] = "California"
AltLassen$state_name[AltLassen$state_name=="Connecti"] = "Connecticut"
AltLassen$state_name[AltLassen$state_name=="Louisian"] = "Louisiana"
AltLassen$state_name[AltLassen$state_name=="Massachu"] = "Massachusetts"
AltLassen$state_name[AltLassen$state_name=="Minnesot"] = "Minnesota"
AltLassen$state_name[AltLassen$state_name=="Mississi"] = "Mississippi"
AltLassen$state_name[AltLassen$state_name=="NewHamps"] = "New Hampshire"
AltLassen$state_name[AltLassen$state_name=="NewJerse"] = "New Jersey"
AltLassen$state_name[AltLassen$state_name=="NewMexic"] = "New Mexico"
AltLassen$state_name[AltLassen$state_name=="NewYork"] = "New York"
AltLassen$state_name[AltLassen$state_name=="NorthCar"] = "North Carolina"
AltLassen$state_name[AltLassen$state_name=="NorthDak"] = "North Dakota"
AltLassen$state_name[AltLassen$state_name=="Pennsylv"] = "Pennsylvania"
AltLassen$state_name[AltLassen$state_name=="RhodeIsl"] = "Rhode Island"
AltLassen$state_name[AltLassen$state_name=="SouthCar"] = "South Carolina"
AltLassen$state_name[AltLassen$state_name=="SouthDak"] = "South Dakota"
AltLassen$state_name[AltLassen$state_name=="Tennesse"] = "Tennessee"
AltLassen$state_name[AltLassen$state_name=="Washingt"] = "Washington"
AltLassen$state_name[AltLassen$state_name=="WestVirg"] = "West Virginia"
AltLassen$state_name[AltLassen$state_name=="Wisconsi"] = "Wisconsin"
AltLassen$state_name <- state.abb[match(AltLassen$state_name,state.name)]
AltLassen <- AltLassen %>%
rename("st"="state_name")
AltLassen$year <-as.integer(AltLassen$year)
AltBarber <- inner_join(BarberICC, AltLassen)
```
\newpage
##Introduction
In 1976, the Supreme Court ruled in _Buckley v. Valeo_ that political campaign expenditures are the equivalent of free speech, and therefore protected by the first amendment. At the same time, the Court laid out one mechanism and two permissible reasons for limiting campaign contributions that enable those expenditures. First, it argued that more money contributed does not amount to “more” speech, allowing for the use of campaign contribution dollar amount limits. Donating one dollar or $5,000 to a political campaign amounts to a speech act, the Court held, and so it is permissible to impose limits on the amount of contributions as long as contributions are not prevented. Second, having laid out this mechanism by which money in politics might be limited, the court laid out only two constitutionally permissible reasons for limiting contributions: To prevent corruption or the appearance thereof. As Kang (2012) argues, the holdings in _Buckley v. Valeo_ provided “the basic framework of contribution limits and disclosure requirements” for the following four decades. Since _Buckley v. Valeo_, Congress has passed only one campaign finance law, the Bipartisan Campaign Reform Act of 2002. Better know as McCain-Feingold, the bill took aim at unlimited “soft money” contributions to political parties and expanded the Federal Election Commission’s disclosure requirements to what it called “electioneering communications,” political ads not paid for by campaigns themselves.
Apart from McCain-Feingold, for forty years all changes in the landscape of campaign finance have come from the Supreme Court and appellate courts, which have worked to balance questions of corruption with those of free speech. In 1981, the Court struck down contribution limits related to ballot measures (_Citizens against Rent Control v. City of Berkeley-). Just before the passage of McCain-Feingold, the courts considered state-level limits, allowing low limits in Missouri (_Nixon v. Shrink Missouri_, 2000), though it would later finding Vermont's to be low enough that they had a meaningful impact on political speech (_Randall v. Sorrell_, 2006).
<!--Those rulings have often been driven by the question of corporations’ participation in the political process. In 1978, the Court extended free speech protections to corporations (First National Bank of Boston v. Bellotti).
Then in 1990, it upheld a ban on corporations using treasury funds to pay for issue advertisements, arguing for an extended definition of corruption, "the corrosive and distorting effects of immense aggregations of wealth that are accumulated with the help of the corporate form and that have little or no correlation to the public's support for the corporation's political ideas" (Austin v. Michigan State Chamber of Commerce, later overturned).
In 1986, it and struck down efforts to restrict their expenditures to FEC-registered Political Action Committees (FEC v. Massachusetts Right to Life).
-->
The passage of the McCain-Feingold in 2002 inspired a wave of challenges to campaign contributions and expenditures, driven mostly by conservative and religious political groups. In 2007, the Court examined the McCain-Feingold ban on airing issue advertisements close to election. Banning such ads, the Court argued, would have a chilling effect on free speech, and it struck down the ban ( _FEC v. Wisconsin Right to Life_). Then, in 2010, the Court issued what has become one of its most well-known rulings: In _Citizens United v. FEC_ (2010), it struck down limits on independent expenditures by outside groups, including corporations and unions. One critical aspect of _Citizens United_ is the establishment of the principle that, according to Justice Anthony Kennedy, “independent expenditures do not lead to, or create the appearance of, quid pro quo corruption.” The Court’s emphasis on quid pro quo corruption as the only justification for contribution limits extended the following year, as it struck down an Arizona effort to level the political playing field with matching state campaign funds (_Arizona Free Enterprise Club v. Bennett_, 2011).
Since 2011, the network of conservative legal groups behind Citizens United has continued to take aim at contribution limits as an unnecessary restriction of political speech, with a focus on individual contribution limits. The 1971 Federal Election Campaign Act placed a limit on the amount an individual could give to one campaign, in addition to two-year limits on the total amount an individual could give to political campaigns. In _McCutcheon v. FEC_ (2014) James Bopp, one of the attorneys behind the Citizens United challenge, convinced the Court of the unconstitutionality of total individual limits. Another case, _Holmes v. FEC_ (2017), targeted the distribution of individual campaign contribution across primary and general elections. In yet another, _Lair v. Mangan_ (2018), Bopp once again took aim at individual contribution limits, arguing that the state of Montana had not shown compelling evidence that campaign contribution limits decreased the risk of corruption.
The Ninth Circuit Court of Appeals upheld Montana’s campaign contribution limits, and the Fifth Circuit similarly upheld limits in Austin, TX (_Zimmerman v. City of Austin_, 2018). But further challenges to contribution limits are likely. Bopp said that he planned to appeal the Ninth Circuit’s ruling. Even if that fails, Bopp and other conservative groups plan to carry on. “I handle a lot of cases,” he said after the 2014 McCutcheon ruling, “and I‘m not done yet.” Supreme Court Justice Clarence Thomas laid the groundwork for future challenges in his commentary on the McCutcheon decision by arguing that more dollars did, in fact, equate to more speech. Once established, that principle supports the argument that campaign contribution dollar amount limits are a potentially unconstitutional restriction on speech (Hurley & Debenedetti 2014, Zall 2017).
##Prior Work
Since the Buckley v. Valeo decision, a wave of scholarship has taken advantage of the campaign contribution data collected by the Federal Election Commission to examine the causes and consequences of political campaign contributions, including whether contributions buy access (not to a meaningful degree, find Welch 1982 and Langbein 1986) and the effectiveness of contributions relative to lobbying efforts (yes, according to Wright 1990). Since the 2010 Citizens United and speechnow.org decisions, another arm of scholarship has examined the flows of money to groups engaging in independent expenditures (Spencer and Wood 2014, Werner and Coleman 2014).
But lobbying, money for access, and independent expenditures all fall outside of the narrow definition of quid pro corruption that the Supreme Court considers a compelling enough state interest to justify campaign contribution limits. The scholarly research on corruption thus narrowly defined is mixed and heated. Stratmann finds evidence that donations determined votes in at least one instance (1991); he also finds that the timing of political action committees (PAC) donations suggests that corporations believe those donations do affect legislators’ votes (1998). Reacting to the absence of evidence that donations lead to favorable final votes on bills, Hall and Wayman (1990) look for and find a positive relationship between political donations and the amount of attention that legislators give to a particular issue. Other scholars, however, are not so convinced. Wright finds that once lobbying efforts are factored in, the effects of contributions on voting outcomes washes out (1990). And it is notoriously difficult to tease out whether political donations change legislators’ minds or instead flow to legislators with established, friendly positions (Ansolabehere et al 2003).
As mentioned above, the Court is also interested in the appearance of corruption. On this score, results are more consonant: There seems to be little association between campaign spending and public trust in government (Primo 2002). Other factors, including media coverage of campaign finance law and the professionalization of legislatures, are more predictive of public perceptions of corruptions (Rosenson 2009). And while the public does seem to report viewing campaign finance as a contributor to corruption, there is not evidence that reform efforts will have an effect on those views (Persily & Lammie 2004).
One fundamental limitation of these federal level studies on campaign contributions and corruption is the absence of a counter-factual. Given that contribution limits have been in place since the 1970s, it is difficult to argue what might have happened in their absence. Recent work on campaign finance has attempted to address this problem by focusing on the effects of differences in campaign finance laws at the state level. Variation across states and over time allows room for studying the causes and consequences of campaign finance limits, separate from the question of corruption. Studies suggest that campaign finance limits are associated with less electoral competition (Gross et al 2002, Lott 2006), but that disclosure rules and some organizational limits are associated with greater levels of government trust (Primo and Milyo 2006) and may increase the return on campaign expenditures (Stratmann 2006). As mentioned, Michael Barber’s 2016 work finds that lower limits on PAC donations relative to individual donations are associated with higher polarization.
A largely separate body of work has examined the causes and consequences of corruption at the state level, separate from campaign finance. Most use the Department of Justice’s Annual Public Integrity Report, which correlate highly with state level perceptions of corruption (Walker and Calcagno 2011, Glaeser and Saks 2006, Liu & Mikesell 2014). Using that data, researchers have found evidence that political corruption leads to inflated state budgets and that the presence of casinos and subsequent corruption (Liu & Mikesell 2014, Walker & Calcagno 2013). They have also shown the absence of a link between state ethics commissions and reduced corruption (Crider and Milyo 2013).
In response to criticisms of corruption convictions as a proper measure of corruption, researchers have also developed alternative measures of state level corruption. Boylan and Long make use of surveys of state reporters (2003). Cordis and Milyo deploy the recently available Transactional Records Access Clearinghouse (TRAC) database of political corruption (2013). Dincer and Jonhston introduce a Corruption Reflections Index, which tracks mentions of corruption in Associated Press reports (2016).
Fewer scholars have begun connecting these bodies of work to examine the impact of state-level campaign finance regulations on measures of quid pro quo corruption--one of only two questions of import to the Supreme Court as it considers the constitutionality of contribution limits. The exception to this is a 2013 working paper by Cordis and Milyo, which campaign contribution limits have little effect on public perceptions of corruption. This paper seeks to address this gap in research, building on Cordis and Milyo's work putting state level campaign finance data in direct conversation with state level corruption data.
##Data and Design
In this paper, I build upon the growing body of state-level political science research to ask whether campaign contribution limits at the state level associated with lower levels of corruption. Given open debate about the proper measure of state-level corruption, I use two measures. The first, a Corruptions Convictions Index, is the traditional measure of state level corruption, built from Department of Justice convictions data. The second, the Corruptions Reflection Index, is a new measure put forward by Dincer and Johnston (2016). I combine these measures with a third data set from Michael Barber’s 2016 work on campaign contribution limits and political polarization; and a fourth data set from James Alt and David Dryer Lassen, to provide controls for the full model (Alt and Lassen 2012).
Barber’s data set is a panel of contribution limits from 1990-2012 for the lower house of every state legislature. Barber compiled this data set from the FEC, Westlaw, and the Nation Council of State Legislatures. Each dollar amount is inflation indexed to 2010 dollar amounts, and bi-annualized. There are three different types of limits in the Barber database: Individual contribution limits, individual-to-party limits, and PAC limits. Barber utilized individual and PAC contributions in his analysis of polarization, leaving out individual-to-party limits given that party contributions typically make up less than 10% of total political fundraising; I include it this analysis to determine whether parties, rather than PACs or individuals, might be the locus of corruption as measured by our other two data sets (Barber 2016).
```{r Barber summary, eval=T}
# This is a summary, but includes all the 99999s and doesn't have skew in it.
# stargazer(as.data.frame(subset(Barber[,3:6])), type="text", digits=0)
# This replaces all the 99999s.
BarberNAs <- Barber %>% dplyr::na_if(99999)
# These are (highly skewed) histograms of the remaining values
ind_limits_2010.plot <- ggplot(BarberNAs, aes(ind_limits_2010)) + geom_density() + theme_minimal()
ind2pty_limits_2010.plot <- ggplot(BarberNAs, aes(ind2pty_limits_2010)) + geom_density() + theme_minimal()
pac_limits_2010.plot <- ggplot(BarberNAs, aes(pac_limits_2010)) + geom_density() + theme_minimal()
# How about correlations? Unclear what this shows us.
# pairs(BarberNAs[3:6])
# An alternative, perhaps to combine if I can figure out how to print:
# psych::describe(subset(BarberNAs[,3:6]))
# This is a summary table for all the state-years where limits exist:
# stargazer(as.data.frame(subset(BarberNAs[,3:6])), type="text", digits=0, title="Descriptive Statistics (n=1150 state-years)", covariate.labels = c("Individual Limits","Individual-to-Party Limits","Party Limits", "PAC Limits"))
```
```{r Barber summary statistics latex, results="asis", eval=TRUE}
# This is what fails to knit (see error below)
stargazer(as.data.frame(subset(BarberNAs[,3:6])), digits=0, type="latex", title="Descriptive Statistics for State Level Campaign Finance Limits", covariate.labels = c("Individual Limits","Individual-to-Party Limits","Party Limits", "PAC Limits"), header=F,
notes = "Notes: 'N' equals number of state-years (out of n=1150) in which that type of limit is present")
```
The second data set comes from the Department of Justice’s “Report to Congress on the Activities and Operations of the Public Integrity Section” by way of the Institute for Corruption Studies.[^Koch] Since 1976, the FBI has tracked political corruption at the state level, and the Corruption Convictions Index (CCI) used here includes the number of corruption convictions in a year normalized by the population in each state. This measure of corruption is widely used in academic research, though not without criticism. Descriptive statistics for corruption convictions are included below.
The third data set is the Institute for Corruption Studies’ Corruption Reflections Index (CRI), put together by Dincer and Johnston for their 2016 article on state-level corruption, and which they create in response to the limitations of the Corruption Convictions. The Corruption Reflections Index represents the fraction of Associated Press stories about politics in a particular state that mention political corruption (Dincer and Johnston 2016).
```{r CRI summary latex, results="asis", eval=T}
stargazer(as.data.frame(subset(corruption[,c(3,6)])), type="latex", digits=2, title="Descriptive Statistics for Corruption and Reflections", covariate.labels = c("Corruption Convictions Index (CCI)","Corruption Reflections Index (CRI)"), header=F)
# Next: How to demonstrate skew? # Test whether these are correlated?
# ggplot(BarberICC, aes(CCI,CRI)) + geom_point() + theme_minimal() + geom_abline()
```
The fourth data set provides controls for the panel model. In their 2012 work examining variation in prosecutorial resources, Alt and Lassen follow Glaeser and Saks (2006) in controlling for income and education levels, size of government, legislature control, and urbanization (see Appendix X). Alt and Lassen's data set runs from 1976-2004. When included in the second and third models, this limits the analysis to the years from 1990-2004 and n=720.
This analysis has its limitations, beginning with the data sets themselves. Barber’s state campaign contributions data lacks information about upper houses of state legislatures, which are included in both the CCI and CRI. The Corruption Convictions Index suffers from a number of issues, as outlined by Dincer and Johnston in their introduction to the Corruption Reflections Index. They argue that the CCI includes only federal data; that the resources available to prosecutors varies from state to state; that US Attorneys are political appointees; and that the measure records only convictions, which is at best a reflection of underlying corruption.
The Corruption Reflections Index, too, has its flaws: It relies on a single news source, the Associated Press. Similar to federal prosecutors’ offices, the resources available to each AP office vary. It also demonstrates high variation in the data; Utah, for example, has a mean CRI score of 0.46 and standard deviation of 0.38, in a data set with an overall mean of 0.28 and standard deviation of 0.19. The Corruption Reflections Index also seems to assume in its name that media reports of corruption are a mere reflection of corruption, rather than an endogenous variable in the ecosystem that enables corrupt behavior. Previous work, in contrast, has argued that media have a clear bias and play an important role in shaping public perceptions of corruption, rather than just reflecting it (Sorauf 1987; Ansolabehere, Snowberg and Snyder 2005).
Most broadly, this analysis does not directly address the “appearance of corruption,” the second of the Supreme Court’s reasons for allowing campaign contribution limits; to do so effectively would require time series, state-level data specifically about quid pro quo corruption. It is also the case that this analysis looks to the states intentionally in order to address the issue of the counter-factual inherent in looking at federal data, it may not be the case that statewide results are generalizable to, or distinct from, what is occurring at the federal level. Third, it is also the case that campaign finance laws may not be equally enforced across states, even though the enforcement measures used here are from federal rather than state authorities. Finally, the period in question (1990-2004) is short enough that there may be some factor that influences corruption arrest across a meaningful portion of the data set.
[^Koch]: N.B. According to one of the researchers’ [curricula vitae](https://about.illinoisstate.edu/odincer/Documents/CVDincerApril2016.docx), the Institute for Corruption Studies is funded in part by a grant from the Charles Koch Research Foundation. Organizations funded by Charles and David Koch are also funders of legal groups driving legal battles mentioned in the introduction, according to a [report](https://www.publicintegrity.org/2017/11/15/21279/kochs-key-among-small-group-quietly-funding-legal-assault-campaign-finance) by the Center for Public Integrity.
## Methods
### Model I: Panel Regression
Having constructed a full 1990-2012 panel data set from these three data sets, I then run a set of time series regressions testing the relationship between contribution limits and both dependent variables, the Corruption Convictions Index and the Corruption Reflections Index.
I include three predictor variables in both sets of models: Individual contribution limits, individual-to-party contribution limits, and PAC contribution limits. For each of these independent variables, I construct two variables for use in the model. The first is a dummy variable indicating whether there are contribution limits in that state in that year, coded as “0” if there are no limits and “1” if there are. The second is a continuous variable indicating the dollar amount of the limit in the state in that year. By interacting these two variables, I test two separate associations. The dummy variable tests whether there is a difference in the CCI and CRI in states with limits versus states without limits. The continuous variable tests whether higher or lower limits are associated with higher or lower CCI and CRI scores, within the group of states that have limits in a given year. After performing this transformation on all three independent variables, I test two initial sets of models: (1) Corruption Convictions Index versus campaign contribution limits in a given state-year, and (2) Corruption Reflections Index versus campaign contributions in a given state-year. These basic models are included in Appendix X.
I build a model of political corruption using control variables previously demonstrated by Alt and Lassen to be correlated with corruption convictions, resulting in a data set covering 1990-2004, the period of overlap among the data sets listed above. These include controlling for the size and education levels of the population, the ideology of a population, income levels and inequality, education levels, the number and relative income of government employees, and urbanization. Building a model of corruption that includes variables previously demonstrated to be correlated with corruption levels, then adding in campaign finance data, I can better identify the association of campaign finance laws with corruption levels. For each of these models, I test fixed state and year effects and random effects. The models are as follows:
#### Corruption Convictions Index versus campaign contribution limits in a given state-year:
$Convictions = \alpha_{state} + \beta_{1}{indiv.dummy} + \beta_{2}{indiv.dummy}*{indiv.limit} + \beta_{3}{pac.dummy} + \beta_{4}{pac.dummy}*{pac.limit} + \beta_{5}{indiv-to-party.dummy} + \beta_{6}{indiv-to-party.dummy}*{indiv-to-party.limit} + Controls + \epsilon$
#### Corruption Reflections Index versus campaign contributions in a given state-year:
$Reflections = \alpha_{state} + \beta_{1}{indiv.dummy} + \beta_{2}{indiv.dummy}*{indiv.limit} + \beta_{3}{pac.dummy} + \beta_{4}{pac.dummy}*{pac.limit} + \beta_{5}{indiv-to-party.dummy} + \beta_{6}{indiv-to-party.dummy}*{indiv-to-party.limit} + Controls + \epsilon$
```{r modeling of initial correlations (with fixed effects), eval=T}
## CCI
# Individual limits and corruption
CCIreg1 <- plm(CCI ~ ind_limits_2010*ind_limits_dummy,data = BarberICC, index = c("st","year"), effect="twoways")
# No signifigance
# Individual-to-party limits and corruption
CCIreg2 <- plm(CCI ~ ind2pty_limits_2010*ind2pty_limits_dummy,data = BarberICC, index = c("st","year"), effect="twoways")
# No Signifigance
# PAC Limits and corruption
CCIreg3 <- plm(CCI ~ pac_limits_2010*pac_limits_dummy,data = BarberICC, index = c("st","year"), effect="twoways")
# No Signifigance
# Total Limits and corruption
CCIreg4 <- plm(CCI ~ total_limits_2010*total_limits_dummy,data = BarberICC, index = c("st","year"), effect="twoways")
# One star. Hmm...
# Everybody?
CCIreg5 <- plm(CCI ~ ind_limits_2010*ind_limits_dummy + ind2pty_limits_2010*ind2pty_limits_dummy + pac_limits_2010*pac_limits_dummy, data = BarberICC, index = c("st","year"), effect="twoways")
## CRI
CRIreg1 <- plm(CRI ~ ind_limits_2010*ind_limits_dummy,data = BarberICC, index = c("st","year"), effect="twoways")
# No signifigance
# Individual-to-party limits and reflection
CRIreg2 <- plm(CRI ~ ind2pty_limits_2010*ind2pty_limits_dummy,data = BarberICC, index = c("st","year"), effect="twoways")
# One star. Hmm...
# PAC Limits and reflection
CRIreg3 <- plm(CRI ~ pac_limits_2010*pac_limits_dummy,data = BarberICC, index = c("st","year"), effect="twoways")
# No Signifigance
# All Limits and reflection
CRIreg4 <- plm(CRI ~ total_limits_2010*total_limits_dummy,data = BarberICC, index = c("st","year"), effect="twoways")
# No Signifigance
# Everybody?
CRIreg5 <- plm(CRI ~ ind_limits_2010*ind_limits_dummy + ind2pty_limits_2010*ind2pty_limits_dummy + pac_limits_2010*pac_limits_dummy, data = BarberICC, index = c("st","year"), effect="twoways")
```
```{r output of initial correlations (with fixed effects), include=F}
stargazer(CCIreg1, CCIreg2, CCIreg3, CCIreg5,CRIreg1, CRIreg2, CRIreg3, CRIreg5,
type="text",
title = "Appendix A: Are campaign limits correlated with corruption convictions or reflections?",
out="collateral/AppendixA.htm",
dep.var.labels = c("Corruption Convictions Index","Corruption Reflections Index"),
covariate.labels=c("Individual limit amounts", "Individual limits (dummy)","Individual-to-party limit amount","Individual-to-party limits (dummy)","PAC limit amounts","PAC limits (dummy)"),
add.lines = list(c("Effects","Two-Way","Two-Way","Two-Way","Two-Way","Two-Way","Two-Way","Two-Way","Two-Way"))
)
```
```{r modeling of CCI base model effects, eval=T}
# Base model with no Two-Way or random effects
cci.base.pooled <- plm(CCI ~ jdiv # Divided government
+ bindingonetermlimit # Binding one-term limit
+ bindingtwotermlimit # Binding two-term limit
+ rpcinc_annual_new # Real per capita income ($1000)
+ eopop # AUSAs per million population
+ unemp # Unemployment
+ citi6006 # Citizen ideology measure
+ high_school + # Percent high school graduates
+ rgenrevpc # Real per capita gov revenues ($1000)
+ men_ineqincwag # Inequality: Male wages
+ grelimp # Relative government wages
+ urbanization_2 # Urbanization
+ logpop, # Log of population (millions)
data = AltBarber,
model="pooling")
# Base model with fixed effects (NB: effect="individual" is redundant here)
cci.base.fixed <- plm(CCI ~ jdiv # Divided government
+ bindingonetermlimit # Binding one-term limit
+ bindingtwotermlimit # Binding two-term limit
+ rpcinc_annual_new # Real per capita income ($1000)
+ eopop # AUSAs per million population
+ unemp # Unemployment
+ citi6006 # Citizen ideology measure
+ high_school + # Percent high school graduates
+ rgenrevpc # Real per capita gov revenues ($1000)
+ men_ineqincwag # Inequality: Male wages
+ grelimp # Relative government wages
+ urbanization_2 # Urbanization
+ logpop, # Log of population (millions)
data = AltBarber,
model="within")
# Base model with random effects
cci.base.random <- plm(CCI ~ jdiv # Divided government
+ bindingonetermlimit # Binding one-term limit
+ bindingtwotermlimit # Binding two-term limit
+ rpcinc_annual_new # Real per capita income ($1000)
+ eopop # AUSAs per million population
+ unemp # Unemployment
+ citi6006 # Citizen ideology measure
+ high_school + # Percent high school graduates
+ rgenrevpc # Real per capita gov revenues ($1000)
+ men_ineqincwag # Inequality: Male wages
+ grelimp # Relative government wages
+ urbanization_2 # Urbanization
+ logpop, # Log of population (millions)
data = AltBarber,
model="random")
#Base model with fixed effects and time fixed effects
cci.base.fixed.time <- plm(CCI ~ jdiv # Divided government
+ bindingonetermlimit # Binding one-term limit
+ bindingtwotermlimit # Binding two-term limit
+ rpcinc_annual_new # Real per capita income ($1000)
+ eopop # AUSAs per million population
+ unemp # Unemployment
+ citi6006 # Citizen ideology measure
+ high_school + # Percent high school graduates
+ rgenrevpc # Real per capita gov revenues ($1000)
+ men_ineqincwag # Inequality: Male wages
+ grelimp # Relative government wages
+ urbanization_2 # Urbanization
+ logpop, # Log of population (millions)
data = AltBarber,
model="within",
effect = "twoways")
# Base model with random effects doesn't work:
# Error in solve.default(crossprod(ZBmu)) :
# system is computationally singular: reciprocal condition number = 1.96767e-18
```
```{r Hausman for CCI base model, eval=F}
phtest(cci.base.pooled, cci.base.fixed, cci.base.random, cci.base.fixed.time)
```
```{r output of CCI base model effects}
stargazer(cci.base.pooled,
cci.base.fixed,
cci.base.random,
cci.base.fixed.time,
type="text",
add.lines = list(c("Effects", "Pooled", "Fixed", "Random", "Two-Way"))
)
```
```{r modeling of CRI base model effects, eval=T}
# Base model with no fixed or random effects
cri.base.pooled <- plm(CRI ~ jdiv # Divided government
+ bindingonetermlimit # Binding one-term limit
+ bindingtwotermlimit # Binding two-term limit
+ rpcinc_annual_new # Real per capita income ($1000)
+ eopop # AUSAs per million population
+ unemp # Unemployment
+ citi6006 # Citizen ideology measure
+ high_school + # Percent high school graduates
+ rgenrevpc # Real per capita gov revenues ($1000)
+ men_ineqincwag # Inequality: Male wages
+ grelimp # Relative government wages
+ urbanization_2 # Urbanization
+ logpop, # Log of population (millions)
data = AltBarber,
model="pooling")
# Base model with fixed effects (NB: effect="individual" is redundant here)
cri.base.fixed <- plm(CRI ~ jdiv # Divided government
+ bindingonetermlimit # Binding one-term limit
+ bindingtwotermlimit # Binding two-term limit
+ rpcinc_annual_new # Real per capita income ($1000)
+ eopop # AUSAs per million population
+ unemp # Unemployment
+ citi6006 # Citizen ideology measure
+ high_school + # Percent high school graduates
+ rgenrevpc # Real per capita gov revenues ($1000)
+ men_ineqincwag # Inequality: Male wages
+ grelimp # Relative government wages
+ urbanization_2 # Urbanization
+ logpop, # Log of population (millions)
data = AltBarber,
model="within")
# Base model with random effects
cri.base.random <- plm(CRI ~ jdiv # Divided government
+ bindingonetermlimit # Binding one-term limit
+ bindingtwotermlimit # Binding two-term limit
+ rpcinc_annual_new # Real per capita income ($1000)
+ eopop # AUSAs per million population
+ unemp # Unemployment
+ citi6006 # Citizen ideology measure
+ high_school + # Percent high school graduates
+ rgenrevpc # Real per capita gov revenues ($1000)
+ men_ineqincwag # Inequality: Male wages
+ grelimp # Relative government wages
+ urbanization_2 # Urbanization
+ logpop, # Log of population (millions)
data = AltBarber,
model="random")
#Base model with fixed effects and time fixed effects
cri.base.fixed.time <- plm(CRI ~ jdiv # Divided government
+ bindingonetermlimit # Binding one-term limit
+ bindingtwotermlimit # Binding two-term limit
+ rpcinc_annual_new # Real per capita income ($1000)
+ eopop # AUSAs per million population
+ unemp # Unemployment
+ citi6006 # Citizen ideology measure
+ high_school + # Percent high school graduates
+ rgenrevpc # Real per capita gov revenues ($1000)
+ men_ineqincwag # Inequality: Male wages
+ grelimp # Relative government wages
+ urbanization_2 # Urbanization
+ logpop, # Log of population (millions)
data = AltBarber,
model="within",
effect = "twoways")
```
```{r Hausman for CRI base model, eval=F}
phtest(cri.base.pooled, cri.base.fixed, cri.base.random, cri.base.fixed.time)
```
```{r output of CRI base model effects}
stargazer(cri.base.pooled,
cri.base.fixed,
cri.base.random,
cri.base.fixed.time,
type="text",
add.lines = list(c("Effects", "Pooled", "Fixed", "Random", "Two-Way"))
)
```
```{r modeling of CCI with campaign finance variables, eval=T}
# Base model with no fixed or random effects
cci.limits.pooled <- plm(CCI
~ ind_limits_2010*ind_limits_dummy
+ ind2pty_limits_2010*ind2pty_limits_dummy
+ pac_limits_2010*pac_limits_dummy
+ jdiv # Divided government
+ bindingonetermlimit # Binding one-term limit
+ bindingtwotermlimit # Binding two-term limit
+ rpcinc_annual_new # Real per capita income ($1000)
+ eopop # AUSAs per million population
+ unemp # Unemployment
+ citi6006 # Citizen ideology measure
+ high_school + # Percent high school graduates
+ rgenrevpc # Real per capita gov revenues ($1000)
+ men_ineqincwag # Inequality: Male wages
+ grelimp # Relative government wages
+ urbanization_2 # Urbanization
+ logpop, # Log of population (millions)
data = AltBarber,
model="pooling")
# Base model with fixed effects (NB: effect="individual" is redundant here)
cci.limits.fixed <- plm(CCI
~ ind_limits_2010*ind_limits_dummy
+ ind2pty_limits_2010*ind2pty_limits_dummy
+ pac_limits_2010*pac_limits_dummy
+ jdiv # Divided government
+ bindingonetermlimit # Binding one-term limit
+ bindingtwotermlimit # Binding two-term limit
+ rpcinc_annual_new # Real per capita income ($1000)
+ eopop # AUSAs per million population
+ unemp # Unemployment
+ citi6006 # Citizen ideology measure
+ high_school + # Percent high school graduates
+ rgenrevpc # Real per capita gov revenues ($1000)
+ men_ineqincwag # Inequality: Male wages
+ grelimp # Relative government wages
+ urbanization_2 # Urbanization
+ logpop, # Log of population (millions)
data = AltBarber,
model="within")
# Base model with random effects (failed)
# cci.limits.random <- plm(CCI
# ~ ind_limits_2010*ind_limits_dummy
# + ind2pty_limits_2010*ind2pty_limits_dummy
# + pac_limits_2010*pac_limits_dummy
# + jdiv # Divided government
# + bindingonetermlimit # Binding one-term limit
# + bindingtwotermlimit # Binding two-term limit
# + rpcinc_annual_new # Real per capita income ($1000)
# + eopop # AUSAs per million population
# + unemp # Unemployment
# + citi6006 # Citizen ideology measure
# + high_school + # Percent high school graduates
# + rgenrevpc # Real per capita gov revenues ($1000)
# + men_ineqincwag # Inequality: Male wages
# + grelimp # Relative government wages
# + urbanization_2 # Urbanization
# + logpop, # Log of population (millions)
# data = AltBarber,
# model="random")
#Base model with fixed effects and time fixed effects
cci.limits.fixed.time <- plm(CCI
~ ind_limits_2010*ind_limits_dummy
+ ind2pty_limits_2010*ind2pty_limits_dummy
+ pac_limits_2010*pac_limits_dummy
+ jdiv # Divided government
+ bindingonetermlimit # Binding one-term limit
+ bindingtwotermlimit # Binding two-term limit
+ rpcinc_annual_new # Real per capita income ($1000)
+ eopop # AUSAs per million population
+ unemp # Unemployment
+ citi6006 # Citizen ideology measure
+ high_school + # Percent high school graduates
+ rgenrevpc # Real per capita gov revenues ($1000)
+ men_ineqincwag # Inequality: Male wages
+ grelimp # Relative government wages
+ urbanization_2 # Urbanization
+ logpop, # Log of population (millions)
data = AltBarber,
model="within",
effect = "twoways")
```
```{r Hausman test for CCI with campaign finance variables, eval=F}
phtest(cci.limits.pooled, cci.limits.fixed, cci.limits.random, cci.limits.fixed.time)
```
```{r output of CCI with campaign finance variables}
stargazer(cci.limits.pooled,
cci.limits.fixed,
cci.limits.fixed.time,
type="text",
add.lines = list(c("Effects", "Pooled", "Fixed", "Two-Way"))
)
```
```{r modeling of CRI with campaign finance variables, eval=T}
# Base model with no fixed or random effects
cri.limits.pooled <- plm(CRI
~ ind_limits_2010*ind_limits_dummy
+ ind2pty_limits_2010*ind2pty_limits_dummy
+ pac_limits_2010*pac_limits_dummy
+ jdiv # Divided government
+ bindingonetermlimit # Binding one-term limit
+ bindingtwotermlimit # Binding two-term limit
+ rpcinc_annual_new # Real per capita income ($1000)
+ eopop # AUSAs per million population
+ unemp # Unemployment
+ citi6006 # Citizen ideology measure
+ high_school + # Percent high school graduates
+ rgenrevpc # Real per capita gov revenues ($1000)
+ men_ineqincwag # Inequality: Male wages
+ grelimp # Relative government wages
+ urbanization_2 # Urbanization
+ logpop, # Log of population (millions)
data = AltBarber,
model="pooling")
# Base model with fixed effects (NB: effect="individual" is redundant here)
cri.limits.fixed <- plm(CRI
~ ind_limits_2010*ind_limits_dummy
+ ind2pty_limits_2010*ind2pty_limits_dummy
+ pac_limits_2010*pac_limits_dummy
+ jdiv # Divided government
+ bindingonetermlimit # Binding one-term limit
+ bindingtwotermlimit # Binding two-term limit
+ rpcinc_annual_new # Real per capita income ($1000)
+ eopop # AUSAs per million population
+ unemp # Unemployment
+ citi6006 # Citizen ideology measure
+ high_school + # Percent high school graduates
+ rgenrevpc # Real per capita gov revenues ($1000)
+ men_ineqincwag # Inequality: Male wages
+ grelimp # Relative government wages
+ urbanization_2 # Urbanization
+ logpop, # Log of population (millions)
data = AltBarber,
model="within")
# Base model with random effects (failed)
cri.limits.random <- plm(CRI
~ ind_limits_2010*ind_limits_dummy
+ ind2pty_limits_2010*ind2pty_limits_dummy
+ pac_limits_2010*pac_limits_dummy
+ jdiv # Divided government
+ bindingonetermlimit # Binding one-term limit
+ bindingtwotermlimit # Binding two-term limit
+ rpcinc_annual_new # Real per capita income ($1000)
+ eopop # AUSAs per million population
+ unemp # Unemployment
+ citi6006 # Citizen ideology measure
+ high_school + # Percent high school graduates
+ rgenrevpc # Real per capita gov revenues ($1000)
+ men_ineqincwag # Inequality: Male wages
+ grelimp # Relative government wages
+ urbanization_2 # Urbanization
+ logpop, # Log of population (millions)
data = AltBarber,
model="random")
#Base model with fixed effects and time fixed effects
cri.limits.fixed.time <- plm(CRI
~ ind_limits_2010*ind_limits_dummy
+ ind2pty_limits_2010*ind2pty_limits_dummy
+ pac_limits_2010*pac_limits_dummy
+ jdiv # Divided government
+ bindingonetermlimit # Binding one-term limit
+ bindingtwotermlimit # Binding two-term limit
+ rpcinc_annual_new # Real per capita income ($1000)
+ eopop # AUSAs per million population
+ unemp # Unemployment
+ citi6006 # Citizen ideology measure
+ high_school + # Percent high school graduates
+ rgenrevpc # Real per capita gov revenues ($1000)
+ men_ineqincwag # Inequality: Male wages
+ grelimp # Relative government wages
+ urbanization_2 # Urbanization
+ logpop, # Log of population (millions)
data = AltBarber,
model="within",
effect = "twoways")
```
```{r Hausman test for CRI with campaign finance variables}
phtest(cri.limits.pooled, cri.limits.fixed, cri.limits.random, cri.limits.fixed.time)
```
```{r output of CRI with campaign finance variables}
stargazer(cri.limits.pooled,
cri.limits.fixed,
cri.limits.random,
cri.limits.fixed.time,
type="text",
add.lines = list(c("Effects", "Pooled", "Fixed", "Random", "Two-Way"))
)
```
```{r Empty, Binomial, and Poisson models FAIL}
# First, trying to run the model above but with the pglm() package
# pglm(formula, data, subset, na.action, effect = c("individual", "time", "twoways"), model = c("random", "pooling", "within", "between"), family, other = NULL, index = NULL, start = NULL, R = 20, ...)
# Initial correlations of independent variables with CCI
pglm(CCI ~ ind_limits_2010*ind_limits_dummy + ind2pty_limits_2010*ind2pty_limits_dummy + pac_limits_2010*pac_limits_dummy, data = BarberICC, model = "within", index = c("st","year"), effect = "twoways", family = gaussian)
# Return code 100: Initial value out of range. May have something to do with the interaction terms, because when I strip those out, the model at least returns something.
# What about Cale's empty model?
cci.empty.pooling <- plm(CCI ~ st + year,
data = AltBarber,
model="pooling")
summary(cci.empty.pooling)
cci.empty.within <- plm(CCI ~ st + year,
data = AltBarber,
model="within")
summary(cci.empty.within)
# Verifying that I didn't screw up by not having st and year as variables in my preivous model
cci.base.fixed.time.redo <- plm(CCI ~ st + year
+ jdiv # Divided government
+ bindingonetermlimit # Binding one-term limit
+ bindingtwotermlimit # Binding two-term limit
+ rpcinc_annual_new # Real per capita income ($1000)
+ eopop # AUSAs per million population
+ unemp # Unemployment
+ citi6006 # Citizen ideology measure
+ high_school + # Percent high school graduates
+ rgenrevpc # Real per capita gov revenues ($1000)
+ men_ineqincwag # Inequality: Male wages
+ grelimp # Relative government wages
+ urbanization_2 # Urbanization
+ logpop, # Log of population (millions)
data = AltBarber,
model="within",
effect = "twoways")
# stargazer(cci.base.fixed.time, cci.base.fixed.time.redo, type="text")
```
### Model II: First Differences Model
Even if the panel modeling above fails to capture correlation between state level campaign finance laws and corruption convictions, it could be the case that changes in campaign finance laws, rather than relative campaign finance limits, are correlated with decreases in corruption. In addition to the panel model above, I ran a first differences regression compare the state-years in which campaign finance laws changed to state-years where they remained constant. If tighter campaign finance laws are correlated with lower corruption levels, then a change in one year should be associated with lower CCI (corruption convictions) and CRI (reflections) in the years following.
```{r DiD wrangling, eval=T}
BarberICC %>% arrange(year) %>% group_by(st) %>% mutate(
ind_d = (ind_limits_2010 - dplyr::lag(ind_limits_2010)),
ind_dummy_d = (ind_limits_dummy - dplyr::lag(ind_limits_dummy)),
pac_d = (pac_limits_2010 - dplyr::lag(pac_limits_2010)),
pac_dummy_d = (pac_limits_dummy - dplyr::lag(pac_limits_dummy)),
ind2pty_d = (ind2pty_limits_2010 - dplyr::lag(ind2pty_limits_2010)),
ind2pty_dummy_d = (ind2pty_limits_dummy - dplyr::lag(ind2pty_limits_dummy))
) -> testframe
testframe %>% dplyr::select(1:2,8,11,3:7,12:21) -> DiDsmall
# Now I have what I think are three multi-level categorical independent variables.
# https://stats.idre.ucla.edu/r/modules/coding-for-categorical-variables-in-regression-models/
#1. When limits were imposed (1) or went down, did corruption go down?
#2. When limits were removed (-1) or went up, did corruption go up?
DiDsmall$ind_dummy_f <- factor(DiDsmall$ind_dummy_d)
DiDsmall <- within(DiDsmall, ind_dummy_f <- relevel(ind_dummy_f, ref = "0"))
DiDsmall$pac_dummy_f <- factor(DiDsmall$pac_dummy_d)
DiDsmall <- within(DiDsmall, pac_dummy_f <- relevel(pac_dummy_f, ref = "0"))
DiDsmall$ind2pty_dummy_f <- factor(DiDsmall$ind2pty_dummy_d)
DiDsmall <- within(DiDsmall, ind2pty_dummy_f <- relevel(ind2pty_dummy_f, ref = "0"))
```
```{r DiD modeling, eval=T}
#summary(lm(CCI ~ ind_dummy_f, data = DiDsmall))
#summary(lm(CCI ~ pac_dummy_f, data = DiDsmall))
#summary(lm(CCI ~ ind2pty_dummy_f, data = DiDsmall))
#summary(lm(CRI ~ ind_dummy_f, data = DiDsmall))
#summary(lm(CRI ~ pac_dummy_f, data = DiDsmall))
#summary(lm(CRI ~ ind2pty_dummy_f, data = DiDsmall))
# No effects
CCIDID01 <- lm(CCI ~ ind_dummy_f*ind_d, data = DiDsmall)
# Erin: What this doesn't have is an average treatment effect. So add the interaction of the dummy variable of the change having happened and the law occurring. Time dummy, maybe?
# • Again, writing out a model for the D-in-D in Table 4 might help readers to understand what is being isolated. Right now, I’m not sure I fully follow the estimation choices.
# o At a minimum, the state-level control variables changed during this time (and hence wouldn’t get differenced out), and ought to be included.
# o Column 1 (and 2): the large standard errors on individual limits removed and imposed suggest multicollinearity and needs to be investigated.
# Consider adding state fixed effects to the DiD model, for robustness.
CCIDID02 <- lm(CCI ~ pac_dummy_f*pac_d, data = DiDsmall)
CCIDID03 <- lm(CCI ~ ind2pty_dummy_f*ind2pty_d, data = DiDsmall)
CRIDID01 <- lm(CRI ~ ind_dummy_f*ind_d, data = DiDsmall)
CRIDID02 <- lm(CRI ~ pac_dummy_f*pac_d, data = DiDsmall)
CRIDID03 <- lm(CRI ~ ind2pty_dummy_f*ind2pty_d, data = DiDsmall)
# No effects
# Next: Lag?
```
##Results
### Modeling campaign limits and corruption convictions
The results of the panel regressions reveal no correlation between state-level campaign contribution limits and corruption, with one exception: There is a statistically significant relationship between the presence of individual-to-party limits and the Corruption Reflections Index.
The first set of models (Table X) measures the association of various campaign contribution limits with the Corruption Convictions Index. The first model includes only control variables; the second model adds in campaign finance limit variables. The third layers in fixed effects at the state level, and the fourth incorporates fixed time effects. Not included are random effects models, which showed no improvement in the models. None of those results are significant at the p<0.05 level, implying that we cannot claim their effect is distinguishable from no effect. I interpret these results as showing no relationship between the presence or amount of state-level contribution limits and levels of corruption as measured by the Corruption Convictions Index.
The second set of models (Table X) also fails to find a relationship between state-level campaign contribution limits and media mentions of corruption as measured by the Corruption Reflections Index, with one exception: The presence of limits on what an individual can give to a party is associated with a 0.11 point decline in the Corruption Reflections Index. The Corruption Reflections Index operates on a scale of zero to one (with a few outlying exceptions), indicating that the presence of individual-to-party limits is associated with a 11% decrease in the index.
### Modeling changes in campaign limits and corruption convictions
The final set of models (Table X) displays results from multiple first difference models designed to isolate the effect of changes in campaign finance laws on corruption convictions. None of the models find correlation between campaign finance limits and corruption convictions or corruption reflections.
```{r CCI output to table latex, results="asis", eval=T}
# Maaaaaybe figure out how to add back in those $ signs.
stargazer(cci.base.pooled,
cci.limits.pooled,
cci.limits.fixed,
cci.limits.fixed.time,
type="latex",
title = "Panel Model of Contribution Limits and Corruption Convictions",
dep.var.labels = "Corruption Convictions Index",
covariate.labels=c("Individual limit amounts", "Individual limits (dummy)","Individual-to-party limit amount","Individual-to-party limits (dummy)","PAC limit amounts","PAC limits (dummy)","Divided government","Binding one-term limit","Binding two-term limit","Real per capita income (1000s)","AUSAs per million population","Unemployment","Citizen ideology measure","Percent high school graduates","Real per capita gov revenues (1000s)","Inequality: Male wages","Relative government wages","Urbanization","Log of population (millions)"),
add.lines = list(c("Effects","Pooled","Pooled","Fixed","Two-Way")),
header=FALSE,
font.size = "small",
# column.sep.width = "-5pt",
digits = 2, digits.extra = 0,
no.space = TRUE,
omit.stat = "f"
)
```
```{r CCI output to png, eval=F}
# Maaaaaybe figure out how to add back in those $ signs.
stargazer(cci.base.pooled,
cci.limits.pooled,
cci.limits.fixed,
cci.limits.fixed.time,
type="html",
out="collateral/CCI.htm",
title = "Panel Model of Campaign Finance Limits and Corruption Convictions",
dep.var.labels = "Corruption Convictions Index",
covariate.labels=c("Individual limit amounts", "Individual limits (dummy)","Individual-to-party limit amount","Individual-to-party limits (dummy)","PAC limit amounts","PAC limits (dummy)","Divided government","Binding one-term limit","Binding two-term limit","Real per capita income (1000s)","AUSAs per million population","Unemployment","Citizen ideology measure","Percent high school graduates","Real per capita gov revenues (1000s)","Inequality: Male wages","Relative government wages","Urbanization","Log of population (millions)"),
add.lines = list(c("Effects","Pooled","Pooled","Fixed","Two-Way")),
header=FALSE,
font.size = "small",
# column.sep.width = "-5pt",
digits = 2, digits.extra = 0,
no.space = TRUE,
omit.stat = "f"
)
```
```{r CRI output to table latex, results="asis", eval=T}
stargazer(cri.base.pooled,
cri.limits.pooled,
cri.limits.fixed,
cri.limits.fixed.time,
type="latex",
title = "Panel Model of Contribution Limits and Corruption Reflections",
dep.var.labels = "Corruption Reflections Index",
covariate.labels=c("Individual limit amounts", "Individual limits (dummy)","Individual-to-party limit amount","Individual-to-party limits (dummy)","PAC limit amounts","PAC limits (dummy)","Divided government","Binding one-term limit","Binding two-term limit","Real per capita income (1000s)","AUSAs per million population","Unemployment","Citizen ideology measure","Percent high school graduates","Real per capita gov revenues (1000s)","Inequality: Male wages","Relative government wages","Urbanization","Log of population (millions)"),
add.lines = list(c("Effects","Pooled","Pooled","Fixed","Two-Way")),
header=FALSE,
font.size = "small",
# column.sep.width = "-5pt",
digits = 2, digits.extra = 0,
no.space = TRUE,
omit.stat = "f"
)
```
```{r CRI output to html, eval=F}
stargazer(cri.base.pooled,
cri.limits.pooled,
cri.limits.fixed,
cri.limits.fixed.time,
type="html",
out = "collateral/CRI.htm",
title = "Panel Model of Campaign Finance Limits and Corruption Reflections",
dep.var.labels = "Corruption Reflections Index",
covariate.labels=c("Individual limit amounts", "Individual limits (dummy)","Individual-to-party limit amount","Individual-to-party limits (dummy)","PAC limit amounts","PAC limits (dummy)","Divided government","Binding one-term limit","Binding two-term limit","Real per capita income (1000s)","AUSAs per million population","Unemployment","Citizen ideology measure","Percent high school graduates","Real per capita gov revenues (1000s)","Inequality: Male wages","Relative government wages","Urbanization","Log of population (millions)"),
add.lines = list(c("Effects","Pooled","Pooled","Fixed","Two-Way")),
header=FALSE,
font.size = "small",
# column.sep.width = "-5pt",
digits = 2, digits.extra = 0,
no.space = TRUE,
omit.stat = "f"
)
```
\blandscape
```{r DiD to table latex, results="asis", eval=T}
stargazer(CCIDID01, CCIDID02, CCIDID03, CRIDID01, CRIDID02, CRIDID03,
type="latex",
title = "First Differences Model of Changes in Contribution Limits Versus Convictions and Reflections",
dep.var.labels = c("Corruption Convictions Index", "Corruption Reflections Index"),
covariate.labels=c("Individual limits removed","Individual limits imposed","Individual limit amount","Individual limits removed*amount","Individual limits imposed*amount",
"PAC limits removed","PAC limits imposed","PAC limit amount","PAC limits removed*amount","PAC limits imposed*amount",
"Individual-to-party limits removed","Individual-to-party limits imposed","Individual-to-party limit amount","Individual-to-party limits removed*amount","Individual-to-party limits imposed*amount"),
header=FALSE,
font.size = "small",
# column.sep.width = "-5pt",
digits = 2, digits.extra = 0,
no.space = TRUE,
omit.stat = "f"
)
```
```{r DiD to htm, eval=F}
stargazer(CCIDID01, CCIDID02, CCIDID03, CRIDID01, CRIDID02, CRIDID03,
type="html",
title = "First Differences Model: Do Changes in Limits Lead to Lower Levels of Corruption?",
out = "collateral/DiD.htm",
dep.var.labels = c("Corruption Convictions Index", "Corruption Reflections Index"),
covariate.labels=c("Individual limits removed","Individual limits imposed","Individual limit amount","Individual limits removed*amount","Individual limits imposed*amount",
"PAC limits removed","PAC limits imposed","PAC limit amount","PAC limits removed*amount","PAC limits imposed*amount",
"Individual-to-party limits removed","Individual-to-party limits imposed","Individual-to-party limit amount","Individual-to-party limits removed*amount","Individual-to-party limits imposed*amount"),
header=FALSE,
font.size = "small",
# column.sep.width = "-5pt",
digits = 2, digits.extra = 0,
no.space = TRUE,
omit.stat = "f"
)
```
```{r webshots, eval=F}
webshot("collateral/CCI.htm", "collateral/CCI.png")
```
\elandscape
## Discussion
At least one group of models allows for a straightforward interpretation. The panel models examining the relationship between state-level campaign finance laws and the Corruption Convictions Index fail to show any correlation between state level campaign finance laws and levels of corruption as measured by corruptions convictions, even controlling for variation in enforcement across the states.
The results for the models examining the relationship between campaign finance limits and the Corruption Reflections Index are less clear. The pair of stars in the fourth model suggest that the presence of individual-to-party limits is associated with a decrease in the Corruption Reflections Index. There is a less than 1% probability that the results are due to chance. How could this be, given that (a) the presence of individual-to-party limits has no association with a change the Corruption Convictions Index; (b) none of the other contribution limits are associated with a change in the Corruption Reflections Index; and (c) there is no correlation between the dollar amount of the individual-to-party limit and the Corruption Reflections Index? In practice, this would mean that states with individual-to-party limits also see lower levels of Associated Press reporting on corruption, but that once limits of any kind are imposed, the level of limit does not matter. It would also mean that only individual-to-party limits matter, not individual-to-candidate or PAC-to-candidate limits. Lastly, it would imply that the presence of such limits has an effect on reporting about corruption, but not on corruption convictions.
There is limited theoretical explanation for this outcome. It could be that AP reporters are somehow more likely to report on conviction allegations against political parties than against individual candidates or PACs, even where those allegations don’t result in greater levels of convictions, and only in states where the absence of contribution limits allows for a clean, “no limits on contributions” narrative. It is more likely, however, that these results call into question the robustness of Dincer and Johnston’s Corruption Reflections Index. As mentioned above, further research could carry forward their text-mining method into a greater number and variety of outlets, in order to find a measure of corruption reporting more tightly correlated with other measures.
## Conclusion
There at least two distinct and opposing ways to explain these results, viewpoints that will come into direct and public conflict if the Court chooses to hear a first amendment challenge to campaign contribution limits.
The first interpretation is that campaign finance and quid pro quo corruption are simply not related. How could this be? One explanation is that the measures of corruption used here fail to capture most corruption, which is never prosecuted. This explanation, however, would rest on the assumption that corruption is unequally captured across states over time. A second explanation is that corruption occurs regardless of campaign finance laws: Politicians likely to engage in corrupt behavior will do so outside of the campaign finance regime, where their transactions would be most visible.
The legal implications of this interpretation are clear and material. The Supreme Court presently equates political donations with political speech, meaning that it is protected by the first amendment, but that preventing corruption or its appearance in the political system is so important that first amendment rights can be abridged to ensure it. For the Court, no other justification--including creating a more informed electorate, or stimulating more competitive elections, or equality of financial participation in elections--is an important enough concern that we should limit political speech in the form of campaign donations. If there is no link between campaign contribution limits and corruption, the Court may conclude that there is no reason to abridge US citizens’ first amendment rights by limiting campaign donations.
In order to make this anti-reform argument, some important limitations must be dealt with. First, the Corruptions Conviction Index used above has multiple issues, as summarized above. Second, Dincer and Johnston’s Corruption Reflections Index, while a worthy effort, needs to be developed further. It relies on a single news source; a second version could examine state-level reporting, or include outlets from across the political spectrum. Second, the Corruption Reflections Index carries with it the assumption that media mentions are a mere reflection of corruption, whereas other work has demonstrated that media reporting on corruption has its own biases, and its own effects on perceptions of corruption. Further research could more fully explore these relationships, including the manner in which public perceptions of corruption provide enabling or constraining environments for corruption itself. Given the importance of these limitations, all that can be concluded from the analysis above is that no link between contribution limits and corruption has been demonstrated with this data, not that no link exists.
The anti-reform/pro-speech interpretation must also more fully take into account the second half of the court’s reasoning for limiting free speech, the “appearance of corruption.” Primo and Milyo 2006 on confidence and trust in state government is an important step in that direction, though they acknowledges that “survey measures that relate to opinion on the integrity of democracy are likely to reflect a much more expansive view of ‘corruption’ than what any Court would consider appropriate (2006). Dincer and Johnston’s surveys of state reporters is another step, but is limited by its design: State reporters’ perceptions are just a proxy, not a direct measure, of public perceptions of corruption (2017).
The second, pro-reform interpretation of these results would highlight further issues. Using corruption convictions as a measure may be inherently flawed, as effectively corrupt officials would never be arrested. The Corruption Reflections Index, likewise, sits uncomfortably between measuring actual corruption and its appearance, saying nothing conclusive about either. Furthermore, this design does not speak to causality: It could very well be that in states with high levels of corruption, the public agitates for campaign contribution limits.
If Jim Bopp and other conservative legal scholars have their way, the Supreme Court will soon take a closer look at the logic laid out by their predecessors in 1976 in support of campaign contribution limits. Justice Thomas's comments in _McCutcheon v. FEC_ suggest that commitment to the Buckley v. Valeo structure is weakening, and not in the way that campaign finance reformers might hope. Despite effort, scholars have failed to provide compelling evidence of a link between campaign contribution limits and corruption as defined by the Court. The measures of corruption that academics have used to date have serious limitations. Yet if the Court decides the burden of proof is on those looking to restrict political spending on narrow corruption grounds, reform advocates worried about money in politics have a steep empirical hill to climb, and likely only a few short years to do it.
\newpage
\blandscape
## Appendix X: Initital modeling of independent and dependent variables
```{r output of initial correlations, results="asis", eval=T}
stargazer(CCIreg1, CCIreg2, CCIreg3, CCIreg5,CRIreg1, CRIreg2, CRIreg3, CRIreg5,
title = "Are campaign limits correlated with corruption convictions or reflections?",
type="latex",
dep.var.labels = c("Corruption Convictions Index","Corruption Reflections Index"),
covariate.labels=c("Individual limit amounts", "Individual limits (dummy)","Individual-to-party limit amount","Individual-to-party limits (dummy)","PAC limit amounts","PAC limits (dummy)"),
add.lines = list(c("Effects","Two-Way","Two-Way","Two-Way","Two-Way","Two-Way","Two-Way","Two-Way","Two-Way")),
font.size = "small",
header = FALSE,
column.sep.width = "-5pt",
digits = 2, digits.extra = 0,
no.space = TRUE,
omit.stat = "f"
)
```
\elandscape
\newpage
##Appendix X: Descriptions and Descriptive Statistics of Control Variables
In their 2012 paper "Enforcement and Public Corruption: Evidence from the American States," Glaeser and Saks make use of the following control variables, which we have included here:
* *AUSAs per million population*, where the number of general attorneys in the U.S. Attorney's office serves as a proxy for the number of federal resources focused on corruption in a particular state
* *Relative government wages*, the wages of government workers relative to that of the state in which they live, under the hypothesis that lower relative wages will make government workers more prone to corruption
* *Divided government*, where legislature and executive are controlled by different parties, *Binding one-term limits* and *Binding two-term limits*, which Alt and Lassen call "shadow of the future" variables
* *Real per capita income ($1000)*, *Unemployment*, *Citizen ideology measure*, *Percent high school graduates*, *Real per capita gov revenues ($1000)*, *Inequality: Male wages*, *Urbanization* and *Log of population (millions)*, which are included as social and demographic controls
```{r Alt and Lassen summary, results="asis", eval=T}
stargazer(as.data.frame(subset(AltLassen[,c("jdiv","bindingonetermlimit","bindingtwotermlimit","rpcinc_annual_new","eopop","unemp","citi6006","high_school","rgenrevpc","men_ineqincwag","grelimp","urbanization_2","logpop")])),
type="latex",
digits=2,
title="Descriptive Statistics of Control Variables",
covariate.labels = c("Divided government","Binding one-term limit","Binding two-term limit","Real per capita income (1000s)","AUSAs per million population","Unemployment","Citizen ideology measure","Percent high school graduates","Real per capita gov revenues (1000s)","Inequality: Male wages","Relative government wages","Urbanization","Log of population (millions)"),
header=FALSE,
font.size = "small",
column.sep.width = "-5pt",
# digits = 2, digits.extra = 0,
no.space = TRUE)
```
\newpage
##References
<!--Add new authors (see Google doc) and data. R packages?-->
Ansolabehere, Stephen, John M de Figueiredo, and James M Snyder Jr. 2003. “Why is there so Little Money in US Politics?” Journal of Economic Perspectives. 17(1): 105–130.
Alt, J. E., & Lassen, D. D. (2012). Enforcement and public corruption: evidence from the American states. The Journal of Law, Economics, and Organization, 30(2), 306-338.
Barber, Michael J. "Ideological Donors, Contribution Limits, and the Polarization of American Legislatures." The Journal of Politics 78.1 (2016): 296-310.
Boylan, R. T., & Long, C. X. (2003). Measuring public corruption in the American states: A survey of state house reporters. State Politics & Policy Quarterly, 3(4), 420-438.
Cordis, A., & Milyo, J. (2013). Do state campaign finance reforms reduce public corruption?. George Mason University, Mercatus Center, Working Paper, (13-09).
Cordis, A. S., & Milyo, J. (2016). Measuring public corruption in the United States: evidence from administrative records of federal prosecutions. Public Integrity, 18(2), 127-148.
Crider, K., & Milyo, J. (2013). Do State Ethics Commissions Reduce Political Corruption: An Exploratory Investigation. UC Irvine L. Rev., 3, 717.
Dincer, O., & Johnston, M. (2016). Political Culture and Corruption Issues in State Politics: A New Measure of Corruption Issues and a Test of Relationships to Political Culture. Publius: The Journal of Federalism, 47(1), 131-148.
Glaeser, E. L., & Saks, R. E. (2006). Corruption in america. Journal of public Economics, 90(6), 1053-1072.
Gross, D. A., Goidel, R. K., & Shields, T. G. (2002). State campaign finance regulations and electoral competition. American Politics Research, 30(2), 143-165.
Hall, R. L., & Wayman, F. W. (1990). Buying time: Moneyed interests and the mobilization of bias in congressional committees. American political science review, 84(3), 797-820.
Hurley, L. & Debenedetti, G. (2014, April 04). Legal victory for big-money campaign donors to be felt in states, courts. Retrieved December 16, 2017, from https://www.reuters.com/article/us-usa-court-election-analysis/legal-victory-for-big-money-campaign-donors-to-be-felt-in-states-courts-idUSBREA3308620140404
Langbein, L. I. (1986). Money and access: Some empirical evidence. The journal of politics, 48(4), 1052-1062.
Liu, C., & Mikesell, J. L. (2014). The impact of public officials’ corruption on the size and allocation of US state spending. Public Administration Review, 74(3), 346-359.
Lott, J. R. (2006). Campaign finance reform and electoral competition. Public Choice, 129(3-4), 263-300.
Persily, N., & Lammie, K. (2004). Perceptions of corruption and campaign finance: When public opinion determines constitutional law. University of Pennsylvania Law Review, 119-180.
Primo, D. M. (2002). Public opinion and campaign finance: Reformers versus reality. The independent review, 7(2), 207-219.
Primo, D. M., & Milyo, J. (2006). Campaign finance laws and political efficacy: evidence from the states. Election Law Journal, 5(1), 23-39.
Rosenson, B. A. (2009). The effect of political reform measures on perceptions of corruption. Election Law Journal, 8(1), 31-46.
Spencer, Douglas M., and Abby K. Wood. 2014. "Citizens United, states divided: an empirical analysis of independent political spending." LJ 89: 315.
Stratmann, Thomas. 1991. “What Do Campaign Contributions Buy? Deciphering Causal Effects of Money and Votes.” Southern Economic Journal. Pp.606-620.
Stratmann, T. (1998). The market for congressional votes: Is timing of contributions everything?. The Journal of Law and Economics, 41(1), 85-114.
Stratmann, T. (2006). Contribution limits and the effectiveness of campaign spending. Public Choice, 129(3), 461-474.
Walker, D. M., & Calcagno, P. T. (2013). Casinos and political corruption in the United States: A Granger causality analysis. Applied Economics, 45(34), 4781-4795.
Walker, D. M., & Jackson, J. D. (2011). The effect of legalized gambling on state government revenue. Contemporary Economic Policy, 29(1), 101-114.
Werner, Timothy, and John J. Coleman. 2014. "Citizens United, independent expenditures, and agency costs: Reexamining the political economy of state antitakeover statutes." The Journal of Law, Economics, & Organization. 127-159.
Welch, W. P. (1982). Campaign contributions and legislative voting: Milk money and dairy price supports. Western Political Quarterly, 35(4), 478-495.
Zall, B. (2017, October 24). Ninth Circuit Tees Up Latest Challenge to Citizens United and McCutcheon. Retrieved November 22, 2017, from https://publicpolicylegal.com/2017/10/24/ninth-circuit-tees-up-latest-challenge-to-citizens-united-and-mccutcheon/
<!-- Old code
```{r (old) controlled panel modeling}