Сохранение значений For L oop в R с последующим построением графика - PullRequest
0 голосов
/ 16 марта 2020

Я пытаюсь создать al oop, в котором хранятся значения для xstar, x1[t], x2[t], x[t], a[t], and b[t]. Моя цель в конечном итоге построить эти значения и посмотреть, сходятся ли x1 или x2 или приближаются к xstar. Я изо всех сил стараюсь настроить его так, чтобы мой код сохранял каждое соответствующее значение таким образом, чтобы я мог построить его. Я также изо всех сил пытаюсь установить его так, чтобы a [t] и b [t] корректировались в конце каждой итерации. Ниже приведена последовательность воспроизведения для модели, в случае, если интуиция может помочь проиллюстрировать то, что я пытаюсь сделать.

Не стесняйтесь переходить к коду * Модель моделируется между долгим - живой суд, который рассматривает и разрешает споры, и набор причинителей вреда, которые определяют уровень усилий. Последовательность игры следующая:

  1. Суд устанавливает стандарт халатности. Этот стандарт халатности априори установлен законом, но он разделяет первоначальные убеждения [a_t, b_t] ϵ [0,1] своей позиции.

  2. N граждане рисуют wi. Каждый человек др aws свой собственный, предельные затраты усилий / ухода, из равномерного распределения на [0,10].

  3. Гражданин i принимает решение об оптимальном уровне усилий, xi ϵ [0,1]. Это решение зависит от их стоимости (wi) и текущего состояния установленного закона [a, b].

  4. Авария происходит с некоторой вероятностью и приводит к судебному спору. Вероятность аварии является убывающей функцией уровня усилия, xi. Когда происходит авария, существует ущерб в денежном выражении, A. Я предполагаю, что когда происходит авария, то же самое происходит с судом / спором.

  5. Суд рассматривает спор и оценивает уровень усилия. Рассматривая дело, суд узнает, удовлетворяет ли этот уровень усилий идеальному стандарту небрежности. Этот процесс является бесплатным.

  6. Суд выносит решение по узкому или широкому решению по делу. Допустимый порог и [a_t, b_t] обновляются до [a_ (t + 1), b_ (t + 1), либо a_ (t + 1), либо b_ (t + 1) = x_i

  7. Повторить, начиная с этапа 3 *

period = c(1:5)   ## Number of periods in the iteration of the loop.
reset1 = {
  a = c() #lower bound of belief in xstar 
  b = c() #upper bound of belief in xstar
  A = 5 ## monetary value of harm from 

  maxw = 3
  minw = 0
  wbar = (maxw+minw)/2  ##average cost

  xstar = 1 - wbar/(2*A) 
  xstar

  x1 = c()
  x2 = c()
  x  = c()

  w1 = runif(1,min = 0, max = 3)
  w2 = runif(1,min = 0, max = 3)

if(t==1){a[t]=0.3;b[t]=0.95}

}

for (t in 1:length(period)) {

  x[t] = 0 

  ##Tortfeasors problem: pick the x that will minimize your cost --- piecewise optimization. First object is if (x<=a), second is if (a<x<b), and third is when (x>=b).

x1[t] = min(c(1-(w1/(2*A)),((2+b[t])-sqrt(b[t]^2-2*b[t]+1+3*(w1/A)*(b[t]-a[t])))/3,b[t])) 

x2[t] = min(c(1-(w2/(2*A)),((2+b[t])-sqrt(b[t]^2-2*b[t]+1+3*(w2/A)*(b[t]-a[t])))/3,b[t]))

  proba1 = function(x1){(x1[t]-1)^2}  #probability of accident only given driver1's effort level.
  proba1(x1)
  probn1 = 1 - proba1(x1)      #probability of not getting in an accident given driver1's effort level
  probn1

  proba2 = function(x2){(x2[t]-1)^2}  
  proba2(x2)
  probn2= 1 - proba2(x2)
  probn2

  while (x[t]!=x1[t] & x[t]!=x2[t]) {
        x[t] = sample(c(x1[t],x2[t], 0,0),size = 1, replace = TRUE, prob = c(proba1(x1),proba2(x2), probn1, probn2)) 
        ###the x is selected based on which ever x resulted in an accident   
  }
  show(x[t])   

  rulings = if(x[t]>=b[t]) {
                ruling = print("Not Negligent")              
  } else if(x[t]<=a[t]) {
                ruling = print("Negligent")               
  } else if(x[t]>a[t] & x[t]<b[t]) {
       ruling = if(x[t]<xstar){"guilty"
  } else if(x[t]>=xstar){"not guilty"}
    show(ruling)}  


  ##legal adjustment and updating of beliefs in ambiguous region after discovery of liability
  if(ruling == "guilty") {a[t+1] = x[t]; b[t+1] = b[t]} 
  else if (ruling == "not guilty") {b[t+1] = x[t]; a[t+1]=a[t]} 
  else {a[t+1]=a[t]; b[t+1] = b[t];print("beliefs unchanged")}       
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...