Моделирование для цикла

#for-loop #statistics #time-series #simulation #random-walk

#для цикла #Статистика #временные ряды #Симуляция #случайное блуждание

Вопрос:

Я пытаюсь смоделировать следующее уравнение случайного блуждания:

xt = xt-1   σεt

Однако, когда я запускаю свой код, я не могу добавить результаты. Я получаю следующую ошибку:

first_term = results[i] Ошибка типа: объект ‘NoneType’ не поддается подписке

Есть ли альтернативный подход к этому?

 import numpy as np
import pandas as pd

def simulation(x0, T, sigma, p):
    results = [x0]
    prob_e = [p, (1-p)]
    values_e = [1, -1]
    for i in range(T):
        first_term = results[i]
        error = np.random.choice(values_e, 1, prob_e)
        second_term = sigma * error
        result = first_term   second_term
        results = results.append(result)
    return results

print(simulation(10, 120, 0.6, 0.5))
 

Комментарии:

1. Отладчики — замечательная вещь. Отсутствие их освещения во вводных курсах является серьезной ошибкой, ИМХО.

Ответ №1:

В последней строке цикла это должно быть просто results.append(result) , а не results = results.append(result) . results является объектом списка, и append функция изменяет этот объект, возвращая None