#for-loop #statistics #time-series #simulation #random-walk
#для цикла #Статистика #временные ряды #Симуляция #случайное блуждание
Вопрос:
Я пытаюсь смоделировать следующее уравнение случайного блуждания:
Однако, когда я запускаю свой код, я не могу добавить результаты. Я получаю следующую ошибку:
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