Immigration-Legislation
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
WHAT IS IT?
The central question in this inquiry is to understand how shifts in public opinion on immigration policies occur at the local level.
Some literature in political science suggests there is a close relationship between the number of immigrants in an area and the policy preferences citizens hold. For instance, the power-threat hypothesis (Blalock 1967; Key 1949) stipulates that the size of a local immigrant group is linked to real (instead of perceived) economic and political competition between immigrants and native citizens. As a result, one should expect native citizens to support restrictive immigration policies as the number of immigrants in their community increases. While some find support for the power-threat hypothesis, others find support for contact theory. Most scholars, however, find null effects. Newman points to Allport’s (1954) work suggesting the countervailing forces between both intergroup great and contact theory. For this reason, scholars such as Newman (2013) draw from additional theories which may stipulate conditions under which inflows of immigration can lead to hostility or friendliness. The “defended neighborhoods” hypothesis (Green, Strolovitch, and Wong 1998) stipulates that the impact of increased intergroup diversity in an area is conditional upon the level of homogeneity in the area to begin with. Therefore, this study will look at initial contexts of the number of immigrants and citizens in an area, as well as growth rates in order to determine how shifts in immigration policy may occur.
Prior empirical research has tried to asses this relationship between changes in levels of immigration at local levels and opinions on immigration legislation based on survey and contextual data. Using both surveys on public opinion on immigration policy and cultural threat, as well as contextual data on the composition of local communities, Newman found that initial community compositions moderate the relationship between Hispanic growth and levels of cultural threat. Others have looked at the interactions between immigration growth and state citizen ideology and its relationship to the policies that have been passed in state legislatures (Hero and Preuhs 2007; Provine and Chavez 2009, Monogan 2013, Zingher 2014). The downside to using survey and contextual data is that it gives us little insight into when changes in context may occur nor how localized interactions between citizens and immigrants may shape opinions on immigration legislation. Agent based models (ABM) are useful tools to simulate these interactions to give us a deeper understanding of how interactions between immigrants and citizens, along with prior contexts, may shape opinions about immigration policy. ABMs have been used to understand many important questions in political science. For instance, Robert Axelrod used used agent-based models in political science to understand how political disagreement shape neighborhood dynamics (1997). Others have also looked how political disagreement and social structures can still breed heterogeneous neighborhoods, instead of homogeneous ones with those who disagree getting pushed out (Huckfeldt et al. 2004). To the best of my knowledge, however, this tool has not been leveraged to understand this question.
HOW IT WORKS
Citizens are white and immigrants are pink. Immigrants are a proportion of the total population of citizens.
Citizens have different preferences for the ideological make-up of their communities based on a utility function. The components of this calculus includes: 1) preferred levels of immigration and 2) preferred immigration policy. These factors can vary in their levels of importance through the sliders on the interface. Every tick, citizens evaluate how happy they are in the community in which they reside. If they are unhappy, they will move to another community, with the hopes of being a better fit. The ideal-point of the preferred leveled of immigration is an updating function of the proportion of immgrants to citizens from past iterations.
The immigrants also have a utility function. It is based on the the ideal-point of preferred proportion of immigrants to the community. The ideal-point for the immigrants is 0.49, because immigrants will want to be as large of a proportion of the population as possible. as for preferred immigration policy, they will ideally want the most liberal (closest to zero) policies as possible.
When the utility functions are one, the agent is happy.
Once all citizens are happy, the model stops and records how many ticks it took to achieve happiness. I choose citizens because they are the ones who have the ability to change the administration (by voting) and to move around, because theoretically citizens have more resources than immigrants.
HOW TO USE IT
NUM-CITIES determines how many communities there are in the world.
IMMIGRANTS-COMMUNITY-PREFERENCE is the weighted level of importance the c ideological bent of the administration is to the citizen. It is one piece of the total utility function which the citizen uses to evaluate how happy she is in her community.
CITIZEN-IDEOLOGY is the weighted level of importance the other citizen’s ideologies are to the citizen in her community. It is one piece of the total utility function which the citizen uses to evaluate how happy she is in her community. NEWSLETTER-SLANT is the weighted level of importance the ideological bias of the community newsletter is to the citizen. It is one piece of the total utility function which the citizen uses to evaluate how happy she is in her community.
MONEY-TO-MOVE is the amount of money required for the citizen to have if she wishes to move. POP-LAG is related to how often (in terms of ticks) a citizen evaluates the ideological leanings of her fellow citizens.
NEWSLETTER-LAG is related to how often the newsletter changes its ideological bias, which is based on the number of red versus blue citizens in the community at that time.
CLEAR-OUTPUT the model saves how many ticks it takes for every citizen to be happy across different simulations of the model. This button clears the numbers that are displayed in this output.
THINGS TO NOTICE
How does changing the different lags influence how long it takes for everyone to be happy?
How does adding money influence how the model runs?
What happens when citizens assign different levels of importance to the ideology of the citizens, the community newsletter, and the administration’s ideology?
THINGS TO TRY
Try varying the weights, lags, amount of money, desire to move, and number of cities and citizens!
EXTENDING THE MODEL
An extended model could include: • Intersectional preferences (i.e. religious and ideological preferences) • Heterogeneous preferences among each citizen • Economic shocks to the communities • Gaining enough money to eventually move
NETLOGO FEATURES
When placing the newsletters under the communities in the world, I had to “ask newsletters” to create the newsletters and place them on the community first. Then, I had to close that bracket and open a new bracket that asked newsletters to face forward and move down one. This allowed them to line up under the community newsletter. If these were all under the first “ask newsletters”, the newsletters would end up moving in random directions.
Because of rounding, not all the citizens will have a happiness of 1. For that reason, I made happiness be 0.99. For my purposes, it is accurate enough for 1, because the outcomes are the same (e.g. if all the citizens want to be in a fully red or blue community, that will happen even with a happiness level of 0.99 instead of 1).
RELATED MODELS
http://sites.lsa.umich.edu/scottepage/home/complex-adaptive-systems/
CREDITS AND REFERENCES
Amanda Jadidi d’Urso with unmeasurable support from Moira Zellner!
Comments and Questions
globals [ margins ] breed [immigrants immigrant] breed [citizens citizen] breed [cities city] turtles-own [ reality-community my-city ] citizens-own [ xlist initial-preference preferences ;citizens have immigration level preferences happiness ;citizens have a level of happiness alphai ;alpha level of preferred immigration alphap ;alpha level of preferred policy sum-alphas ;the sum of the alpha coefficient utility ;the utility function of all the weighted alphas ] immigrants-own [ ipreferences ;citizens have immigration level preferences ihappiness ;citizens have a level of happiness ialphai ;alpha level of preferred immigration ialphap ;alpha level of real policy isum-alphas ;the sum of the alpha coefficient iutility ;the utility function of all the weighted alphas ] cities-own [ legislation ] to setup clear-plot clear-patches clear-turtles reset-ticks set margins 2 ask patches[set pcolor grey - 2] setup-cities setup-citizens setup-immigrants ask turtles [update-reality-community ] ask cities [ set legislation random-float 1 set color scale-color violet legislation 1 0 ] output-print "new trial" output-type "citizen-community-preference " output-print citizen-community-preference output-type "citizen-policy-preference " output-print citizen-policy-preference output-type "%-immigrants " output-print %-immigrants output-print "initial legislation" ask cities [ output-show [legislation] of cities with [( who = [who] of myself) ] ] ask citizens [ set xlist (sentence reality-community reality-community) let first-mean mean xlist set xlist replace-item 0 xlist first-mean set initial-preference reality-community ] end to go if ticks mod 4 = 0 ; hold elections once every four iterations [ hold-elections ] update-utility tick ; go once per iteration output-type "ticks " output-print ticks ask cities [ output-show [legislation] of cities with [( who = [who] of myself) ] ] ask turtles [update-reality-community] ask citizens [update-preferences] if sum [happiness] of citizens / 100 >= 0.99 ; and sum [ihappiness] of immigrants / num-immigrants >= 0.99 [output-type "all happy ticks " output-print ticks output-print "distribution of citizen preferences" ask cities [ output-show sort-by < [preferences] of citizens with [ (my-city = [my-city] of myself) ] ] output-print "end" output-print " "] end to setup-cities create-cities num-cities ask cities [ ;set legislation random-float 1 set my-city self set shape "house" ] let spacing floor (world-width - 2 * margins)/(count cities) ask cities [ setxy (min-pxcor + margins + spacing * (who + 0.5))(max-pycor) ] end to setup-citizens create-citizens 100 ask citizens [ set color white set shape "person" set my-city one-of cities move-to my-city set heading 0 while [count turtles-here > 1 and ycor > min-pycor] ; has the citizens line up on top of one another [fd -1] ] ask citizens [ set alphap random-float citizen-community-preference ; sets the alpha of the weight of the city's population ideology to be a function of the slider set alphai random-float citizen-policy-preference ; sets the alpha of the weight of the city's newsletters ideology to be a function of the slider set sum-alphas alphai + alphap ; sums the alphas and normalize them to all equal 1 set alphap ( alphap / sum-alphas ) set alphai ( alphai / sum-alphas ) ] end to setup-immigrants create-immigrants (100 * %-immigrants) ask immigrants [ set color pink + 1 set shape "immigrant" set my-city one-of cities move-to my-city set heading 0 while [count turtles-here > 1 and ycor > min-pycor ] [fd -1] ] ask immigrants [ set ialphai random-float immigrants-community-preference set ialphap random-float immigrants-community-preference ; sets the alpha of the weight of the city's population ideology to be a function of the slider set isum-alphas ialphai + ialphap ; sums the alphas and normalize them to all equal 1 set ialphap ( ialphap / isum-alphas ) set ialphai ( ialphai / isum-alphas ) ] end to update-reality-community let count-immigrants count immigrants with [ (my-city = [my-city] of myself) ] let count-total ( count turtles with [ (my-city = [my-city] of myself)] ) - 1 set reality-community (count-immigrants / count-total) end to update-preferences set preferences mean xlist set xlist (sentence preferences reality-community) end to check-happiness ask citizens [ set happiness ( alphai * (1 - ( preferences - reality-community)^ 2) ) + ( alphap * (1 - ( preferences - ( [legislation] of my-city ) )^ 2) ) ;reality-policy ] ask immigrants [ set ihappiness (ialphai * (1 - (0.49 - reality-community)^ 2)) + (ialphap * (1 - ([legislation] of my-city) ^ 2 ) ) ] end to update-utility ask citizens [if happiness < 1 [set my-city one-of cities move-to my-city set heading 0 while [count turtles-here > 1 and ycor > min-pycor] [fd -1] update-reality-community check-happiness ] ] ask immigrants [if ihappiness < 1 [set my-city one-of cities move-to my-city set heading 0 while [count turtles-here > 1 and ycor > min-pycor] [fd -1] update-reality-community check-happiness ] ] end to-report check-happiness-city [local-legislation] ifelse ( preferences = local-legislation) ; if the preference of the citizen is the same as the city ideology, report a 1, if not 0 [report 1] [report 0] end to hold-elections ask cities [ set legislation reality-community set color scale-color violet legislation 1 0] end
There is only one version of this model, created about 8 years ago by Amanda Durso.
Attached files
No files
This model does not have any ancestors.
This model does not have any descendants.