Fairness and Naturalness
October 30, 2024
[Simulation 조건]
1) 10 by 10 바둑판에 bead 1000개를 랜덤하게 또는 균일하게 분포시킨다.
2) 한칸씩 옮겨가며 bead 1개를 다른 곳으로 옮긴다. (인접한 곳 또는 전체 중 한 곳)
3) 이 작업을 1000번 반복한다.
[1] "완전평등 지니계수: 0"
[1] "높은 불평등 지니계수: 0.63"
[1] "현실 지니계수: 0.33"
netlogo를 통해 시뮬레이션을 하려고 한다.
아래 아래 코드는 다음과 같다. 새로운 기능을 넣어 코드를 수정하라.
모델에 대한 SETUP은 500명의 에이전트를 생성한 다음 각 에이전트에게 100달러를 제공합니다. 매 틱마다 가능하다면 다른 에이전트에게 1달러를 줍니다. 돈이 없으면 아무것도 하지 않습니다. 각 에이전트는 또한 자신의 부와 동일한 x 좌표로 이동합니다.
여기에 옵션을 추가하자
옵션1:처음에 500명의 에이젼트에게 최소 1달라, 최대 100달라까지 정규 분포로 제공하고 매틱마다 다른 에이전트에게 1달러를 준다. 돈이 없으면 아무것도 하지 않는다. 에이전트는 자신의 부와 동일한 x 좌표롤 이동한다. 만약 돈이 없으면 x좌표는 0이다.
옵션2: 처음에 500명에게 100달라러를 균등하게 제공한다. 매틱마다 가능하면 다른 에이젼트에게 1달러를 준다. 그런데 만약 내가 가장 많은 달러를 가지고 있다면 나는 2달러를 다른 에이전트에게 준다. 돈이 없으면 아무것도 하지 않는다. 각 에이전트는 자신의 부와 동일한 x 좌표로 이동한다.만약 돈이 없으면 x좌표는 0이다.
turtles-own [ wealth ]
globals [
option
max-wealth
]
to setup
clear-all
set option user-choice
create-turtles 500 [
set shape "circle"
set color green
set size 2
if option = 1 [
set wealth random-normal 50 25
set wealth max (list 0 (min (list wealth 100)))
]
if option = 2 [
set wealth 100
]
setxy (min (list wealth max-pxcor)) random-ycor
]
set max-wealth max [wealth] of turtles
reset-ticks
end
to go
if option = 1 [
ask turtles with [ wealth > 0 ] [ transact-option-1 ]
]
if option = 2 [
set max-wealth max [wealth] of turtles
ask turtles with [ wealth > 0 ] [ transact-option-2 ]
]
ask turtles [
set wealth max (list 0 wealth) ; Ensure wealth doesn't go below 0
set xcor min (list wealth max-pxcor)
]
tick
end
to transact-option-1
set wealth wealth - 1
ask one-of other turtles [ set wealth wealth + 1 ]
end
to transact-option-2
ifelse wealth = max-wealth [
set wealth wealth - 2
ask n-of 2 other turtles [ set wealth wealth + 1 ]
] [
set wealth wealth - 1
ask one-of other turtles [ set wealth wealth + 1 ]
]
end
to-report user-choice
let choice user-input "Choose option (1 or 2): "
while [not member? choice ["1" "2"]] [
set choice user-input "Invalid input. Choose option (1 or 2): "
]
report read-from-string choice
end
to-report top-10-pct-wealth
report sum [ wealth ] of max-n-of (count turtles * 0.10) turtles [ wealth ]
end
to-report bottom-50-pct-wealth
report sum [ wealth ] of min-n-of (count turtles * 0.50) turtles [ wealth ]
end
이 NetLogo 모델은 도시의 경제적 불평등을 시뮬레이션하는 것으로, 부유층과 빈곤층의 거주 패턴과 직업 위치를 모델링합니다. 주요 특징은 다음과 같습니다:
1. 부유층(rich)과 빈곤층(poor)이 있으며, 일자리(jobs)도 존재합니다.
2. 각 패치(지역)는 quality(질)와 price(가격) 속성을 가집니다.
3. 사람들은 자신의 효용(utility)을 최대화하는 위치를 선택합니다.
4. 부유층은 quality를, 빈곤층은 낮은 price를 선호합니다.
5. 사람들이 이주하면 주변 지역의 quality와 price에 영향을 줍니다.
6. 직업은 가격이 높은 지역에 생성되는 경향이 있습니다.
- 조정 변수:
number-of-tests: 사람들이 거주하고 싶은 위치 선택 시 고려하는 지역 수
residents-per-job: 새 직업이 생성되기 위한 필요한 거주자 수
max-jobs: 최대 직업 수
poor-price-priority: 빈곤층의 가격 중요도
rich-quality-priority: 부유층의 질 중요도
poor-per-step: 매 단계 추가되는 빈곤층 수
rich-per-step: 매 단계 추가되는 부유층 수
death-rate: 매 단계 사라지는 사람들 수
- Travel Distance 그래프:
부유층과 빈곤층이 가장 가까운 직업 위치까지 이동해야 하는 평균 거리를 시간에 따라 보여줍니다. (부자들은 직장과 좀 더 가까운 곳에 살고, 가난한 사람들은 좀 더 먼 곳에 산다. )
- 2D 맵:
현재 선택된 뷰 모드에 따라 지역의 특성을 색상으로 표시합니다.
빨간 점: 직장 위치 파란 점: 빈곤층 거주지 분홍 점: 부유층 거주지
of jobs: 현재 직장의 수
population: 총 인구 수
poor pop: 빈곤층 인구 수
rich pop: 부유층 인구 수
도시의 경제적 불평등과 거주 패턴을 모델링 : NetLogo
학벌이나.. 인종집단에 대한 평판이나.. 이런게. 노동시장에 미치는 영향을 주제로 netlogo 시뮬레이션 예제 코드와 interface 를 어떻게 만들어야 하는지 자세히 말해줘.
네, 학벌이나 인종 집단에 대한 평판이 노동시장에 미치는 영향을 시뮬레이션하는 NetLogo 코드 예제를 만들어 드리겠습니다. 이 모델은 고용주의 편견, 노동자의 기술 수준, 그리고 시간에 따른 고용 패턴의 변화를 시뮬레이션합니다.
이 코드는 다음과 같은 특징을 가지고 있습니다:
1. 두 그룹의 노동자(A와 B)가 있으며, 각자 다른 색상으로 표시됩니다.
2. 각 노동자는 0에서 1 사이의 임의의 기술 수준을 가집니다.
3. 고용주들은 0에서 1 사이의 편견 수준을 가지며, 이는 B 그룹에 대한 차별 정도를 나타냅니다.
4. 고용 과정에서 고용주는 노동자의 기술 수준에서 편견에 따른 페널티를 뺀 값이 가장 높은 노동자를 선택합니다.
5. 시뮬레이션이 진행됨에 따라 각 그룹의 고용률이 계산되어 표시됩니다.
이 모델을 실행하면, 시간이 지남에 따라 편견이 고용 패턴에 어떤 영향을 미치는지 관찰할 수 있습니다. 고용주의 평균 편견 수준, 각 그룹의 평균 기술 수준 등을 조정하는 슬라이더를 추가하여 다양한 시나리오를 테스트할 수 있습니다.
이 시뮬레이션을 통해 학생들은 노동 시장에서의 차별과 그 영향을 시각적으로 이해할 수 있으며, 이는 김영철 교수의 연구 주제와도 밀접하게 연관됩니다.
어느날 A군은 한 강연회에서 페어트레이딩 관련 내용을 듣습니다.
웹페이지로 한번 구현해볼까 하고 생각해봅니다.
유투브로 python streamlit 강의 기초를 들어봅니다.
코딩 프로그램을 설치합니다.
- Python, VS code
- Cursor
AI에게 우선 내용을 설명하고
KOSPI와 S&P 500 지수를 이용하여 상관관계 보는
**파이썬 코드** 또는 **Rshiny 코드** 를 만들어달라고 함
** 그것을 streamlit 또는 shinyapps 에 게시할 수 있는 방법을 요청
버그 수정 ~~
AI에게 두 지수를 이용하여 Pair trading 하는 코드 작성 요청
버그 수정 ~~
아이디어 구현까지 걸린 시간 2일 ~~
경제학과 3, 4학년 학생들이 수요, 공급, 환율 등 응용미시이론 교과내용에 맞는 더 쉬운 예제를 만들어줘
globals [
exchange-rate ; 환율 (자국 화폐 / 외국 화폐)
domestic-price ; 국내 상품 가격
foreign-price ; 외국 상품 가격
]
breed [consumers consumer]
breed [producers producer]
consumers-own [
demand ; 소비자의 수요량
]
producers-own [
supply ; 생산자의 공급량
]
to setup
clear-all
set-default-shape consumers "person"
set-default-shape producers "factory"
create-consumers 50 [
set color blue
setxy random-xcor random-ycor
set demand 10 + random 10 ; 초기 수요량 설정
]
create-producers 20 [
set color red
setxy random-xcor random-ycor
set supply 20 + random 20 ; 초기 공급량 설정
]
set exchange-rate 1.0 ; 초기 환율 설정
set domestic-price 100 ; 초기 국내 가격 설정
set foreign-price 100 ; 초기 외국 가격 설정
reset-ticks
end
to go
update-demand
update-supply
update-prices
update-exchange-rate
tick
end
to update-demand
ask consumers [
; 가격이 오르면 수요 감소, 내리면 수요 증가
set demand demand * (1 - 0.01 * (domestic-price - 100) / 100)
; 환율이 오르면(자국 화폐 가치 하락) 수요 감소
set demand demand * (1 - 0.005 * (exchange-rate - 1) / 1)
if demand < 0 [ set demand 0 ]
]
end
to update-supply
ask producers [
; 가격이 오르면 공급 증가, 내리면 공급 감소
set supply supply * (1 + 0.01 * (domestic-price - 100) / 100)
; 환율이 오르면(자국 화폐 가치 하락) 공급 증가
set supply supply * (1 + 0.005 * (exchange-rate - 1) / 1)
if supply < 0 [ set supply 0 ]
]
end
to update-prices
let total-demand sum [demand] of consumers
let total-supply sum [supply] of producers
; 수요와 공급에 따른 가격 조정
ifelse total-demand > total-supply
[ set domestic-price domestic-price * 1.01 ] ; 수요 초과시 가격 상승
[ set domestic-price domestic-price * 0.99 ] ; 공급 초과시 가격 하락
; 외국 가격은 랜덤하게 변동 (외부 요인)
set foreign-price foreign-price * (1 + random-normal 0 0.01)
end
to update-exchange-rate
; 국내 가격과 외국 가격의 비율에 따라 환율 조정
set exchange-rate exchange-rate * (foreign-price / domestic-price)
; 약간의 랜덤 변동 추가 (외부 요인)
set exchange-rate exchange-rate * (1 + random-normal 0 0.005)
end
이 모델을 위한 인터페이스 설정:
2개의 펜 추가: “total-demand”, “total-supply”
Plot update commands:
plot sum [demand] of consumers
plot sum [supply] of producers
이 모델의 주요 특징과 경제 개념:
수요와 공급: 소비자의 수요와 생산자의 공급이 가격에 따라 변동합니다. 이는 기본적인 수요-공급 법칙을 보여줍니다.
가격 메커니즘: 총수요와 총공급의 차이에 따라 국내 가격이 조정됩니다. 이는 시장 청산 과정을 나타냅니다.
환율: 국내 가격과 외국 가격의 상대적 변화에 따라 환율이 조정됩니다. 이는 구매력 평가설(PPP)의 개념을 간단히 구현한 것입니다.
국제 무역: 환율 변동이 수요와 공급에 영향을 미치는 과정을 통해 국제 무역의 기본 메커니즘을 보여줍니다.
외부 충격: 외국 가격과 환율에 랜덤 요소를 추가하여 외부 경제 충격을 시뮬레이션합니다.
이 모델을 통해 학생들은 다음과 같은 응용미시이론의 핵심 개념들을 실제로 관찰하고 이해할 수 있습니다:
학생들은 이 모델을 실행하면서 다양한 시나리오(예: 수요 충격, 공급 충격, 환율 충격 등)를 만들어 그 결과를 관찰하고 분석할 수 있습니다.