Фраза «аннотация парной регрессии» представляет собой комбинацию терминов, связанных с визуализацией данных и регрессионным анализом. На английском языке это означает создание матрицы диаграммы рассеяния с линиями регрессии и аннотированными точками данных. Ниже приведены несколько методов и примеры кода, которые можно использовать для достижения этой цели:
Метод 1: парный график Seaborn
Seaborn — популярная библиотека визуализации данных на Python. Он предоставляет удобную функцию под названием pairplot, которую можно использовать для создания матрицы диаграммы рассеяния. Указав для параметра kindзначение «reg», вы можете добавить на график линии регрессии. Однако аннотирование точек данных требует некоторых дополнительных шагов. Вот пример:
import seaborn as sns
# Load a dataset
iris = sns.load_dataset("iris")
# Create a pairplot with regression lines
sns.pairplot(iris, kind="reg")
# Annotate the data points
for i, j in zip(*np.triu_indices_from(g.axes, 1)):
g.axes[i, j].annotate(
f"R = {g.axes[i, j].collections[0].get_label().split('=')[1]:.2f}",
(0.5, 0.85),
xycoords="axes fraction",
ha="center")
Метод 2: матрица диаграммы рассеяния Matplotlib
Если вы предпочитаете использовать Matplotlib, вы можете создать матрицу диаграммы рассеяния и добавить линии регрессии вручную. Вот пример:
import matplotlib.pyplot as plt
import seaborn as sns
# Load a dataset
iris = sns.load_dataset("iris")
# Create a scatterplot matrix
sns.set( )
sns.pairplot(iris, kind="scatter", diag_kind="kde")
# Add regression lines
for ax in g.axes.flat:
ax.plot([ax.get_xlim()[0], ax.get_xlim()[1]], [ax.get_ylim()[0], ax.get_ylim()[1]], c=".3", ls="--")
# Annotate the data points
for i, j in zip(*np.triu_indices_from(g.axes, 1)):
g.axes[i, j].annotate(
f"R = {g.axes[i, j].collections[0].get_label().split('=')[1]:.2f}",
(0.5, 0.85),
xycoords="axes fraction",
ha="center")
Метод 3: Plotly матрица диаграммы рассеяния
Plotly — еще одна мощная библиотека визуализации данных, которая предоставляет интерактивную матрицу диаграммы рассеяния. Вы можете добавлять линии регрессии и аннотации, используя функции Plotly. Вот пример:
import plotly.graph_objects as go
import plotly.figure_factory as ff
import pandas as pd
# Load a dataset
iris = sns.load_dataset("iris")
# Create a scatterplot matrix
fig = ff.create_scatterplotmatrix(iris, diag="histogram", index="species", height=800, width=800)
# Add regression lines
for i in range(len(fig["layout"]["xaxis"])):
for j in range(len(fig["layout"]["yaxis"])):
if i != j:
fig.add_trace(
go.Scatter(
x=iris.iloc[:, i],
y=iris.iloc[:, j],
mode="markers",
marker=dict(color=iris["species"].cat.codes, colorscale="Viridis"),
showlegend=False
),
row=i + 1,
col=j + 1
)
# Annotate the data points
for i in range(len(fig["layout"]["xaxis"])):
for j in range(len(fig["layout"]["yaxis"])):
if i != j:
fig.add_annotation(
x=np.mean(iris.iloc[:, i]),
y=np.mean(iris.iloc[:, j]),
text=f"R = {np.corrcoef(iris.iloc[:, i], iris.iloc[:, j])[0, 1]:.2f}",
showarrow=False,
row=i + 1,
col=j + 1
)
fig.show()
Эти примеры демонстрируют различные подходы к созданию матриц диаграмм рассеяния с линиями регрессии и аннотированными точками данных. Вы можете выбрать метод, который лучше всего соответствует вашим потребностям.