Está en la página 1de 5

Facultad  de  Ingeniería  

Programa  de  Ingeniería  de  Sistemas  

 
COEFICIENTE  DE  CORRELACIÓN  LINEAL  
USANDO  VECTORES  

1.  ENUNCIADO  
Diseñar   un   programa   en   C++   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  programa  debe  pedir  como  datos  de  entrada:  
1.   Cantidad  de  jugadores  (n)  
2.   Estatura  de  los  n  jugadores  (Estatura_X[n])  
3.   Peso  de  los  n  jugadores  (Peso_Y[n])  
 
Las  fórmulas  para  hallar  la  correlación  son:  
 
1.   Se  calculan  las  medias  aritméticas  
% %
$  &  ' X $ $  &  ' Y$
X   =    Y   =  
n n
 
2.   Se  calcula  la  covarianza    
%
$&' X $ Y$
σ+, = -­‐‑X  *  Y      
n
 
3.   Se  calculan  las  desviaciones  típicas  
0 / 0 /
123 + 123 ,
σ+ = -­‐‑X 4       σ, = -­‐‑Y 4          
% %

   
4.   Se  calcula  el  coeficiente  de  correlación  lineal  
σ+,
r=  
σ+  *  σ,
 
Para  interpretar  los  resultados  utilizar  la  siguiente  tabla:  
r  >  0  indica  una  relación  positiva    
r  <  0  indica  una  relación  negativa,    
mientras  que  r  =  0  no  hay  relación  (o  las  variables  son  independientes  y  no  están  relacionadas).    
 
VALOR  DE  r   FUERZA  DE  LA   INTERPRETACIÓN  
RELACIÓN  

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


r  =  1,0  describe  una  correlación  positiva  perfecta.  
(  -­  0.5  a  -­  0.3  )  ó  (  0.3  a  0.5)   Moderada   r  =  -­1,0  describe  una  correlación  negativa  perfecta.    
 
Cuanto  más  cerca  estén  los  coeficientes  de  +1,0  y  -­1,0,  
(  -­  0.3  a  -­  0.1  )  ó  (  0.1  a  0.3  )   Débil   mayor  será  la  fuerza  de  la  relación  entre  las  variables.  
 
 -­  0.1  a  0.1   Ninguna  o  muy  débil  

 
Facultad  de  Ingeniería  
Programa  de  Ingeniería  de  Sistemas  

 
 
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.  
 
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.  
 
Por   ejemplo,   considera   que   las   variables   son   el   ingreso   familiar   y   el   gasto   familiar.   Se   sabe   que   los  
aumentos  de  ingresos  y  gastos  disminuyen  juntos.  Por  lo  tanto,  están  relacionados  en  el  sentido  de  que  
el   cambio   en   cualquier   variable   estará   acompañado   por   un   cambio   en   la   otra   variable.   De   la   misma  
manera,   los   precios   y   la   demanda   de   un   producto   son   variables   relacionadas;;   cuando   los   precios  
aumentan  la  demanda  tenderá  a  disminuir  y  viceversa.  Si  el  cambio  en  una  variable  está  acompañado  de  
un  cambio  en  la  otra,  entonces  se  dice  que  las  variables  están  correlacionadas.  Por  lo  tanto,  podemos  
decir  que  el  ingreso  familiar  y  gastos  familiares  y  el  precio  y  la  demanda  están  correlacionados.  
 
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.  
 
La   correlación   es   una   herramienta   poderosa   que   brinda   piezas   vitales   de   información.   En   el   caso   del  
ingreso  familiar  y  el  gasto  familiar,  es  fácil  ver  que  ambos  suben  o  bajan  juntos  en  la  misma  dirección,  
esto   se   denomina   correlación   positiva.   En   caso   del   precio   y   la   demanda,   el   cambio   se   produce   en   la  
dirección  opuesta,  de  modo  que  el  aumento  de  uno  está  acompañado  de  un  descenso  en  el  otro,  esto  se  
conoce  como  correlación  negativa.  

2.  ESTRUCTURA  DE  DATOS  (Usando  vectores)  


   
Vectores  para  guardar  datos   Tipo  de  datos   Nombre  del  vector  
entrada  /  proceso  
Estatura  de  los  jugadores  (X)   Numérico  (float)   Estatura_X[n]  
Peso  de  los  jugadores  (Y)   Numérico  (float)   Peso_Y[n]  
Producto  (X  *  Y)   Numérico  (float)   XY[n]  
Cuadrado  de  X   Numérico  (float)   X2[n]  
Cuadrado  de  Y   Numérico  (float)   Y2[n]  
 
Variables  de  operaciones  /  salida   Tipo  de  dato   Nombre  de  variable  /  inicializadas  
Sumatoria  de  estaturas  (X)   Numérico  (float)   SumaX  =  0.0  
Sumatoria  de  pesos  (Y)   Numérico  (float)   SumaY  =  0.0  
Sumatoria  del  producto  (X  *  Y)   Numérico  (float)   SumaXY  =  0.0  
Sumatoria  del  cuadrado  de  las  estaturas  (X2)   Numérico  (float)   SumaX2  =  0.0  
Sumatoria  del  cuadrado  de  los  pesos  (Y2)   Numérico  (float)   SumaY2  =  0.0  
Medias  aritmeticas  de  X,  y  de  Y   Numérico  (float)   MediaX,  MediaY  
Desviaciones  de  X,  y  de  Y   Numérico  (float)   DesviacionX,  DesviacionY  
Covarianza   Numérico  (float)   Covarianza  
Correlación  lineal     Numérico  (float)   r  
 
 
Facultad  de  Ingeniería  
Programa  de  Ingeniería  de  Sistemas  

