Final_Project_Version1

No preview image

1 collaborator

Default-person Sarah Reibstein (Author)

Tags

(This model has yet to be categorized with any tags)
Model group EECS 372-Spring 2011 | Visible to everyone | Changeable by the author
Model was written in NetLogo 4.1.3 • Viewed 150 times • Downloaded 18 times • Run 2 times
Download the 'Final_Project_Version1' modelDownload this modelEmbed this model

Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)


WHAT IS IT?

This section could give a general understanding of what the model is trying to show or explain.

HOW IT WORKS

This section could explain what rules the agents use to create the overall behavior of the model.

HOW TO USE IT

This section could explain how to use the model, including a description of each of the items in the interface tab.

THINGS TO NOTICE

This section could give some ideas of things for the user to notice while running the model.

THINGS TO TRY

This section could give some ideas of things for the user to try to do (move sliders, switches, etc.) with the model.

EXTENDING THE MODEL

This section could give some ideas of things to add or change in the procedures tab to make the model more complicated, detailed, accurate, etc.

NETLOGO FEATURES

This section could point out any especially interesting or unusual features of NetLogo that the model makes use of, particularly in the Procedures tab. It might also point out places where workarounds were needed because of missing features.

RELATED MODELS

This section could give the names of models in the NetLogo Models Library or elsewhere which are of related interest.

CREDITS AND REFERENCES

This section could contain a reference to the model's URL on the web if it has one, as well as any other necessary credits or references.

Comments and Questions

Please start the discussion about this model! (You'll first need to log in.)

Click to Run Model

turtles-own [
  income  ;; monthly income
  goal-size  ;; how much money a turtle would like to accumulate
  goal-time  ;; how long a turtle has to accumulate the money
  reputation  ;; an informal credit-rating
  attainability ;; how difficult a turtle's goal is to attain
]

patches-own [
  club?  ;; is there a savings group here?
  club-type  ;; if group, what type
  monthly-contribution  ;; how much individuals put in monthly
  members  ;; how many members are in the group
  money  ;; how much money is in the pot
  desired-members  ;; how many members the group can hold
]

to setup
  ca
  create-turtles population
  set-default-shape turtles "person"
  ask turtles [
    setxy random-xcor random-ycor
    set income random-normal mean-income 10 
    set goal-size random-normal mean-goal-size 10
    set goal-time random-normal mean-goal-time 1
    set reputation 0
  ] 
  ask patches [
    set club? false
    set club-type ""
    set monthly-contribution ""
    set members 0
    set money 0
  ]
end 

to go
  create-club
  maybe-join
  ;; if a club has been created and then abandoned, update variables to reflect this
  ask patches with [club? = true] [
    if count turtles-here = 0 [
      set pcolor black
      set club? false
      set club-type ""
    set monthly-contribution ""
    set members 0
    set money 0 
    ]] 
end 

;; turtle selects type of club based on his goal attainabilty

to create-club 
    ask one-of turtles [
      calculate-attainability
    ifelse attainability < rosca-threshold [
      create-saving-up] [
      ifelse attainability < asca-threshold [
        create-rosca] [
        create-asca]
      ]]
end 

;; determine what percentage of income would have to be saved each month to reach goal

to calculate-attainability
  set attainability goal-size / (income * goal-time)
end 

to create-saving-up ;; turle procedure
  ask patch-here [
    set club? true
    set club-type "saving-up"
    set pcolor yellow
    ;; set monthly contribution such that expected payout in goal-time months = goal-size
    set monthly-contribution [goal-size] of one-of turtles-here / ([goal-time] of one-of turtles-here * (1 - risk))
    set desired-members [goal-time] of one-of turtles-here
  ]
end 

to create-rosca ;; turle procedure
  ask patch-here [
    set club? true
    set club-type "rosca"
    set pcolor green
    ;; set monthly contribution such that expected payout in goal-time months = goal-size
    set monthly-contribution [goal-size] of one-of turtles-here / ([goal-time] of one-of turtles-here * (1 - risk))
    set desired-members [goal-time] of one-of turtles-here
  ]
end 

to create-asca ;; turle procedure
  ask patch-here [
    set club? true
    set club-type "asca"
    set pcolor blue
    ;; set monthly contribution such that expected payout in goal-time months = goal-size
    set monthly-contribution [goal-size] of one-of turtles-here / ([goal-time] of one-of turtles-here * (1 - risk) * (1 + interest))
    set desired-members [goal-time] of one-of turtles-here
  ]
end 

to maybe-join 
  ask patches [
    set members count turtles-here]  ;; update members variable
  ifelse any? patches with [(club? = true) and (members < desired-members)] [
  let open-club one-of patches with [(club? = true) and (members < desired-members)]  ;; assign an open club
    ask one-of turtles [
      if (([desired-members] of open-club) * ([monthly-contribution] of open-club) * (1 - risk) >= goal-size) and ([desired-members] of open-club >= goal-time) [
      setxy [pxcor] of open-club [pycor] of open-club  
      ]]] ;; turtles decide whether they'd like to join the open club- is the payoff high enough and the time frame quick enough?
  [stop] ;; if all clubs are closed, stop
end 
      

There is only one version of this model, created over 13 years ago by Sarah Reibstein.

Attached files

No files

This model does not have any ancestors.

This model does not have any descendants.