Rezumat: Acest post reproduce analiza Dr. Adam Bonica în relația dintre alinierea ideologică a agențiilor guvernamentale și vizarea concedierilor de către Departamentul de Eficiență a Guvernului (Doge).
Credit: Dr. Adam Bonica este profesor de științe politice la Universitatea Stanford (Link). El poate fi găsit pe bluesky la @adambonica.bsky.social. Analiza sa inițială a fost postată pe Bluesky la 20 februarie 2025 și poate fi găsită aici.
Nota: Acest post reproduce cercetarea relevantă pentru analiza politicilor publice. Prezintă constatări fără a aproba sau a critica implicațiile cercetării inițiale. Erorile și/sau omisiunile sunt responsabilitatea autorului.
Pachete: ddplyr, ggplot2, readr și stargazer
Date: Datele utilizate în această postare au fost extrase din foaia Google partajată de Dr. Bonica pe 22 februarie 2025.
Fundal
Departamentul de eficiență guvernamentală (Doge) este o organizație contractată temporar cu scopul aparent de a efectua agenda lui Trump cu privire la reduceri și dereglare a cheltuielilor federale și „modernizarea tehnologiei și software -ului federal pentru a maximiza eficiența și productivitatea guvernamentală”. Inițiativele cheie includ audituri de cheltuieli departamentale, reducerea programelor de diversitate și incluziune (care pretinde economii de 1 miliard de dolari), reducerea ajutorului extern prin USAID, oferind achiziții federale de forță de muncă și încercarea de restructurare a Biroului pentru Protecția Financiară a Consumatorilor.
În timp ce Doge a raportat obținerea economiilor, impactul fiscal real al activității sale rămâne neverificat. Criticii, la fel ca fostul director al CBO, Douglas Holtz-Ekinin, au sugerat, de asemenea, ca accentul departamentului să fie condus ideologic, care vizează agențiile bazate pe dezacorduri politice, mai degrabă decât pe metrici de eficiență (sursă). O afirmație care părea să aibă un anumit sprijin, bazată pe analiza împărtășită de dr. Adam Bonica pe Bluesky a asocierii dintre concedieri Doge și agenții percepute de aplecare ideologică (mai jos).
Configurarea proiectului
Codul de mai jos încarcă pachetele necesare pentru a reproduce analiza și creează o serie de funcții simple care să ne ajute să curățăm numele agenției.
Nota: Prefixele utilizate pentru numele obiectelor se bazează pe acest ghid de stil.
Cod: Configurarea proiectului
#Project Setup: Install and load necessary packages etc ----
library(dplyr)
library(ggplot2)
library(readr)
library(stargazer)
#Create functions for cleaning labels ----
#Extract text between brackets
#(assumed to be parent agency of department)
fnc_extract_brackets <- function(text) {
matches <- regexpr("\(((^))+)\)", text)
has_brackets <- matches != -1
result <- ifelse(has_brackets,
substring(text, matches + 1, matches + attr(matches, "match.length") - 2),
NA_character_)
return(result)
}
#Remove bracketed text
fnc_remove_brackets <- function(text) {
trimws(gsub("\((^))+\)", "", text))
}
#acronym function
fnc_create_acronym<- function(texts, ignore_words = c("of", "the", "and", "in", "on", "at", "to", "for")) {
sapply(texts, function(text) {
words <- strsplit(trimws(text), "\s+")((1))
words <- words(!tolower(words) %in% tolower(ignore_words))
abbrev <- toupper(substr(words, 1, 1))
paste(abbrev, collapse="")
})
}
Aruncând o privire asupra datelor
Aruncând o privire asupra datelor, variabila „agenție” pare să ofere numele organismului guvernamental, agenția -mamă listată între paranteze. De exemplu, intrarea „Departamentul Armatei (DOD)” indică agenția este „Departamentul Armatei”, iar agenția -mamă este DOD (Departamentul Apărării). Numărul bugetului și al personalului fiecărei agenții sunt apoi listate în cadrul „anual_budget_usd” și, respectiv, „total_staff”.
Dacă o agenție a fost vizată pentru concedieri sau demontare de către Doge este listată sub variabilele doge_layoffs și țintite_for_dismantling.
Variabila percepută_ideologică_estimat este obținută din cercetările care au investigat perceput Ideologia agențiilor guvernamentale. Variind de la -2 la +2, agențiile percepute drept „liberale” tind să aibă scoruri sub 0, în timp ce cele percepute ca fiind mai conservatoare au scoruri peste 0. Deși distribuția este aproape de normal, există ceva mai multe agenții în datele stabilite cu Scoruri peste zero (54%) decât sub zero (46%).

