DEEPNOTE
GENERACIÓN DE DATOS CON CORRELACIÓN NO LINEAL
Código:
x = np.linspace(-100, 100, 100)
y = x**2
y += np.random.normal(0, 1000, x.size)
sns.scatterplot(x=x, y=y)
np.corrcoef(x, y)
Descripción del código línea por línea:
- x = np.linspace(-100, 100, 100): Genera un conjunto de 100 valores uniformemente espaciados entre -100 y 100.
- y = x**2: Calcula el cuadrado de cada valor en x, creando una relación cuadrática entre x y y.
- y += np.random.normal(0, 1000, x.size): Agrega ruido aleatorio de distribución normal con media 0 y desviación estándar 1000 a y.
- sns.scatterplot(x=x, y=y): Grafica un diagrama de dispersión de los valores de x y y usando Seaborn.
- np.corrcoef(x, y): Calcula la matriz de correlación entre x e y.
Descripción del resultado:
- Gráfica: Un gráfico de dispersión que muestra una relación cuadrática con dispersión.
Matriz de correlación: [[ 1. 0.0497257 ]
[ 0.0497257 1. ]]
- La correlación lineal es muy baja (~0.05), lo que indica que la relación no es lineal.
GENERACIÓN DE DATOS CON CORRELACIÓN NO LINEAL MÁS PRONUNCIADA
Código:
x = np.linspace(-100, 100, 100)
y = x**3
y += np.random.normal(0, 1000, x.size)
sns.scatterplot(x=x, y=y)
np.corrcoef(x, y)
Descripción del código línea por línea:
- x = np.linspace(-100, 100, 100): Genera un conjunto de 100 valores uniformemente espaciados entre -100 y 100.
- y = x**3: Calcula el cubo de cada valor en x, creando una relación cúbica entre x y y.
- y += np.random.normal(0, 1000, x.size): Agrega ruido aleatorio de distribución normal con media 0 y desviación estándar 1000 a y.
- sns.scatterplot(x=x, y=y): Grafica un diagrama de dispersión de los valores de x y y usando Seaborn.
- np.corrcoef(x, y): Calcula la matriz de correlación entre x e y.
Descripción del resultado:
- Gráfica: Un gráfico de dispersión que muestra una relación cúbica con dispersión.
Matriz de correlación: [[1. 0.9167859 ]
[0.9167859 1. ]]
- La correlación lineal es alta (~0.92), aunque sigue siendo una relación no lineal.
RELACIÓN ENTRE VARIABLES CATEGÓRICAS Y NUMÉRICAS
Código:
sns.scatterplot(
data=penguins_df,
x='bill_length_mm',
y='bill_depth_mm'
)
Descripción del código línea por línea:
- sns.scatterplot(...): Genera un diagrama de dispersión a partir del DataFrame penguins_df, usando las columnas bill_length_mm y bill_depth_mm como ejes.
Descripción del resultado:
- Gráfica: Un gráfico de dispersión que muestra la relación entre la longitud del pico (bill_length_mm) y la profundidad del pico (bill_depth_mm) de los datos de pingüinos.
CORRELACIÓN ENTRE MÚLTIPLES CONJUNTOS DE DATOS
Código:
np.random.seed(42)
x_1 = np.linspace(0, 100, 100)
y_1 = 0.8 * x_1 + 3 + np.random.uniform(-2, 2, size=x_1.size)
x_2 = np.linspace(0, 100, 100)
y_2 = 6 * x_2 + np.random.uniform(0, 60, size=x_2.size)
sns.scatterplot(x=x_1, y=y_1)
sns.scatterplot(x=x_2, y=y_2)
plt.legend(labels=['1', '2'])
print(np.corrcoef(x_1, y_1))
print(np.corrcoef(x_2, y_2))
Descripción del código línea por línea:
- np.random.seed(42): Fija la semilla para generar números aleatorios reproducibles.
- x_1 = np.linspace(0, 100, 100): Genera valores uniformemente espaciados para la variable x_1.
- y_1 = 0.8 * x_1 + 3 + np.random.uniform(-2, 2, size=x_1.size): Genera una relación lineal para y_1 con pendiente 0.8 y un pequeño ruido.
- x_2 = np.linspace(0, 100, 100): Genera valores uniformemente espaciados para la variable x_2.
- y_2 = 6 * x_2 + np.random.uniform(0, 60, size=x_2.size): Genera una relación lineal para y_2 con pendiente 6 y ruido aleatorio.
- sns.scatterplot(...): Grafica dos diagramas de dispersión para las variables x_1, y_1 y x_2, y_2.
- plt.legend(labels=['1', '2']): Agrega una leyenda a las series de datos.
- print(np.corrcoef(x_1, y_1)): Calcula la matriz de correlación para x_1 e y_1.
- print(np.corrcoef(x_2, y_2)): Calcula la matriz de correlación para x_2 e y_2.
Descripción del resultado:
- Gráfica: Muestra dos conjuntos de datos con relaciones lineales. Una relación tiene pendiente más pronunciada que la otra.
- Matrices de correlación:
x_1 y y_1: [[1. 0.9701617 ]
[0.9701617 1. ]]
x_2 y y_2: [[1. 0.64764343]
[0.64764343 1. ]]