Как доказать, что процессы мартингалов в Python? - PullRequest
1 голос
/ 08 апреля 2020

Пусть S_n - простая случайная прогулка. Мне нужно сделать симуляцию в Python, доказав, что следующие процессы - мартингалы

  1. S_n, когда случайное блуждание симметрично c
  2. S_n -n (pq)
  3. (S_n) ^ 2 - 2 (pq) S_n + (n (pq)) ^ 2 - n (1-p + q)

например, мой код для второго процесса выглядит например:

def step(p):
    a = np.random.rand()
    if a < p:
        return 1
    else:
        return -1

p=np.random.rand()
print(p)
def runMartingale(ile):
    proces=0
    profit=0
    win=0
    for i in range(ile):
        result = step(p)
        if result == 1:
            profit += 1
            win += 1
            proces += profit-i*(p-1+p)
        else:
            profit -= 1
            proces += profit-i*(p-1+p)
    return(proces, win)

def simulateMartingale(n, ile):
    averageProces, averageWin = 0, 0
    for _ in range(n):
        proces, win = runMartingale(ile)
        averageProces += proces
        averageWin += win
    averageProces /= n
    averageWin /= n
    return(averageProces, averageWin)

Возвращает среднее количество выигрышей для n процессов с простыми шагами и «средняя прибыль» - средние различия между значениями. Но, насколько я знаю, «средства должны быть одинаковыми и не зависеть от количества шагов». Но это не в этом коде. И я не знаю, правильно ли я рассчитал, чтобы доказать, что эти процессы мартингалы.

...