Está en la página 1de 5

Facultad de Ingeniería

Programa de Ingeniería de Sistemas


Programación I
Primer corte

CASO DE ESTUDIO: COEFICIENTE DE


CORRELACIÓN LINEAL
1. ENUNCIADO
Diseñar e implementar un algoritmo que permita calcular el coeficiente de correlación
lineal entre las estaturas y los pesos de N jugadores de un equipo de fútbol.
Para tal fin el algoritmo debe pedir como datos de entrada:
1. Cantidad de jugadores (N)
2. Estatura de los N jugadores (Estatura_X)
3. Peso de los N jugadores (Peso_Y)

Las fórmulas para hallar la correlación son:


1. Se calculan las medias aritméticas
2. Se calcula la covarianza
3. Se calculan las desviaciones típicas
4. Se calcula el coeficiente de correlación lineal r

Para interpretar los resultados utilizar la siguiente tabla:


En general, r > 0 indica una relación positiva, r < 0 indica una relación negativa,
mientras que r = 0 indica que no hay relación (o que las variables son independientes y
no están relacionadas).
Aquí, r = 1,0 describe una correlación positiva perfecta y r = -1,0 describe una
correlación negativa perfecta. Cuanto más cerca estén los coeficientes de +1,0 y -1,0,
mayor será la fuerza de la relación entre las variables.

VALOR DE r FUERZA DE LA
RELACIÓN

( - 1.0 a - 0.5 ) ó ( 1.0 a 0.5) Fuerte

( - 0.5 a - 0.3 ) ó ( 0.3 a 0.5) Moderada

( - 0.3 a - 0.1 ) ó ( 0.1 a 0.3 ) Débil

- 0.1 a 0.1 Ninguna o muy débil

Finalmente el algoritmo deberá entregar el valor de la correlación r, indicar si la relación


es positiva, negativa o no hay relación y decir la fuerza de la relación con base en la
anterior tabla.
Facultad de Ingeniería
Programa de Ingeniería de Sistemas
Programación I
Primer corte

Contexto del caso:


La correlación estadística determina la relación o dependencia que existe entre las dos
variables que intervienen en una distribución bidimensional. Es decir, determinar si los
cambios en una de las variables influyen en los cambios de la otra. En caso de que
suceda, diremos que las variables están correlacionadas o que hay correlación entre
ellas.

La correlación puede decir algo acerca de la relación entre las variables. Se utiliza para
entender:
1. Si la relación es positiva o negativa
2. La fuerza de la relación.

2. ESTRUCTURA DE DATOS
El tipo de dato para la matriz debe ser float. Los datos de entrada son: Estatura X y
Peso Y, los demás datos se deben calcular.

Matriz[N][5] Estatura X Peso Y X*Y X*X Y*Y


[0] [1] [2] [3] [4]

[0] 1.78 85.0 151.3 3.1684 7225.0

[1] 1.79 89.5 160.205 3.2041 8010.25

[2] 1.75 86.8 151.9 3.0625 7534.24

[3] 1.87 85.6 160.072 3.4969 7327.36

[4] 1.77 82.3 145.671 3.1329 6773.29

[5] 1.75 81.6 142.8 3.0625 6658.56

[N] Sumatoria_X Sumatoria_Y Sumatoria_XY Sumatoria_X2 Sumatoria_Y2

3. REQUERIMIENTOS FUNCIONALES
RF1. El programa deberá calcular e imprimir el valor del coeficiente de correlación r.
r = Covarianza / (Desviacion_X * Desviacion_Y);

RF2. Para poder calcular el coeficiente de correlación r, se deben calcular las


desviaciones típicas, Desviacion_X, Desviacion_Y.
Desviacion_X = sqrt((Sumatoria_X2 / N) - (Media_X * Media_X));
Desviacion_Y = sqrt((Sumatoria_Y2 / N) - (Media_Y * Media_Y));
Facultad de Ingeniería
Programa de Ingeniería de Sistemas
Programación I
Primer corte

RF3. Para poder calcular las desviaciones típicas, se deben calcular las medias
aritméticas, Media_X, Media_Y.
Media_X = Sumatoria_X / N;
Media_Y = Sumatoria_Y / N;

RF4. Para poder calcular el coeficiente de correlación r, se debe calcular la covarianza,


Covarianza.
Covarianza = (Sumatoria_XY / N) - (Media_X * Media_Y);

RF4. Finalmente el algoritmo deberá entregar el valor de la correlación r, indicar si la


relación es positiva, negativa o no hay relación y decir la fuerza de la relación con
base en la siguiente tabla:

VALOR DE r FUERZA DE LA
RELACIÓN

( - 1.0 a - 0.5 ) ó ( 1.0 a 0.5) Fuerte

( - 0.5 a - 0.3 ) ó ( 0.3 a 0.5) Moderada

( - 0.3 a - 0.1 ) ó ( 0.1 a 0.3 ) Débil

- 0.1 a 0.1 Ninguna o muy débil

4. REQUERIMIENTOS INSTRUCCIONALES
A. ANÁLISIS

De acuerdo al enunciado, se deben interpretar cada una de las fórmulas, y pasarlas a


código de programación para poder cumplir con los Requerimientos Funcionales.

1. Se calculan las medias aritméticas


Media_X = Sumatoria_X / N; Media_Y = Sumatoria_Y / N

2. Se calcula la covarianza
Covarianza = (Sumatoria_XY / N) - (Media_X * Media_Y)

3. Se calculan las desviaciones típicas


Desviacion_X = sqrt((Sumatoria_X2/N)-(Media_X*Media_X))

Desviacion_Y = sqrt((Sumatoria_Y2/N)-(Media_Y*Media_Y))
Facultad de Ingeniería
Programa de Ingeniería de Sistemas
Programación I
Primer corte

4. Se calcula el coeficiente de correlación lineal


r = Covarianza / (Desviacion_X * Desviacion_Y)

B. DISEÑO

Primero se deben realizar las operaciones para almacenar los datos de entrada, se
pide la estatura y el peso y con ellos se realizan las operaciones hasta completar la
matriz de N filas, y 5 columnas.

// Se utiliza un ciclo para solicitar los valores y procesar los datos de la matriz
for (i = 0; i < N; i++)
{
cout<<"\n\tEstatura jugador "<<i+1<<": ";
cin>>Matriz[i][0]; // Esto es el valor de X
cout<<"\tPeso jugador: ";
cin>>Matriz[i][1]; // Esto es el valor de Y
Matriz[i][2] = Matriz[i][0] * Matriz[i][1]; // Esto es X * Y
Matriz[i][3] = Matriz[i][0] * Matriz[i][0]; // Esto es X * X
Matriz[i][4] = Matriz[i][1] * Matriz[i][1]; // Esto es Y * Y
}

// Se utiliza ciclo para el calculo de las sumatorias


for (i = 0; i < N; i++)
{
Sumatoria_X += Matriz[i][0];
Sumatoria_Y += Matriz[i][1];
Sumatoria_XY += Matriz[i][2];
Sumatoria_X2 += Matriz[i][3];
Sumatoria_Y2 += Matriz[i][4];
}

5. IMPLEMENTACIÓN
El orden sería el siguiente:
// Se define N y se solicita al usuario el número de jugadores
// Se declaran las variables que se necesitan y
// Se inicializan en cero las variables que son sumatorias
// Se declara la matriz de tamaño [N][5]
// Se utiliza un ciclo para solicitar los valores de la matriz
// Se utiliza un ciclo para el cálculo de las sumatorias
// Se realizan las operaciones para el cálculo de la correlación r
// Medias aritméticas
// Covarianza
// Desviaciones típicas
// Coeficiente de correlación lineal r
// Se imprimen resultados
// Se imprimen ecuaciones alternas Medias, Desviaciones, etc.
// Se imprime la correlación
// Se especifica si no hay relación (r = 0), o si la relación es positiva o negativa
// Se especifica la fuerza de la relación teniendo en cuenta la tabla dada (enunciado)
Facultad de Ingeniería
Programa de Ingeniería de Sistemas
Programación I
Primer corte

C. PRUEBAS

[i] Estatura_X[i] Peso_Y[i] Producto_XY[i] Cuadrado_X[i] Cuadrado_Y[i]

0 1,78 85 151,3 3,1684 7225,0000

1 1,79 89,5 160,205 3,2041 8010,2500

2 1,75 86,8 151,9 3,0625 7534,2400

3 1,87 85,6 160,072 3,4969 7327,3600

4 1,77 82,3 145,671 3,1329 6773,2900

5 1,75 81,6 142,8 3,0625 6658,5600

N=6 10,71 510,8 911,948 19,127300 43528,7000

Sumatoria_X Sumatoria_Y Sumatoria_XY Sumatoria_X2 Sumatoria_Y2

5. ENTREGABLES
1. Código fuente (correlacion_T000xxxxx.cpp)
debidamente comentado utilizando //

También podría gustarte