

import json
import numpy as np
from scipy.stats import norm
import matplotlib.pyplot as plt
# Loading 'diffs.json'
with open('diffs.json', 'r') as file:
diffs = json.load(file)
# Log-transform the data
log_diffs = np.log(diffs)
# Calculate the center as median, it fits better than the mean
center = np.median(log_diffs)
# Center the log diffs
log_diffs_centered = log_diffs - center
# Function to fit a real CDF
def fit_cdf_(data):
sorted_data = np.sort(data)
n = len(data)
cdf = [(x, (i + 1) / n) for i, x in enumerate(sorted_data)]
return cdf
# Fitting real CDF
real_cdf = fit_cdf_(log_diffs_centered)
# Fitting normal CDF, forcing mean to be 0
variance = np.mean(log_diffs_centered**2) # Variance
sigma = np.sqrt(variance) # Standard deviation
# Extract CDF x-values
cdf_xs = np.array([x for x, _ in real_cdf])
# Compute the normal CDF for these x-values
normal_cdf = [(x, norm.cdf(x, loc=0, scale=sigma)) for x in cdf_xs]
# Plot real CDF and normal CDF
real_cdf_ys = [p for _, p in real_cdf]
normal_cdf_ys = [p for _, p in normal_cdf]
plt.figure(figsize=(8, 6))
plt.plot(cdf_xs, real_cdf_ys, label='Real CDF', linestyle='-')
plt.plot(cdf_xs, normal_cdf_ys, label='Normal CDF', linestyle='--')
plt.xscale('log') # Logarithmic x-axis scale
plt.yscale('log') # Logarithmic x-axis scale
plt.ylim(0.5, 1) # y-axis domain
plt.xlim(0.001, 2) # x-axis domain
plt.xlabel('x (log scale)')
plt.ylabel('Cumulative Probability')
plt.title('Real vs Normal CDF')
plt.legend()
x_ticks = [0.001, 0.005, 0.01, 0.05, 0.1, 0.5, 1, 2]
plt.xticks(x_ticks, [str(label) for label in x_ticks])
y_ticks = [0.5, 0.6, 0.7, 0.8, 0.9, 1]
plt.yticks(y_ticks, [str(label) for label in y_ticks])
plt.grid(True)
plt.show()Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
UPD. кстати, в фильме предел риска — как раз описана ситуация, когда хвосты вдруг стали толстеть
Самое интересное, что класс обобщенных гиперболических распределений — это класс распределений нормальных случайных величин со случайными средним и дисперсией и разными классами этих распределений. И в этом классе «лежит» почти все из распределений в справочниках по теорверу: и Хи-квадрат, и Лаплас и многое другое, кроме Парето.