3.  REQUERIMIENTOS  FUNCIONALES  
 
RF1.   El   programa   deberá   entregar   el   promedio   de   estatura   y   el   promedio   de   peso   de  
los  n  jugadores.  
 
cout  <<  "\nPromedio  de  estatura  de  los  jugadores  =  "  <<  MediaX;;  
cout  <<  "\nPromedio  de  peso  de  los  jugadores  =  "  <<  MediaY;;  
 
RF2.  El  programa  deberá  entregar  la  covarianza  entre  las  estaturas  y  los  pesos  de  los  
jugadores.  
 
cout  <<  "\nCovarianza  entre  estatura  y  peso  =  "  <<  Covarianza;;  
 
RF3.  El  programa  deberá  entregar  las  desviaciones  estándar  de  las  estaturas  y  de  los  
pesos  de  los  n  jugadores.  
 
cout  <<  "\nDesviación  estandar  de  las  estaturas  =  "  <<  DesviacionX;;  
cout  <<  "\nDesviación  estandar  de  los  pesos  =  "  <<  DesviacionY;;  
 
RF4.  Finalmente  el  algoritmo  deberá  entregar  el  valor  de  la  correlación  r,  indicando  si  la  
relación  es  positiva,  negativa  o  no  hay  relación  y  la  fuerza  de  la  relación  con  base  en  la  
tabla  dada.  
 
//  Coeficiente  de  correlacion  lineal  r  
 
cout  <<  "\nLa  correlacion  lineal  r  =  "  <<  r;;  
cout  <<  "\nLa  relacion  es  (positiva  o  negativa)  ";;  //Según  sea  el  caso  
cout  <<  "\nFuerza  de  realcion  (FUERTE,  MODERADA,  DEBIL  o  ninguna).";;  //Según  sea  el  caso  
 

4.  REQUERIMIENTOS  INSTRUCCIONALES  (Etapas)  


 
A.   ANÁLISIS  
RI1:  Solicitar  los  datos  de  entrada  y  realizar  las  sumatorias  respectivas.  
       do{  
               cout<<"\n\tDigite  cantidad  de  jugadores:  ";;  
               cin>>n;;  
       }while(n  <  1);;  
 
//  Se  utiliza  un  ciclo  para  solicitar  los  valores  de  los  vectores  de  entrada  y  realizar  las  operaciones  pertinentes  
       for  (i  =  0;;  i  <  n;;  i++)  
       {  
                  cout  <<  "\n\tEstatura  jugador  "  <<  i+1  <<  ":  ";;  
                  cin  >>  Estatura_X[  i  ];;  
  SumaX  +=  Estatura_X[  i  ];;  
 
                  cout  <<  "\tPeso:  ";;  
                  cin  >>  Peso_Y[  i  ];;  
  SumaY  +=  Peso_Y[  i  ];;  
 
XY[  i  ]  =  Estatura_X[  i  ]  *  Peso_Y[  i  ];;  SumaXY  +=  XY[  i  ];;  
                  X2[  i  ]  =  Estatura_X[  i  ]  *  Estatura_X[  i  ];;  SumaX2  +=  X2[  i  ];;  
                  Y2[  i  ]  =  Peso_Y[  i  ]  *  Peso_Y[  i  ];;  SumaY2  +=  Y2[  i  ];;  
 
       }  
 
 
Facultad  de  Ingeniería  
Programa  de  Ingeniería  de  Sistemas  
 
 
RI2:  Calcular  las  medias  aritméticas,  MediaX,  MediaY.    
   
MediaX  =  SumaX  /  n;;  
          MediaY  =  SumaY  /  n;;  
 
RI3:  Calcular  las  desviaciones  típicas,  DesviacionX,  DesviacionY.  
 
DesviacionX  =  sqrt((SumaX2  /  n)  -­  (MediaX  *  MediaX));;  
          DesviacionY  =  sqrt((SumaY2  /  n)  -­  (MediaY  *  MediaY));;  
 
RI4:  Calcular  la  covarianza,  Covarianza.  
 
Covarianza  =  (SumaXY  /  n)  -­  (MediaX  *  MediaY);;  
 
RI5:  Finalmente  el  programa  deberá  entregar  el  valor  de  la  correlación  r,  indicando  si  la  
relación  es  positiva,  negativa  o  no  hay  relación  y  decir  la  fuerza  de  la  relación  con  base  
en  la  tabla.  
 
          r  =  Covarianza  /  (DesviacionX  *  DesviacionY);;  
 
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  

 
B.   DISEÑO  
 
El  orden  de  las  operaciones  es  la  siguiente:  
//  Se  solicita  al  usuario  el  número  de  jugadores  
//  Se  utiliza  un  ciclo  para  solicitar  los  valores  de  entrada  y  calcular  los  datos  requeridos  
//  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  
 
 
 
 
 
 
 
 
 
 
Facultad  de  Ingeniería  
Programa  de  Ingeniería  de  Sistemas  

C.   PRUEBAS  
 
[  i  ]   Estatura_X[  i  ]   Peso_Y[  i  ]   XY[  i  ]   X2[  i  ]   Y2[  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  

  SumaX  =  10.71   SumaY  =  510.8   SumaXY   SumaX2   SumaY2  

 
 

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

También podría gustarte