Curățarea datelor
Pentru a face datele mai ușor de lucrat, codul de mai jos face o serie de modificări minore la datele sursă. În primul rând, numele variabile sunt convertite în minuscule pentru consistența. Atât variabilele doge_layoffs, cât și direcția_for_dismantling sunt, de asemenea, convertite de la numeric la logic pentru a le reflecta fiind binare. Pentru a facilita vizualizarea datelor la nivel de agenție, numele unui organism guvernamental este, de asemenea, prescurtat folosind funcția de acronim definită în codul de mai sus.
Cod: Curățarea datelor
#Import data ----
dta_doge<-read_csv("./Data/250222 - Agency Ideology and DOGE Firings.csv")
#Data Wrangling and Cleaning ----
#change variable names to lower case
names(dta_doge)<-names(dta_doge) |> tolower()
#take a look at the data
str(dta_doge)
summary(dta_doge)
#distribution of ideology scores
prop.table(table(dta_doge$perceived_ideology_estimate>0)) |> round(2)
hist(dta_doge$perceived_ideology_estimate)
#change dummy variables to logical
dta_doge<-dta_doge |>
mutate(doge_layoffs= as.logical(doge_layoffs),
targeted_for_dismantling= as.logical(targeted_for_dismantling))
#Clean agency name labels
dta_doge<-dta_doge |>
mutate(parent_agency= fnc_extract_brackets(agency),
agency_name = fnc_remove_brackets(agency),
agency_initials=fnc_create_acronym(agency_name) )
Ideologie politică și concedieri Doge
Din motive de brevet, nu vom reproduce cu exactitate complotul lui Adam, dar se concentrează pe cele mai importante caracteristici. Rețineți că dimensiunea agenției prezentată pe axa Y folosește o scară logaritmică și sunt prezentate doar organizații cu dimensiuni de personal între 500 și 1.000.000 de angajați.
Dacă concedierile Doge nu ar fi făcut legătură cu ideologia unei agenții, ne -am putea aștepta la fel de multe concedieri în partea dreaptă a liniei punctate la stânga. Totuși, acest lucru nu pare a fi cazul. În schimb, agențiile cu scoruri ideologice mai „liberale” par să fi fost vizate disproporționat pentru concedieri în comparație cu cele cu scoruri ideologice mai „conservatoare”.


