Проверка степенного закона с использованием точечной диаграммы XY

#python #pandas #plot #probability #finance

#питон #панды #сюжет #вероятность #финансы

Вопрос:

У меня есть ежедневные цены на сырую нефть, загруженные от Фреда, около 10 тыс. наблюдений, некоторые значения пусты(код очищает их). Я считаю, что не могу поделиться здесь листами excel, поэтому я просто дам вам скриншот того, как выглядят данные:

введите описание изображения здесь

Я вычисляю различия и возвраты и очищаю данные, но я как бы застрял.

Вот как выглядит код, чтобы вы начали:

 import pandas as pd import numpy as np import matplotlib.pyplot as plt    data = pd.read_csv("DCOILWTICO.csv")  nan_value = float("NaN")  data.replace("", nan_value, inplace=True) data.replace(".", nan_value, inplace=True)  data['Previous'] = data['DCOILWTICO'].shift(1)  data.dropna(subset=['Previous'],inplace=True)  data.replace("", nan_value, inplace=True) data.replace(".", nan_value, inplace=True)  data['DCOILWTICO'] = data['DCOILWTICO'].astype(float)  data['Previous'] = data['Previous'].astype(float)  data['Diff'] = data['DCOILWTICO'] - data['Previous']  data['Return'] = (data['DCOILWTICO'] - data['Previous'])/data['Previous']  

Здесь возникает вопрос: я пытаюсь скопировать график ниже.(который, как я полагаю, был сгенерирован с помощью Mathematica) Самое сложное — это уметь правильно создавать контейнеры. Глядя на график, кажется, что там около 200 ящиков. По оси x указаны возвраты, а по оси y-частоты(которые были разделены).

введите описание изображения здесь

Ответ №1:

Я думаю, вы спрашиваете, как сделать ячейки с равным расстоянием в пространстве журналов. Если это так, то используйте np.geomspace функцию (геометрическое пространство), а не np.linspace (линейное пространство).

 plt.figure() bins = np.geomspace(data['returns'].min(), data['returns'].max(), 200) plt.hist(data['returns'], bins = bins)  

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

1. Полезная функция! Но все еще не на 100% ясна процедура перехода от этого к сюжету.

2. Код после редактирования возвращает массив, в котором первое значение-min, а последнее значение-max, а остальные 198 записей-NAN.

3. то есть: эта строка, ячейки = np.geomspace(данные[‘Возврат’].min(), данные[‘Возврат’].макс(), 200)

4. К сожалению, у меня нет данных. Вы можете указать любые значения, которые вы хотите для минимальных и максимальных значений. Так что попробуйте 0,02 для минимума и 0,2 для максимума

5. Функции max и min, похоже, действительно работают. Они по отдельности возвращают: 0,5308641975308642 и -3,019661387220098