Я пытаюсь вычислить корреляцию между двумя распределениями (назовем их ростом и весом). Я знаю, как вычислить простую корреляцию Пирсона, используя частотный подход: вычислить ковариацию, вычислить ковариационную матрицу, а затем разделить ее на sd(x)×sd(y)
Стандартную формулу ковариации можно рассчитать как: Формула ковариации 1
или через коэффициент корреляции 𝜌 как:
Формула ковариации 2
Первый вопрос, который я Вопрос в том, уместно ли рассчитывать среднее значение, как в частотном методе. Было бы правильно получить два отдельных апостериорных показателя (для веса и роста), а затем рассчитать ковариацию и корреляцию, используя первое уравнение?
Правильно ли это? можно ли рассматривать ρ как апостериорный? Должен ли я сначала получить апостериорные данные о росте и весе, а затем уже рассчитывать ρ?
Мой код >
Я пытаюсь использовать PyMC, но в моей модели я могу получить оценку только для одного дистрибутива. Априорный и апостериорный ρ различаются, но я не понимаю, почему.
Я пытаюсь вычислить корреляцию между двумя распределениями (назовем их ростом и весом). Я знаю, как вычислить простую корреляцию Пирсона, используя частотный подход: вычислить ковариацию, вычислить ковариационную матрицу, а затем разделить ее на sd(x)×sd(y) Стандартную формулу ковариации можно рассчитать как: Формула ковариации 1 или через коэффициент корреляции 𝜌 как: Формула ковариации 2 [list] [*] Первый вопрос, который я Вопрос в том, уместно ли рассчитывать среднее значение, как в частотном методе. Было бы правильно получить два отдельных апостериорных показателя (для веса и роста), а затем рассчитать ковариацию и корреляцию, используя первое уравнение?
[*]Правильно ли это? можно ли рассматривать ρ как апостериорный? Должен ли я сначала получить апостериорные данные о росте и весе, а затем уже рассчитывать ρ?
[/list] [b]Мой код[/b] > Я пытаюсь использовать PyMC, но в моей модели я могу получить оценку только для одного дистрибутива. Априорный и апостериорный ρ различаются, но я не понимаю, почему. [code]high_values = df['high'].values #no NaN weight_values = df["weight"].values
with pm.Model() as model: rho_transformed = pm.Beta("rho_transformed", alpha=2, beta=2) rho = pm.Deterministic("rho", rho_transformed * 2 - 1) # Map back to [-1, 1]
# Observed data observed_data = np.column_stack([high_values, weight_values]).astype("float64")
mu_value = pt.as_tensor_variable([mu_high, mu_weight]) #thats a very strange thing observed = pm.MvNormal("observed", mu=mu_value, cov=cov_matrix, observed=observed_data) #multivariate normal distribution
# Run the sampler trace = pm.sample(1000, return_inferencedata=True) #Markov Chain Monte Carlo (MCMC) sampling to draw samples from the posterior distribution of each parameter. [/code] Вы можете вызвать Prior_samples.prior['rho'] и трассировку.posterior['rho'], чтобы проверить, отличаются ли они:)
Я пытаюсь рассчитать корреляцию между двумя распределениями (давайте назовем их ростом и весом). Я знаю, как вычислить простую корреляцию Пирсона, используя частый подход: вычислить ковариацию, вычислить ковариационную матрицу, а затем разделить ее...
Я пытаюсь рассчитать корреляцию между двумя распределениями (давайте назовем их ростом и весом). Я знаю, как вычислить простую корреляцию Пирсона, используя частый подход: вычислить ковариацию, вычислить ковариационную матрицу, а затем разделить ее...
Я смотрел на различные веб -сайты, которые, кажется, имеют реализации расстояния Вассерштейна в дискретном случае, однако ни один из них не имеет непрерывного случая? distance = scipy.stats.wasserstein_distance(actual_data,...
В настоящее время функция scipy.signal.correlate SciPy поддерживает вычисление взаимной корреляции между двумя одномерными массивами. Однако прямой поддержки кросс-корреляции по осям между двумя двумерными массивами одинаковой формы не существует....
В настоящее время функция scipy.signal.correlate SciPy поддерживает вычисление взаимной корреляции между двумя одномерными массивами. Однако прямой поддержки кросс-корреляции по осям между двумя двумерными массивами одинаковой формы не существует....