Матрица корреляции участков с использованием панд

Было бы более полезно, если бы вы представили более полный рабочий (или в этом случае нерабочий) пример.

Я попробовал следующее:

import numpy as np
import matplotlib.pyplot as plt

x = np.random.randn(1000)

fig = plt.figure()
ax = fig.add_subplot(111)
n, bins, rectangles = ax.hist(x, 50, density=True)
fig.canvas.draw()
plt.show()

Это будет действительно выводит гистограмму гистограммы с осью y, которая идет от [0,1].

Далее, согласно документации hist (т.е. ax.hist? из ipython), я думаю, что сумма тоже отлично:

*normed*:
If *True*, the first element of the return tuple will
be the counts normalized to form a probability density, i.e.,
``n/(len(x)*dbin)``.  In a probability density, the integral of
the histogram should be 1; you can verify that with a
trapezoidal integration of the probability density function::

    pdf, bins, patches = ax.hist(...)
    print np.sum(pdf * np.diff(bins))

Предоставляя эту попытку после приведенных выше команд:

np.sum(n * np.diff(bins))

Я получаю возвращаемое значение 1.0, как и ожидалось. Помните, что normed=True не означает, что сумма значения на каждом баре будет равна единице, а интеграл по барам равен единице. В моем случае np.sum(n) вернулся приблизительно 7.2767.

147
задан Fabian Rost 27 March 2019 в 16:30
поделиться

2 ответа

графика statmodels также высказывает хорошее мнение корреляционной матрицы

import statsmodels.api as sm
import matplotlib.pyplot as plt

corr = dataframe.corr()
sm.graphics.plot_corr(corr, xnames=list(corr.columns))
plt.show()
1
ответ дан 23 November 2019 в 20:24
поделиться

Для полноты простое решение я знаю с seaborn по состоянию на конец 2019, если Вы используете Jupyter:

import seaborn as sns
sns.heatmap(dataframe.corr())
0
ответ дан 23 November 2019 в 20:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: