ComenzarEmpieza gratis

Intensidad de la correlación

De forma intuitiva, podemos mirar los gráficos y "ver" si las dos variables parecen "variar juntas".

  • Conjunto de datos A: x e y cambian a la vez y parecen tener una relación fuerte.
  • Conjunto de datos B: hay una tendencia ascendente tenue; x e y parecen estar solo débilmente relacionadas.
  • Conjunto de datos C: parece una dispersión aleatoria; x e y no parecen cambiar juntas y no están relacionadas.

Data Set A

Data Set B

Data Set C

Recuerda que las desviaciones se calculan respecto a la media, y las normalizamos dividiéndolas por la desviación estándar. En este ejercicio compararás los 3 conjuntos de datos calculando la correlación y determinando cuál tiene las variables x e y más fuertemente correlacionadas. Usa la tabla de datos data_sets, un diccionario de registros, cada uno con las claves 'name', 'x', 'y' y 'correlation'.

Este ejercicio forma parte del curso

Introducción al modelado lineal en Python

Ver curso

Instrucciones del ejercicio

  • Completa la definición de la función correlation() usando la media de los productos de las desviaciones normalizadas de x y y.
  • Itera sobre data_sets, calculando y almacenando cada correlación con correlation(record['x'], record['y']).
  • Ejecuta el código hasta este punto (es decir, hasta el final del bucle for) y revisa lo que se imprime. ¿Qué conjunto de datos tiene la correlación más fuerte?
  • Asigna el nombre del conjunto de datos (data_sets['A'], data_sets['B'] o data_sets['C']) con la correlación más fuerte a la variable best_data.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# Complete the function that will compute correlation.
def correlation(x,y):
    x_dev = x - np.____(x)
    y_dev = y - np.____(y)
    x_norm = x_dev / np.____(x)
    y_norm = y_dev / np.____(y)
    return np.____(x_norm * y_norm)

# Compute and store the correlation for each data set in the list.
for name, data in data_sets.items():
    data['correlation'] = ____(data['x'], data['y'])
    print('data set {} has correlation {:.2f}'.format(name, data['correlation']))

# Assign the data set with the best correlation.
best_data = data_sets['____']
Editar y ejecutar código