LINAS Project

This RMD file is critical as it contains recodes of a number of independent variables that will be used by us.

Accessing LINAS 2025 data

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)

Extreme immigration policy

Support for punitive policies

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

Independent variables

Below I have recoded a number of potential independent variables.

Gender

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

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

Criminality narrative around deportation and detention (q12 and q13)

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

Latino identity (q44)

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 discrimination (q42)

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 (s2)

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

Country-of-origin variable (s6)

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

Education variables (educat)

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

Immigration status (s10)

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

Time in the US variable (q1)

“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

Existing family in US? (q2)

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 (q46 and q47)

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

Criminality narrative around deportation and detention (q12 and q13)

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 (q17)

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

Immigrant linked fate (q43)

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

Immigrant identity (q45)

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

Latino identity (q44)

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 anti-immigrant environment (q41)

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

Denial of discrimination (q42)

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

Contact with Immigration law enforcement (q49)

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

Health outcomes and Trump (q29)

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

Emotional outcomes

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

Trust tax

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

Achieving the American Dream (q15 and q16)

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

Self-assessed phenotype (skin color; q39)

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

State political climate (q40)

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

Avoid deportation (q48)

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

Know someone who is undocumented? (q63)

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

Taxes and deportation (q5)

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

ICE raids in your area (q14)

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

Economic well-being (q18)

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

American dream since the 2024 election (q19)

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

Mixed status household

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

Sanctuary city awareness (q72)

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

Interest in politics (q61)

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

Experienced discrimination (q56)

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

Income

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

Reliability assessment:

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.

ANALYSIS:

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

Using plot_model

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())