Vizualizarea concedierilor vs. aplecarea ideologică:
#Explanatory Analysis ----
#Reproduce analysis completed by @adambonica.bsky.social's
# Reproduction of @adambonica.bsky.social's plot
#create filtered dataset for plot
dta_plt_doge<-dta_doge |>
filter(total_staff>500,
total_staff<10^6)
#create scatter plot with vertical line at zero perceived ideology
plt_doge<-ggplot(data=dta_plt_doge,
aes(x = perceived_ideology_estimate, y = total_staff)) +
# Add grid lines
geom_hline(yintercept = c(1000, 10000, 100000, 1000000),
color = "gray90", linetype = "dashed") +
geom_vline(xintercept = 0, color = "gray60", linetype = "dashed") +
# Add agency acronyms colored according to DOGE layoff variable
geom_text(aes(label = agency_initials,
color = doge_layoffs),
size=3)+
# Scale transformations
scale_y_log10(breaks = c(1000, 10000, 100000, 1000000),
labels = scales::comma) +
scale_x_continuous(breaks = seq(-2, 2, 1)) +
theme_minimal()+
theme(
plot.title = element_text(face = "bold", size = 16),
plot.subtitle = element_text(size = 14),
plot.caption = element_text(size = 10, hjust = 0))+
# Custom colors
scale_color_manual(values = c("gray60", "red"),
name = "Layoff Status",
labels = c("No Layoffs", "Layoffs")) +
# Labels
labs(title = "Empirical Evidence of Ideological Targeting in Federal Layoffs",
subtitle = "Agencies seen as liberal are significantly more likely to face DOGE layoffs.",
x = "Perceived Ideological Leaningn(← More Liberal | More Conservative →)",
y = "Agency Size (Number of Staff)",
caption = "Note: Analysis includes only agencies with 500+ staff members. Ideology estimates are based on survey responses from 1,500+ federal executives rating agencies
policy views as liberal to conservative across both Democratic and Republican administrations.
Source: Richardson, Clinton, & Lewis (2018). Elite Perceptions of Agency Ideology and Workforce Skill. The Journal of Politics 80(1).")
plt_doge
Ideologia prezice concedierile Doge?
Pentru a investiga această relație în continuare, Dr. Bonica folosește un model de probabilitate liniară OLS pentru a examina măsura în care deciziile de disponibilizare ale lui Doge pot fi prezise de:
- Cât de liberală sau conservatoare este percepută ca o agenție;
- Câți oameni lucrează la agenție; și/sau
- Cât de mare este bugetul agenției.
Dacă un factor are ceva de spus despre prezicerea concedierilor agenției de către Doge, probabil că va fi „semnificativ statistic” în rezultatele modelului. Cu un coeficient pozitiv care sugerează că un factor crește probabilitatea concedierilor și un coeficient negativ care sugerează că scade probabilitatea concedierilor (vezi aici dacă ești ruginit la regresie).
După cum a menționat dr. Bonica, rezultatele pictează o imagine similară cu complotul: agențiile percepute a fi mai liberale au mai multe șanse să fi experimentat concedieri. Cu cât o agenție este mai conservatoare, cu atât este mai puțin probabil să aibă concedieri. Chiar și după contabilizarea dimensiunii și bugetului anual al agenției.


Deși datele au fost actualizate de când Adam a făcut prima sa estimare, codul de mai jos produce un rezultat aproape identic pentru Adam. Cu ideologia agenției având din nou cea mai puternică putere predictivă pe variabile incluse în model:
| Variabila dependentă: | |
| Concedieri Doge | |
| Ideologie a agenției | -0.210*** |
| (0,039) | |
| Jurnal (personal total) | 0.020 |
| (0,029) | |
| Jurnal (buget anual) | 0,056** |
| (0,024) | |
| Constant | -1.140*** |
| (0,416) | |
| Observații | 118 |
| R2 | 0,266 |
| R reglați2 | 0,247 |
| Std rezidual. Eroare | 0,395 (df = 114) |
| F statistică | 13.778*** (df = 3; 114) |
| Nota: | *p <0,1; **p <0,05; ***P <0,01 |
Cod: Model de probabilitate liniară
#reproduce Adam's linear probability model
mod_lm_doge<-lm(data=dta_doge, doge_layoffs ~ perceived_ideology_estimate + log(total_staff) + log(annual_budget_usd))
#display results
summary(mod_lm_doge)
stargazer(mod_lm_doge,
dep.var.labels="DOGE Layoffs",
covariate.labels = c('Agency Ideology','Log(Total Staff)','Log(Annual Budget)','Constant'),
type="html",
digits=3,
out="mod_lm_doge results.html")
Observații finale:
Acest post reproduce concluziile Dr. Bonica care sugerează o relație semnificativă între ideologia percepută de o agenție și probabilitatea sa de a se confrunta cu reduceri de forță de muncă mandatată de Doge. Cel mai recent set de date este disponibil aici pentru cei interesați să efectueze analize suplimentare.
Deși există mai multe lucruri care pot fi făcute cu datele, principalul punct al acestei postări a fost să demonstreze modul de reproducere a analizei folosind R. pentru evoluțiile în curs de desfășurare în această cercetare, inclusiv rafinări metodologice potențiale și noi descoperiri, asigurați -vă că urmați firul original și dr. Bonica însuși @adambonica.bsky.social.
O notă cum AI a fost folosit: AI a fost utilizat pentru a redacta cod pentru funcțiile de curățare a datelor și parcelele. Instrumentele AI au fost, de asemenea, folosite pentru a îmbunătăți modul în care au fost comunicate unele idei și concepte, dar ponderea leului de erori gramaticale și de ortografie sunt ale mele.
