Interpersonal Channels Innovation Diffusion
Model was written in NetLogo 5.2.0
•
Viewed 334 times
•
Downloaded 22 times
•
Run 0 times
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
Comments and Questions
Please start the discussion about this model!
(You'll first need to log in.)
Click to Run Model
;; INTERPERSONAL CHANNELS AND INNOVATION DIFFUSION - FIRST VERSION 11.06.2015 ;; this model catch the opinion formation among economic agents toward an incremental innovation as influenced by the social interplay with other agents ;; agents are persuaded to adopt if their opinion is positive and exceeds a certin treshold ;; the main drivers of persuation are the opinion of the other agents the subject interact with ;; the model reproduce the web of relations among a real local productive system of agricultural firms ;; the model is calibrated to obtain a percentage of adopters similar to the one observed in real data ;; the aim is to model policy actions able to make more speedy and effcient the innovation spread (in terms of positive opinion formation) turtles-own [node-id ;;this is tha name of each turtle persuation ;; this indicates the level of persuation of each actors threshold ;; this is the minimun proportion of the agent neighbor necessary to persuade the agent towards the novelty opinion ;; this is the agent's level of acceptance towards the novelty edu ;; this is the agent's level of education novelty? ;; this is a boolean: false if the persuation is lower than the threshold and true if the persuation is equal or greather than the threshold ] influence ;; this is the influence exerted by neighbors on the agent as calculated with the procedure to pass-information susceptible? ;; this is a boolean: false if the agent is not suceptible to neighbor influence (its persuation does not variate during the process ;; true if the agent is suceptible to neighbor influence (its persuation variates during the process) n-strenght ;; is the amount of persuation exerted by the neighbors on the agent injection ;; this is 1 if the agents is used as and injection point and o otherwise out-pressure ;; the pressure the agent exert on the others out-pressure2 ;; the pressure the agent exert on the others proof in-link out-link ] links-own [strenght] globals [links-list] to setup clear-all set-default-shape turtles "circle" import-attributes layout-circle (sort turtles) (max-pxcor - 1) import-links select-agent reset-ticks end ;; This procedure reads in a files that contains node-specific attributes ;; including an unique identification number to import-attributes ;; This opens the file, so we can use it. file-open "ATTRIBUTES_107.txt" ;; Read in all the data in the file ;; data on the line is in this order: ;; node-id attribute1 attribute2 while [not file-at-end?] [ ;; this reads a single line into a three-item list let items read-from-string (word "[" file-read-line "]") crt 1 [ set node-id item 0 items set injection 0 ;; item 1 items set threshold item 2 items set opinion item 3 items set edu item 4 items set color green set novelty? false set influence 0 set susceptible? true set n-strenght 0 set persuation 0 set out-pressure 0 set in-link [] set out-link [] ] ] file-close end to select-agent ask turtle me [ set injection 1 set susceptible? false set persuation 1 set novelty? true set color red] end ;; The following procedure (between **START** and **END**) is replicated from ;; Network Import Example, by Uri Wilensky (model ID 2214) -- NetLogo ;; link: http://modelingcommons.org/browse/one_model/2214#model_tabs_browse_procedures ;; **START** ;; This procedure reads in a file that contains all the links ;; The file is simply 3 columns separated by spaces. In this ;; example, the links are directed. The first column contains ;; the node-id of the node originating the link. The second ;; column the node-id of the node on the other end of the link. ;; The third column is the strength of the link. to import-links ;; This opens the file, so we can use it. file-open "KN_COOP_HOMOPHILY_107.txt" ;; Read in all the data in the file while [not file-at-end?] [ ;; this reads a single line into a three-item list let items read-from-string (word "[" file-read-line "]") ask get-node (item 0 items) [ create-link-to get-node (item 1 items) [ set strenght item 2 items ] ] ] file-close end ;; **END** to pass-information ask patches [ let Rsk random-float 0.5 ifelse random-float 1 > Rsk [set pcolor gray - 3 ] ;; randomly distribute Risk - gray means that half revenues are achieved by niche producers [set pcolor black ] ] ask turtles [ if pcolor = gray - 3 [ if susceptible? = true [ let neighbors-persuation (map [[persuation] of ?] sort in-link-neighbors) ;; the list of persuation of my ORDERED neighbors let links-strenght (map [[strenght] of ?] sort my-in-links) ;; the list of my ORDERED in-links strenght let neighbors-number count in-link-neighbors let neighbors-strenght (map * neighbors-persuation links-strenght) set n-strenght sum neighbors-strenght if neighbors-number > 0 [ set influence n-strenght / neighbors-number if influence > 1 [set influence 1]] set persuation (persuation + influence) * edu / 21.5 ;; edu / 21 is the factor that catchs the effect of agent's educatnio on the complex of information passed by his neighbors if persuation > 1 [set persuation 1] if disappoint [ let Rsk random-float 0.5 let var (14 + random 14) if ticks = var [ if random-float 1 > Rsk [ let var1 (random 1 + random 3) let var2 (random-float -0.5 + random-float 0.5) ask n-of var1 turtles [set persuation var2] ] ] ] ] ] ] end to persuade if ticks mod 4 = 0 [ ask turtles [ ifelse persuation >= threshold [set novelty? true] [set novelty? false] ifelse novelty? = true [set color red ] [set color green] let out-links-strenght (map [[strenght] of ?] sort my-out-links) ;; the list of my ORDERED out-links strenght let my-strenght (map [? * persuation] out-links-strenght) set out-pressure sum my-strenght let out-links-strenght2 [strenght] of my-in-links ;; the list of my out-links strenght let my-strenght2 (map [? * persuation] out-links-strenght2) set out-pressure2 sum my-strenght2 ] ] end to-report get-node [id] report one-of turtles with [node-id = id] end to go pass-information persuade set-current-plot "Agent Persuaded" plot agent-persuaded2 tick end to-report agent-persuaded report count turtles with [novelty? = true] end to-report agent-persuaded2 report count turtles with [color = red] end to-report average-strenght report mean [n-strenght] of turtles end to-report average-influence report mean [influence] of turtles end to-report average-persuation report mean [persuation] of turtles end to-report persuaded report map [[novelty?] of ? ] sort turtles end to-report pressure report map [[n-strenght] of ?] sort turtles end to-report attitude report map [[persuation] of ?] sort turtles end to-report my-pressure report map [[out-pressure] of ?] sort turtles end to-report my-pressure2 report map [[out-pressure2] of ?] sort turtles end
There is only one version of this model, created over 5 years ago by ANTONIO LOPOLITO.
Attached files
File | Type | Description | Last updated | |
---|---|---|---|---|
Interpersonal Channels Innovation Diffusion.png | preview | Preview for 'Interpersonal Channels Innovation Diffusion' | over 5 years ago, by ANTONIO LOPOLITO | Download |
This model does not have any ancestors.
This model does not have any descendants.