Справочная таблица для нормального преобразования счета - PullRequest
0 голосов
/ 25 марта 2019

Я должен сгенерировать нормальное преобразование счета.Это можно сделать с помощью quantile_transformer .Но я использую STAN (Pystan) в этом проекте и поэтому должен экспортировать справочную таблицу.Я не могу найти какой-либо метод извлечения справочной таблицы из quantile_transformer.

Кто-нибудь знает, как я могу извлечь его или сгенерировать с помощью другого пакета?

Сейчас я использую свой собственный,базовый, реализация.Можно увидеть ниже, если то, о чем я говорю, неясно.

Любой вклад будет оценен!

Собственная реализация, обратите внимание на два выброса на третьем графике:

# Import
import numpy as np
import matplotlib.pyplot as plt

# Nested fucntion
def histogram(data, title):
    plt.figure()
    plt.hist(data, bins=50, edgecolor='black')
    plt.grid()
    plt.title(title)

# Synthetic data distribution
data = np.random.laplace(0,1,(1000,1))

# Normal distributed data used for make table
data_n = np.random.normal(0,1,(1000000,1))

# Determine quantiles of both data sets
quan = np.linspace(0,100, 10000)
val = np.percentile(data, q=quan)
val_n = np.percentile(data_n, q=quan)

# Plot distributions
histogram(data, 'Synthetic data')
histogram(data_n, 'Normal distribution used for look-up table')

# Transform from data to normal distribution
synth2norm = np.zeros((len(data)))
for i in range(0, len(data)):
    idx = np.argmin(abs(val-data[i]))
    synth2norm[i] = val_n[idx]

histogram(synth2norm, 'Tranform synthetic to normal')

# Transform sampled normal to synthetic data distribution
sample = np.random.normal(0,1,(500,1))
sample2synth = np.zeros((len(sample)))
for i in range(0, len(sample)):
    idx = np.argmin(abs(val_n-sample[i]))
    sample2synth[i] = val[idx]

histogram(sample2synth, 'Sample from STAN (normal) to synthetic data distribution')
...