This RMD file is critical as it contains recodes of a number of independent variables that will be used by us.
The following chunk of code will access the LINAS data.
linas.1="https://raw.githubusercontent.com/mightyjoemoon/LINAS2025/main/linas_may2025_weighted_csv.csv"
linas.1<-read_csv(url(linas.1))
#summary(linas.1)
This scale measures responses of support for extreme immigration policy measures. This dependent captures how respondents feel towards harsh and punitive approaches to immigration policy. These policies include stricter border control, priorities on deportation and criminalization. This scale ranges from 0, which represents complete opposition to punitive policies, to 12, which is total support for those policies. Higher scores correlate to greater support of extreme immigration policy while lower scores show opposition to such measures. The variable support_draconian measures the extent to which these individuals oppose or support punitive immigration polices which push exclusion and punishment over more humane approaches.
The three component variables are birthright, alienenemy, and registry. In the codebook, these are items q9-q11.
linas.1$birthright<- linas.1$q9
linas.1$alienenemy<- linas.1$q10
linas.1$registry<- linas.1$q11
linas.1$support_draconian <- linas.1$birthright + linas.1$alienenemy + linas.1$registry
linas.1$support_draconian<-12-(linas.1$support_draconian-3)
table(linas.1$support_draconian)
##
## 0 1 2 3 4 5 6 7 8 9 10 11 12
## 310 69 101 77 71 65 97 44 45 40 26 17 38
summary(linas.1$support_draconian)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.000 0.000 3.000 3.624 6.000 12.000
median(linas.1$support_draconian, na.rm=TRUE)
## [1] 3
Below I have recoded a number of potential independent variables.
Gender is a factor-level variable recorded as “female” and “male”. For purposes of statistical analysis, “male” is the baseline category. This variable is called gender.
linas.1$gender <- factor(linas.1$s3,
levels=c("1", "2"),
labels=c("Male", "Female"))
table(linas.1$gender)
##
## Male Female
## 485 514
Party affiliation is a three-level factor variable recorded as “Republican” for Republicans, “Democrats” for Democrats, and “Ind./Other” for Independent and other identifiers. This factor variable treats partisan “leaners” as partisans. To derive the 3-level factor, I first created a variable to identify the leaners. From this I create the variable for party identification; this variable is called pidthree.
##Coding for party: multi levels
linas.1$pid[linas.1$q65==1 & linas.1$q66==1] <- 1
linas.1$pid[linas.1$q65==1 & linas.1$q66==2] <- 2
linas.1$pid[linas.1$q65==3 & linas.1$q67==1] <- 3
linas.1$pid[linas.1$q65==3 & linas.1$q67==3] <- 4
linas.1$pid[linas.1$q65==3 & linas.1$q67==2] <- 5
linas.1$pid[linas.1$q65==2 & linas.1$q66==2] <- 6
linas.1$pid[linas.1$q65==2 & linas.1$q66==1] <- 7
linas.1$pid[linas.1$q65==3 & linas.1$q67==4] <- 8 #Independent leans other
linas.1$pid[linas.1$q65==4 & linas.1$q67==4] <- 9 #Other leans other
linas.1$pid[linas.1$q65==4 & linas.1$q67==1] <- 3 #Other leans Rep
linas.1$pid[linas.1$q65==4 & linas.1$q67==2] <- 5 #Other leans Dem
linas.1$pid[linas.1$q65==4 & linas.1$q67==3] <- 12 #Other leans Independent
## Note that the code below will exclude: Independents who lean "other"; "Other" identifiers who lean "other"; and "Other that leans Independent"
linas.1$pidseven <- factor(linas.1$pid,
levels=c(1,2,3,4,5,6,7),
labels=c("SR", "R", "LR", "I", "LD", "D", "SD"))
## Coding for party: 3 levels. Note that leaners are treated as partisans. Republicans are baseline category
linas.1$pidthree<- factor(linas.1$pid,
levels=c(1,2,3,4,5,6,7, 8, 9, 12),
labels=c("Republican", "Republican", "Republican", "Ind./Other",
"Democrat", "Democrat", "Democrat", "Ind./Other",
"Ind./Other", "Ind./Other"))
table(linas.1$pidthree)
##
## Republican Ind./Other Democrat
## 236 293 471
The criminality narrative questions are based on q12 and q13. These items were split-sampled so we cannot summate them into a scale. We can consider detention and deportation separately but to do so results in loss of half the data. I’ve created a variable called endorse_narrative which pools these responses. Higher scores reflect higher endorsement of the criminality narrative.
linas.1$detain_criminal <- linas.1$q12
linas.1$deport_criminal <- linas.1$q13
#Rescale criminality such that high scores=endorsement
linas.1$endorse_narrative <- (6-linas.1$criminality)
table(linas.1$endorse_narrative)
##
## 1 2 3 4 5
## 253 230 221 185 111
This chunk of code produces latino_identity which is based on q44. High scores reflect greater identity.
## Coding for Latino identity
#Leaving scale as is
linas.1$latino_identity<-linas.1$q44
table(linas.1$latino_identity)
##
## 1 2 3 4 5
## 28 24 152 387 409
Question q42 measures beliefs about immigrant discrimination. This variable is named discrim. High scores reflect beliefs that discrimination levels are very low (i.e. denial of discrimination).
#Denial of discrimination
#[q42]: How much discrimination is there in the United States today against immigrants?
#Values: 1-5
#1 A lot
#2 Some
#3 Not much
#4 None
#5 Don't know
linas.1$discrim <- linas.1$q42
linas.1$discrim[linas.1$q42==1] <- 1 #Alot
linas.1$discrim[linas.1$q42==2] <- 2 #Some
linas.1$discrim[linas.1$q42==5] <- 3 #DK
linas.1$discrim[linas.1$q42==3] <- 4 #Not much
linas.1$discrim[linas.1$q42==4] <- 5 #None
table(linas.1$discrim)
##
## 1 2 3 4 5
## 493 326 53 94 34
Age is coded as a three-level factor variable. The name of this variable is *agecat and categorizes age as 18 to 29, 30 to 49, and greater than 49 years of age.
#table(linas.1$s2)
linas.1$agecat <- factor(linas.1$s2,
levels=c("2","3","4","5","6"),
labels=c("<30", "30-49", "30-49", ">49", ">49"))
table(linas.1$agecat)
##
## <30 30-49 >49
## 162 482 356
This chunk codes country-of-origin as: 1) raw factor by country (21 levels); 2) a 7-level factor variable coded for South American, Central America (excluding Northern Triangle), Northern Triangle, Cuba, Dominican Republic, Mexico, and Other and 3) binary coded as Mexico, not Mexico. It is highly advised to not use the 21-level factor. Either use the variable called *coforigin or MexNotMex**
linas.1$countryfactor <- factor(linas.1$s6,
levels=c("1", "2", "3", "4", "5", "6", "7", "8",
"9", "10", "11", "12", "13", "14", "15", "16",
"17", "19", "20", "21", "22"),
labels=c("Arg", "Bol", "Brz", "Chl", "Col", "CR", "Cuba",
"DR", "Ecu", "ES", "Gua", "Hon", "Mex", "Nic",
"Pan", "Par", "Pru", "Spn", "Uru", "Ven", "Oth"))
linas.1$coforigin <- factor(linas.1$s6,
levels=c("1", "2", "3", "4", "5", "6", "7", "8",
"9", "10", "11", "12", "13", "14", "15", "16",
"17", "19", "20", "21", "22"),
labels=c("SA", "SA", "SA", "SA","SA", "CA", "Cuba", "DR", "SA", "NT", "NT", "NT", "Mexico", "CA", "CA","SA",
"SA", "Other", "SA", "SA", "Other"))
table(linas.1$coforigin)
##
## SA CA Cuba DR NT Mexico Other
## 135 40 85 43 105 573 19
#Mexico/non-Mexico
linas.1$MexNotMex <- ifelse(linas.1$s6==13, 1, 0)
table(linas.1$MexNotMex)
##
## 0 1
## 427 573
The precoded variable “educat” is a good way to account for educational differences. This is a three-level factor variable recorded with the labels shown in the chunk below. This variable is called edulevel.
linas.1$edulevel <- factor(linas.1$educat,
levels=c(1,2,3),
labels=c("HS or less", "Some College", "CD and beyond"))
table(linas.1$edulevel)
##
## HS or less Some College CD and beyond
## 496 269 235
All respondents in this survey are immigrants but some have differing immigration statuses. I am creating a factor-level variable for s10 giving it value-labels to denote the status. It is the student’s responsibility to understand what these statuses mean and interpret them properly. The name of this variable is status.
linas.1$status <- factor(linas.1$s10,
levels=c("1", "2","3","4","5","6"),
labels=c("Nat", "LPR", "Visa", "Temp", "NOTA", "PNTS"))
table(linas.1$status)
##
## Nat LPR Visa Temp NOTA PNTS
## 462 262 55 101 69 51
“What year did you first arrive to live in the United States?” is how we measure time in the United States. This variable is based on q1 which is coded 1=2025, 2=2024, 101=1925. If we subtract 1 from this variable, we have an approximation of the number of years spent in the US. The name of this variable is timefrom2025.
#table(linas.1$q1)
linas.1$timefrom2025 <- linas.1$q1-1
table(linas.1$timefrom2025)
##
## 0 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
## 7 35 43 33 22 19 19 25 17 16 17 13 19 17 14 45 12 12 18 13 17 14 18 24 29 58
## 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
## 24 22 10 11 24 20 9 17 14 28 14 17 7 18 17 14 7 8 8 16 5 7 11 9 10 9
## 52 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 75 76 78 88
## 4 7 9 4 1 4 5 4 2 2 3 4 6 1 1 1 2 1 1 1 1 1 1 1 1
To record whether or not a migrant had family already in the United States when he/she arrived, I am reverse scoring q2 to create new variable called NoFamilyHere (1 if no family; 0 if family)
linas.1$NoFamilyHere <- ifelse(linas.1$q2==1, 1, 0)
table(linas.1$NoFamilyHere)
##
## 0 1
## 711 289
Anxiety about deportation are based on Tquestions q46 and 47. I wrote these questions and ideally, they are meant to be used in conjunction with one another. Some students are using 1 or both of them. The variable personal_anxiety records individual anxiety; the variable ff_anxiety records anxiety for family or friends. High scores reflect greater anxiety.
linas.1$personal_anxiety <- 5-linas.1$q46
linas.1$ff_anxiety <- 5-linas.1$q47
table(linas.1$personal_anxiety)
##
## 1 2 3 4
## 348 298 234 120
table(linas.1$ff_anxiety)
##
## 1 2 3 4
## 230 243 340 187
The criminality narrative questions are based on q12 and q13. These items were split-sampled so we cannot summate them into a scale. We can consider detention and deportation separately but to do so results in loss of half the data. I’ve created a variable called endorse_narrative which pools these responses. Higher scores reflect higher endorsement of the criminality narrative.
linas.1$detain_criminal <- linas.1$q12
linas.1$deport_criminal <- linas.1$q13
#Rescale criminality such that high scores=endorsement
linas.1$endorse_narrative <- (6-linas.1$criminality)
table(linas.1$endorse_narrative)
##
## 1 2 3 4 5
## 253 230 221 185 111
Meritocratic beliefs are based on the question q17r1 (in the codebook, it’s just listed as q17). This is a 7-point scale where higher scores denote greater endorsement of meritocratic beliefs. This variable is named meritocratic.
q17 Some people believe success in life is determined by luck or fate, not really in our control. Others believe that people can get ahead through hard work. How do you think about it? Values: 1-7 1 1 (Luck) 2 2 3 3 4 4 5 5 6 6 7 7(Hard work)
linas.1$meritocratic <- linas.1$q17r1
table(linas.1$meritocratic)
##
## 1 2 3 4 5 6 7
## 20 13 33 148 167 195 424
The variable imm_linked_fate is the measure of immigrant linked fate, which was based on q43. Higher scores reflect greater endorsement.
Do you think that what happens generally to immigrants in this country will have something to do with what happens in your life? Values: 1-5 1 Yes, a lot 2 Yes, some 3 No, not much 4 No, not at all 5 Don’t know
## Coding for immigrant linked fate: baseline category is "Not at all"
#Rescaling to put DKs at midpoint
linas.1$imm_linked_fate[linas.1$q43==1] <- 5 #A lot
linas.1$imm_linked_fate[linas.1$q43==2] <- 4 #Some
linas.1$imm_linked_fate[linas.1$q43==5] <- 3 #Don't know (non-directional response)
linas.1$imm_linked_fate[linas.1$q43==3] <- 2 #Not Much
linas.1$imm_linked_fate[linas.1$q43==4] <- 1 #Not at all
#Rescaling to put the measure on the unit interval
#linas.1$imm_linked_fate_RS<-round((linas.1$imm_linked_fate-1)/4, digits=2)
table(linas.1$imm_linked_fate)
##
## 1 2 3 4 5
## 231 210 105 336 118
This chunk of code produces immigrant_identity which is based on q45. High scores reflect greater identity.
## Coding for immigrant identity: Baseline is no identity with immigrants
#Leaving scale as is
linas.1$immigrant_identity<-linas.1$q45
table(linas.1$immigrant_identity)
##
## 1 2 3 4 5
## 38 43 235 355 329
This chunk of code produces latino_identity which is based on q44. High scores reflect greater identity.
## Coding for Latino identity
#Leaving scale as is
linas.1$latino_identity<-linas.1$q44
table(linas.1$latino_identity)
##
## 1 2 3 4 5
## 28 24 152 387 409
Denial of the existence of an anti-immigrant environment (q41) is coded as a binary variable where 1=denial of anti-immigrant sentiment and 0 is all other categories. The variable is named denial.
#[q41]: Some people have said that there seems to be a lot of anti-immigrant, and even anti-Hispanic, sentiments, policies, and attitudes surfacing in recent years. Other people have said that no such anti-immigrant environment exists today. How do you feel?
#Values: 1-4
#1 Definitely anti-Hispanic/anti-immigrant environment
#2 Somewhat anti-Hispanic/anti-immigrant environment
#3 No such anti-Hispanic or anti-immigrant environment exists
#4 Don’t know
linas.1$denial <- linas.1$q41
linas.1$denial[linas.1$q41==1] <- 0 #Definitely
linas.1$denial[linas.1$q41==2] <- 0 #Somewhat
linas.1$denial[linas.1$q41==3] <- 1 #None
linas.1$denial[linas.1$q41==4] <- 0 #Don't know
table(linas.1$denial)
##
## 0 1
## 862 138
Question q42 measures beliefs about immigrant discrimination. This variable is named discrim. High scores reflect beliefs that discrimination levels are very low (i.e. denial of discrimination).
#Denial of discrimination
#[q42]: How much discrimination is there in the United States today against immigrants?
#Values: 1-5
#1 A lot
#2 Some
#3 Not much
#4 None
#5 Don't know
linas.1$discrim <- linas.1$q42
linas.1$discrim[linas.1$q42==1] <- 1 #Alot
linas.1$discrim[linas.1$q42==2] <- 2 #Some
linas.1$discrim[linas.1$q42==5] <- 3 #DK
linas.1$discrim[linas.1$q42==3] <- 4 #Not much
linas.1$discrim[linas.1$q42==4] <- 5 #None
table(linas.1$discrim)
##
## 1 2 3 4 5
## 493 326 53 94 34
This variable is contact1 and is binary coded 1 if the respondent had contact with immigration authorities and 0 if not. This is the original q49.
#[q49]: Have you, or anybody in your household, ever been detained or taken into custody by #Immigration and Customs Enforcement (ICE), Border Patrol, or other immigration law enforcement?
#Values: 1-3
#1 Yes, this has happened within the past 12 months
#2 Yes, this has happened, but more than one year ago
#3 No, this has never happened to me or anyone in my household
linas.1$contact1<-factor(linas.1$q49,
levels=c(3,1,2),
labels=c("No", "Yes", "Yes"))
table(linas.1$contact1)
##
## No Yes
## 844 156
This is a count of the number of health-related items the survey respondent indicated “got worse” since the election of Trump. Thus is ranges from 0 (no adverse outcomes) to 6 (maximal adverse outcomes). The variable is named health_outcomes.
q29 Since Donald Trump was reelected President in November 2024: Values: 1-3 1 Gotten better 2 Stayed the same 3 Gotten worse [q29r1] Has your physical health: [q29r2] Has your mental health: [q29r3] Has the quality of your sleep: [q29r4] Has your ability to complete daily tasks: [q29r5] Has your use of alcohol or drugs: [q29r6] Have your relationships at home:
linas.1$health1 <- ifelse(linas.1$q29r1==3, 1, 0)
linas.1$health2 <- ifelse(linas.1$q29r2==3, 1, 0)
linas.1$health3 <- ifelse(linas.1$q29r3==3, 1, 0)
linas.1$health4 <- ifelse(linas.1$q29r4==3, 1, 0)
linas.1$health5 <- ifelse(linas.1$q29r5==3, 1, 0)
linas.1$health6 <- ifelse(linas.1$q29r5==3, 1, 0)
linas.1$health_outcomes <- linas.1$health1 + linas.1$health2 + linas.1$health3 + linas.1$health4 + linas.1$health5 + linas.1$health6
table(linas.1$health_outcomes)
##
## 0 1 2 3 4 5 6
## 602 152 109 61 49 8 19
q30 Do any of the following describe how you are generally feeling these days? Select all that apply. Values: 0-1 0 Unchecked 1 Checked [q30r1] Aggressive, like being ready to confront someone [q30r2] Passive, like accepting whatever happens [q30r3] Empathetic, being able to understand and share the feelings of others [q30r4] Fearful [q30r5] Anxious [q30r6] Confident [q30r7] Happy [q30r8] None of these
linas.1$aggressive <- ifelse(linas.1$q30r1==1, 1, 0)
linas.1$passive <- ifelse(linas.1$q30r2==1, 1, 0)
linas.1$empathetic <- ifelse(linas.1$q30r3==1, 1, 0)
linas.1$fearful <- ifelse(linas.1$q30r4==1, 1, 0)
linas.1$anxious <- ifelse(linas.1$q30r5==1, 1, 0)
linas.1$confident <- ifelse(linas.1$q30r6==1, 1, 0)
linas.1$happy <- ifelse(linas.1$q30r7==1, 1, 0)
linas.1$nothing <- ifelse(linas.1$q30r8==1, 1, 0)
table(linas.1$happy)
##
## 0 1
## 707 293
q6 Do you trust that federal authorities will NOT use information from federal income tax returns for the purposes of conducting deportations? Values: 1-4 1 I do not trust federal authorities at all 2 I trust federal authorities a little 3 I trust federal authorities somewhat 4 I trust federal authorities a lot
linas.1$trust_tax<- 5-linas.1$q6
table(linas.1$trust_tax)
##
## 1 2 3 4
## 111 127 110 152
Question q15 asks about the respondent’s perception that he/she can achieve the American Dream. It is coded as a binary variable such that a 1 denotes people who believe the “American Dream” is out of touch for them. The name of this variable is AD1.
q15 The term “The American Dream” can mean different things to people. No matter how you define it, do you believe that: Values: 1-4 1 You have achieved the American Dream 2 You are on your way to achieving the American Dream 3 The American Dream is out of reach for you 4 Don’t know
Question q16 asks about the respondent’s perception that others can achieve the American Dream. It is coded as a binary variable such that a 1 denotes people who believe the “American Dream” is either no longer achievable or was never achievable; 0 otherwise. The name of this variable is AD2.
q16 The term “The American Dream” can mean different things to people. No matter how you define it, do you think The American Dream: Values: 1-4 1 Is still possible for people to achieve 2 Was once possible for people to achieve, but it is not anymore 3 Was never possible 4 Don’t know
linas.1$AD1 <- ifelse(linas.1$q15==3, 1, 0)
table(linas.1$AD1)
##
## 0 1
## 838 162
linas.1$AD2 <- ifelse(linas.1$q16==2 | linas.1$q16==3, 1, 0)
table(linas.1$AD2)
##
## 0 1
## 612 388
The variable called phenotype is based on self-assess skin tone. It is coded as given in the codebook (see below) and ranges from 1 (Very light) to 5 (Very dark).
q39 Okay, now for something a little different. We are interested in how you would describe your appearance. How would you describe your skin color with 1 being very light and 5 being very dark or some number in between? Values: 1-5 1 1. Very light 2 2. Light 3 3. Medium 4 4. Dark 5 5. Very dark
linas.1$phenotype <- linas.1$q39
table(linas.1$phenotype)
##
## 1 2 3 4 5
## 107 315 492 73 13
The variable called state_laws is coded as a binary variable such that 1=beliefs that state laws are unfavorable towards immigrants and 0 otherwise.
q40 Thinking about the immigration laws specifically in your state, would you describe [pipe: STATE] policies as favorable or unfavorable towards immigrants today?
Values: 1-3 1 Favorable towards immigrants 2 Unfavorable towards immigrants 3 Don’t know
linas.1$state_laws <- ifelse(linas.1$q40==2, 1, 0)
table(linas.1$state_laws)
##
## 0 1
## 612 388
The variable called get_out is coded 1 if the respondent indicated they think they could not avoid getting deporting were they detained by immigration authorities, and 0 otherwise.
q48 Regardless of your citizenship status, if you were detained by immigration authorities and told you would be deported, do you think you could get yourself out of the situation or not?
Values: 1-3 1 Yes 2 No 3 Don’t know
linas.1$get_out <- ifelse(linas.1$q48==2, 1, 0)
table(linas.1$get_out)
##
## 0 1
## 823 177
The variable called know_ud_ff stands for “know undocumented friend family” and records whether or not the survey respondent indicating knowing an undocumented family member (including oneself) or a close friend. This is a dummy variable coded 1 if the respondent indicates they know an undocumented family member or friend and 0 otherwise. There 354 “1s” and 646 “0s”.
q63 The following question is for statistical purposes only – you can be assured this survey is confidential and your individual answers will not be seen by anyone. Do you happen to know anyone who is an undocumented immigrant? Select all that apply. Values: 0-1 0 Unchecked 1 Checked [q63r1] No, I do not know anyone who is undocumented [q63r2] Yes, I am undocumented [q63r3] Yes, one or both of my parents [q63r4] Yes, one of my siblings or other close relatives [q63r5] Yes, a close friend [q63r6] Yes, someone I work with [q63r7] Prefer not to say
linas.1$know_ud_ff[linas.1$q63r1==1 | linas.1$q63r6==1 | linas.1$q63r7==1] <- 0
linas.1$know_ud_ff[linas.1$q63r2==1 | linas.1$q63r3==1 | linas.1$q63r4==1
| linas.1$q63r5==1 ] <- 1
table(linas.1$know_ud_ff)
##
## 0 1
## 646 354
The variable tax_deport is scored from 1 (no worry at all) to 4 (worry a lot) about the government using tax information to conduct deportations.
q5 Do you worry that federal authorities will use information from federal income tax returns for the purposes of conducting deportations? Values: 1-4 1 I do not worry at all 2 I worry a little 3 I worry somewhat 4 I worry a lot
linas.1$tax_deport<-linas.1$q5
table(linas.1$tax_deport)
##
## 1 2 3 4
## 190 87 110 113
The variable called raid_proximity is coded 3 if an ICE raid occurred in the respondent’s city or if a raid occurred in a nearby city; 2 if an ICE raid is reported to have occurred in the respondent’s state, but not nearby; and 1 if the respondent reports no ICE raids in the state or responds “don’t know.”
q14 As far as you know, have there been any Immigration and Customs Enforcement (ICE) raids or operations in your area since Donald Trump became president in January 2025? Select all that apply. Values: 0-1 0 Unchecked 1 Checked [q14r1] Yes, an ICE raid or operation happened in my city. [q14r2] Yes, an ICE raid or operation happened in a nearby city. [q14r3] Yes, an ICE raid or operation has happened further away, but here in [pipe: STATE]. [q14r4] No, there have not been any ICE raids or operations in my area. [q14r5] Don’t know
linas.1$raid_proximity[linas.1$q14r1==1 | linas.1$q14r2==1] <- 3
linas.1$raid_proximity[linas.1$q14r3==1 & linas.1$q14r1==0 & linas.1$q14r2==0] <- 2
linas.1$raid_proximity[linas.1$q14r4==1 | linas.1$q14r5==1] <- 1
table(linas.1$raid_proximity)
##
## 1 2 3
## 522 120 358
The variable worse_better is coded the same as in code book (see below).
q18 Do you believe that children today in the United States will be better off financially than their parents, worse off, or about the same? Values: 1-3 1 Better off 2 About the same 3 Worse off
#table(linas.1$s2)
linas.1$worse_better <- linas.1$q18
table(linas.1$worse_better)
##
## 1 2 3
## 286 444 270
The variable AD_2024 is a 5-level variable coded 1 for “much easier”, 2 for “somewhat easier”, 3 for “don’t know”, 4 for “somewhat harder”, and 5 for “much harder”
q19 Since the 2024 election, do you think it has gotten easier or harder for people to achieve the “American Dream”? Values: 1-5 1 Much easier 2 Somewhat easier 3 Somewhat harder 4 Much harder 5 Don’t know
linas.1$AD_2024[linas.1$q19==1] <-1
linas.1$AD_2024[linas.1$q19==2] <-2
linas.1$AD_2024[linas.1$q19==3] <-4
linas.1$AD_2024[linas.1$q19==4] <-5
linas.1$AD_2024[linas.1$q19==5] <-3
table(linas.1$AD_2024)
##
## 1 2 3 4 5
## 71 121 87 277 444
linas.1$mixed_household[linas.1$q58==3] <- 0
linas.1$mixed_household[linas.1$q58==1 | linas.1$q58==2] <- 1
table(linas.1$mixed_household)
##
## 0 1
## 521 412
The variable called know_sanctuary is coded as a binary variable such that 1 denotes the respondents says their city is a Sanctuary City and 0 if the say their city is not a Sanctuary City or they say “don’t know.”
q72 As far as you know, is the city where you live now currently defined as a sanctuary city?
Values: 1-3 1 Yes, my city is a sanctuary city. 2 No, my city is not a sanctuary city. 3 Don’t know
#table(linas.1$q1)
linas.1$know_sanctuary[linas.1$q72==1] <-1
linas.1$know_sanctuary[linas.1$q72==2 | linas.1$q72==3] <-0
linas.1$know_sanctuary<- factor(linas.1$know_sanctuary,
levels=c(0,1),
labels=c("Does not know", "Does know"))
table(linas.1$know_sanctuary)
##
## Does not know Does know
## 747 251
The variable called interest_politics is reversed-coded from codebook such that a 4 denotes “very interested” and a 1 denotes “not at all interested.”
q61 Generally speaking, how interested are you in politics and public affairs? Values: 1-4 1 Very interested 2 Somewhat interested 3 Not that interested 4 Not at all interested
linas.1$interest_politics <- 5-linas.1$q61
table(linas.1$interest_politics)
##
## 1 2 3 4
## 174 233 361 232
The variable named experience_discrim is a dummy variable coded 1 if the respondent experienced discrimination and 0 if not.
Have you ever been treated unfairly or personally experienced discrimination for any of the following reasons? Select all that apply Values: 0-1 0 Unchecked 1 Checked [q56r1] Race or ethnicity [q56r2] Skin color [q56r3] Gender [q56r4] Sexuality or sexual orientation [q56r5] Immigration status [q56r6] Religion [q56r7] Accent or the way you speak [q56r8] Body size or weight [q56r9] No, none of these
linas.1$experience_discrim[linas.1$q56r1==1 | linas.1$q56r2==1 | linas.1$q56r5==1 |
linas.1$q56r7==1 | linas.1$q56r3==1 | linas.1$q56r4==1 | linas.1$q56r6==1 | linas.1$q56r8==1] <- 1
linas.1$experience_discrim[linas.1$q56r9==1] <- 0
table(linas.1$experience_discrim)
##
## 0 1
## 541 459
q59 What was your total combined household income (income from everyone in your household) in 2024 before taxes? This question is completely confidential and just used to help classify the responses, but it is very important to the research. Values: 1-13 1 Less than $20,000 2 $20,000 to $29,999 3 $30,000 to $39,999 4 $40,000 to $49,999 5 $50,000 to $59,999 6 $60,000 to $69,999 7 $70,000 to $79,999 8 $80,000 to $89,999 9 $90,000 to $99,999 10 $100,000 to $149,999 11 $150,000 to $199,999 12 $200,000 or more 13 Prefer not to say / don’t know
table(linas.1$q59)
##
## 1 2 3 4 5 6 7 8 9 10 11 12 13
## 132 103 83 88 107 56 79 61 48 91 54 16 82
linas.1$income_level[linas.1$q59 <= 4] <- "A. Low"
linas.1$income_level[linas.1$q59 >=5 & linas.1$q59 <=9] <- "B. Medium"
linas.1$income_level[linas.1$q59 >9 & linas.1$q59 <=12] <- "C. High"
table(linas.1$income_level)
##
## A. Low B. Medium C. High
## 406 351 161
alpha(linas.1 [, c("birthright", "alienenemy", "registry")])
##
## Reliability analysis
## Call: alpha(x = linas.1[, c("birthright", "alienenemy", "registry")])
##
## raw_alpha std.alpha G6(smc) average_r S/N ase mean sd median_r
## 0.84 0.85 0.79 0.65 5.5 0.0085 3.8 1.2 0.65
##
## 95% confidence boundaries
## lower alpha upper
## Feldt 0.83 0.84 0.86
## Duhachek 0.83 0.84 0.86
##
## Reliability if an item is dropped:
## raw_alpha std.alpha G6(smc) average_r S/N alpha se var.r med.r
## birthright 0.79 0.79 0.65 0.65 3.7 0.014 NA 0.65
## alienenemy 0.75 0.75 0.60 0.60 3.0 0.016 NA 0.60
## registry 0.82 0.82 0.69 0.69 4.5 0.012 NA 0.69
##
## Item statistics
## n raw.r std.r r.cor r.drop mean sd
## birthright 1000 0.87 0.87 0.78 0.71 4.0 1.3
## alienenemy 1000 0.89 0.89 0.82 0.75 3.9 1.3
## registry 1000 0.86 0.86 0.73 0.68 3.5 1.4
##
## Non missing response frequency for each item
## 1 2 3 4 5 miss
## birthright 0.07 0.11 0.13 0.12 0.56 0
## alienenemy 0.08 0.11 0.17 0.16 0.48 0
## registry 0.10 0.17 0.21 0.14 0.38 0
We computed Cronbach’s alpha for our scale and found it meets acceptable levels of reliability. The estimated \(\alpha\) is 0.85.
Next, we consider the question of what factors are associated with support or opposition to extreme immigration policy. Of particular interest here is the role that beliefs about the criminality narrative play in support or opposition to such policies. Work by Jones et al (2026) found that about 30 percent of respondents in the LINAS survey endorsed beliefs that most detainees/deportees are “serious criminals.”
While the criminality narrative is demonstrably false–numerous studies show immigrant crime rates are significantly lower than the native-born population–the narrative has been a persistent component to immigration rhetoric, even pre-dating Donald Trump. If one endorses such a narrative, is one more likely to also support the invocation of extreme immigration policy? This is the central question of my study.
Additionally, we hypothesize that partisan affiliation should be strongly related to endorsement of these policies; specifically, Republicans more than Democrats or Independents/Others should more readily support extreme policy given the importance Trump and other Republican elites touted such policies.
Additionally, we suspect that gender will play a role in support. Prior work by (cite) found that Latinas were significantly less likely to support harsh immigration enforcement compared to males. In the models below, gender is coded as dummy variable such that a “1” denotes females and “0” denotes males.
We also think attitudinal factors related to beliefs about discrimination/maltreatment of immigrants will be related to support or opposition of extreme immigration policies. Prior work by (cites) has shown that denial of the existence of discrimination is strongly related to support for strict immigration enforcement as well as other conservative policies. In the LINAS survey, respondents were asked “How much discrimination is there in the United States today against immigrants?”. Responses ranged from “none” to “a lot.” High scores on this items reflect respondents who deny discrimination against immigrants is high.
In constrast to denial of discrimination, we hypothesize that immigrant/Latino identity should be negatively associated with support for extreme policies. To measure identity, we rely on three measure: immigrant linked fate, Latino identity strength, and immigrant identity strength.
Another factor we think is negatively related to support for extreme policy is phenotype, or skin color. It is well established (cites) that individuals with darker skin report more experiences with discrimination or maltreatment. In the LINAS survey, respondents were asked to assess their skin tone on a 5-point scale ranging from “very light” skin tone to “very dark” skin tone.
Finally, we include as controls in the models, age, education, and time in the United States.
Below is a bar plot of the distribution of respondents for the dependent variable.
ggplot(linas.1, aes(x=support_draconian, y = after_stat(count/sum(count)))) +
geom_bar(fill = "lightskyblue4") + scale_y_continuous(labels = percent) +
labs(title="Make title",
y="Percent of sample",
x="Make label") +
theme_classic() +
theme(axis.text.x = element_text(size=7, angle=0, hjust=.5),
axis.ticks = element_blank(),
axis.text.y = element_text(size=8),
plot.title = element_text(size=9),
axis.title.y=element_text(size=8),
axis.title.x=element_text(size=8))
Below, we estimate a linear regression model.
reg1 <- lm(support_draconian ~ pidthree + gender + endorse_narrative + discrim + imm_linked_fate + immigrant_identity + latino_identity + phenotype + agecat + edulevel*pidthree + timefrom2025 , data=linas.1, weights=weight)
summary(reg1)
##
## Call:
## lm(formula = support_draconian ~ pidthree + gender + endorse_narrative +
## discrim + imm_linked_fate + immigrant_identity + latino_identity +
## phenotype + agecat + edulevel * pidthree + timefrom2025,
## data = linas.1, weights = weight)
##
## Weighted Residuals:
## Min 1Q Median 3Q Max
## -11.8604 -1.8115 -0.3032 1.6660 10.9656
##
## Coefficients:
## Estimate Std. Error t value
## (Intercept) 3.776813 0.718053 5.260
## pidthreeInd./Other -0.822702 0.343307 -2.396
## pidthreeDemocrat -1.368078 0.333105 -4.107
## genderFemale -0.140218 0.178274 -0.787
## endorse_narrative 0.844169 0.071325 11.836
## discrim 0.624772 0.086479 7.225
## imm_linked_fate 0.131414 0.067013 1.961
## immigrant_identity -0.123349 0.105900 -1.165
## latino_identity -0.359020 0.115103 -3.119
## phenotype -0.402448 0.107622 -3.739
## agecat30-49 -0.147359 0.264079 -0.558
## agecat>49 -0.424504 0.302304 -1.404
## edulevelSome College 1.632589 0.537389 3.038
## edulevelCD and beyond 1.798845 0.403791 4.455
## timefrom2025 -0.005417 0.006129 -0.884
## pidthreeInd./Other:edulevelSome College -1.222407 0.672156 -1.819
## pidthreeDemocrat:edulevelSome College -1.596687 0.619086 -2.579
## pidthreeInd./Other:edulevelCD and beyond -0.776492 0.608579 -1.276
## pidthreeDemocrat:edulevelCD and beyond -1.416009 0.529054 -2.676
## Pr(>|t|)
## (Intercept) 0.00000017709430 ***
## pidthreeInd./Other 0.016743 *
## pidthreeDemocrat 0.00004341888458 ***
## genderFemale 0.431747
## endorse_narrative < 0.0000000000000002 ***
## discrim 0.00000000000101 ***
## imm_linked_fate 0.050159 .
## immigrant_identity 0.244399
## latino_identity 0.001867 **
## phenotype 0.000195 ***
## agecat30-49 0.576963
## agecat>49 0.160567
## edulevelSome College 0.002445 **
## edulevelCD and beyond 0.00000935995826 ***
## timefrom2025 0.377020
## pidthreeInd./Other:edulevelSome College 0.069272 .
## pidthreeDemocrat:edulevelSome College 0.010051 *
## pidthreeInd./Other:edulevelCD and beyond 0.202290
## pidthreeDemocrat:edulevelCD and beyond 0.007564 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.752 on 980 degrees of freedom
## (1 observation deleted due to missingness)
## Multiple R-squared: 0.3954, Adjusted R-squared: 0.3843
## F-statistic: 35.61 on 18 and 980 DF, p-value: < 0.00000000000000022
Plot for gender identification shows no relationship.
plot_model(reg1, type = "pred",
terms = c("gender"), ci.lvl = .95,
title="There are no gender differences in the endorsement of support for extreme immigration policy", axis.title=c("Gender", "Predicted level-of-endorsement"), colors=c("skyblue4")) + geom_line(color="skyblue4", linetype=3, linewidth=.4) +
#ylim(0,4) +
theme_classic() +
theme(axis.text.x = element_text(size=10, angle=0, hjust=.5),
axis.ticks = element_blank())
Plot for party identification shows massive relationship.
plot_model(reg1, type = "pred",
terms = c("pidthree"), ci.lvl = .95,
title="Republicans support extreme policy at rates significantly \nhigher than Democrats or Independent/Other identifiers", axis.title=c("Party affiliation", "Predicted level-of-endorsement"), colors=c("skyblue4")) + geom_line(color="skyblue4", linetype=3, linewidth=.4) +
#ylim(0,4) +
theme_classic() +
theme(axis.text.x = element_text(size=10, angle=0, hjust=.5),
axis.ticks = element_blank())
Denial of discrimination
plot_model(reg1, type = "pred",
terms = c("discrim"), ci.lvl = .95,
title="High discrimination deniers support extreme policy at rates significantly \nhigher than low discrimination deniers", axis.title=c("Denial of discrimination (1=low denial; 5=high denial)", "Predicted level-of-endorsement"), colors=c("skyblue4")) + geom_line(color="skyblue4", linetype=3, linewidth=.4) +
#ylim(0,4) +
theme_classic() +
theme(axis.text.x = element_text(size=10, angle=0, hjust=.5),
axis.ticks = element_blank())
Latino identity
plot_model(reg1, type = "pred",
terms = c("latino_identity"), ci.lvl = .95,
title="High Latino identifiers support extreme policy at rates significantly \nlower than low Latino identifiers", axis.title=c("Strength-of-identity (1=low identity; 5=high identity)", "Predicted level-of-endorsement"), colors=c("skyblue4")) + geom_line(color="skyblue4", linetype=3, linewidth=.4) +
#ylim(0,4) +
theme_classic() +
theme(axis.text.x = element_text(size=10, angle=0, hjust=.5),
axis.ticks = element_blank())
Phenotype
plot_model(reg1, type = "pred",
terms = c("phenotype"), ci.lvl = .95,
title="Make title", axis.title=c("Make label", "Predicted level-of-endorsement"), colors=c("skyblue4")) + geom_line(color="skyblue4", linetype=3, linewidth=.4) +
#ylim(0,4) +
theme_classic() +
theme(axis.text.x = element_text(size=10, angle=0, hjust=.5),
axis.ticks = element_blank())
Endorse narrative
plot_model(reg1, type = "pred",
terms = c("endorse_narrative"), ci.lvl = .95,
title="Endorsement of the immigrant criminality narrative strongly \npredicts support for extreme policy", axis.title=c("Level-of-endorsement", "Predicted level-of-endorsement"), colors=c("skyblue4")) + geom_line(color="skyblue4", linetype=3, linewidth=.4) +
#ylim(0,4) +
theme_classic() +
theme(axis.text.x = element_text(size=10, angle=0, hjust=.5),
axis.ticks = element_blank())
plot_model(reg1, type="pred",
terms=c("pidthree", "edulevel"), ci.lvl=.95,
title="Partisanship moderates the relationship between education levels and \nsupport for extreme immigration policy", axis.title=c("Level-of-endorsement", "Predicted level-of-endorsement"), colors=c("skyblue4", "coral2", "cornflowerblue")) + geom_line(colors=c("skyblue4","coral2", "cornflowerblue"), linetype=3, linewidth=.4) +
theme_classic() +
theme(axis.text.x = element_text(size=10, angle=0, hjust=.5),
legend.title=element_blank(),
axis.ticks = element_blank())