Correlación lineal
Se dispone de un data frame con información sobre diferentes coches. Se quiere estudiar si existe una correlación entre el peso de un vehículo (Weight) y la potencia de su motor (Horsepower). El data frame se llama cars93 y está integrado a la librería MASS. Carguemos las librerías
library(MASS)
library(ggplot2)
Analicemos el data frame:
str(Cars93)
summary(Cars93)
View(Cars93)
En primer lugar se representan las dos variables mediante un diagrama de dispersión para intuir si existe relación lineal o monotónica. Si no la hay, no tiene sentido calcular este tipo de correlaciones.
ggplot(data = Cars93, aes(x = Weight, y = Horsepower)) +
geom_point(colour = "red4") +
ggtitle("Diagrama de dispersión") +
theme_bw() +
theme(plot.title = element_text(hjust = 0.5))
El diagrama de dispersión parece indicar una posible relación lineal positiva entre ambas variables. El siguiente análisis es para corroborar el supuesto de normalidad que impone el método de correlación sobre las dos variables estudiadas.
Análisis de normalidad de las variables
Representaciones gráficas:
ggplot(data = Cars93, aes(x = Weight)) +
geom_histogram(colour = "red", bins=10) +
theme_bw()
Representaciones gráficas:
ggplot(data = Cars93, aes(x = Horsepower)) +
geom_histogram(colour = "red", bins=10) +
theme_bw()
Pruebas de hipótesis de normalidad (H0: la variable se distribuye normalmente)
shapiro.test(Cars93$Weight)
shapiro.test(Cars93$Horsepower)
La prueba de hipótesis para la variable Weight arroja un p-value = 0.06337, el cual al no ser menor a α (0,05 típicamente) no se puede rechazar H0. La prueba de hipótesis para la variable Horsepower arroja un p-value = 0.0001916, el cual al ser menor a α (0,05 típicamente) rechaza H0. Nota: si p-value < α, se rechaza Ho.
Correlación lineal
El análisis gráfico y el contraste de normalidad muestran que para la variable Horsepower no se puede asumir normalidad y que la variable Weight está en el límite. Siendo estrictos, este hecho excluye la posibilidad de utilizar el coeficiente de Pearson. Sin embargo, dado que la distribución no se aleja mucho de la normalidad y de que el coeficiente de Pearson tiene cierta robustez, a fines prácticos sí que se podría utilizar, siempre y cuando se tenga en cuenta este hecho en los resultados (o sea, con las reservas del caso).
Calculo de la correlación:
cor(x = Cars93$Weight, y = Cars93$Horsepower, method = "pearson")
La función cor() arroja un coeficiente de 0.7387975, lo cual representa una correlación significativa (>0.7). Sin embargo, para poder considerar que existe realmente correlación entre las dos variables es necesario calcular su significancia, de lo contrario podría deberse al azar.
Significancia de la correlación
Por muy alto que sea un coeficiente de correlación, si no es significativa se ha de considerar inexistente. Recuerda que H0 considera que las variables son independientes (coeficiente de correlación poblacional = 0), mientras que la Ha considera que existe relación (coeficiente de correlación poblacional ≠ 0).
cor.test(x = Cars93$Weight,
y = Cars93$Horsepower,
alternative = "two.sided",
conf.level = 0.95,
method = "pearson")
La prueba arroja un p-value < 2.2e-16, por lo que H0 se rechaza (p_value < α) y podemos concluir que el coeficiente de correlación es significativo. Correlación lineal
Conclusión:
Existe una correlación significativa entre el peso del vehículo y la potencia de su motor (Coeficiente de Correlación =0.74, p-value < 2.2e-16)
Regresión lineal simple
La regresión lineal simple consiste en generar un modelo de regresión (ecuación de una recta) que permita explicar la relación lineal que existe entre dos variables. A la variable dependiente o respuesta se le identifica como Y y a la variable predictora o independiente como X.
lm_HPeso <- lm(Horsepower~Weight, data = Cars93)
summary(lm_HPeso)
LS0tCnRpdGxlOiAiQW7DoWxpc2lzIGVzdGFkw61zdGljbyBkZSBkYXRvcyIKYXV0aG9yOiAiR2FicmllbGEgQTAxNjEyMzcxIgpvdXRwdXQ6CiAgaHRtbF9ub3RlYm9vazogZGVmYXVsdAogIGh0bWxfZG9jdW1lbnQ6CiAgICBkZl9wcmludDogcGFnZWQKICBwZGZfZG9jdW1lbnQ6IGRlZmF1bHQKLS0tCgojIENvcnJlbGFjacOzbiBsaW5lYWwKClNlIGRpc3BvbmUgZGUgdW4gZGF0YSBmcmFtZSBjb24gaW5mb3JtYWNpw7NuIHNvYnJlIGRpZmVyZW50ZXMgY29jaGVzLiBTZSBxdWllcmUgZXN0dWRpYXIgc2kgZXhpc3RlIHVuYSBjb3JyZWxhY2nDs24gZW50cmUgZWwgcGVzbyBkZSB1biB2ZWjDrWN1bG8gKFdlaWdodCkgeSBsYSBwb3RlbmNpYSBkZSBzdSBtb3RvciAoSG9yc2Vwb3dlcikuCkVsIGRhdGEgZnJhbWUgc2UgbGxhbWEgY2FyczkzIHkgZXN0w6EgaW50ZWdyYWRvIGEgbGEgbGlicmVyw61hIE1BU1MuCkNhcmd1ZW1vcyBsYXMgbGlicmVyw61hcyAKCmBgYHtyfQpsaWJyYXJ5KE1BU1MpCmxpYnJhcnkoZ2dwbG90MikKYGBgCgpBbmFsaWNlbW9zIGVsIGRhdGEgZnJhbWU6CgpgYGB7cn0KCnN0cihDYXJzOTMpCnN1bW1hcnkoQ2FyczkzKQpWaWV3KENhcnM5MykKCmBgYAoKRW4gcHJpbWVyIGx1Z2FyIHNlIHJlcHJlc2VudGFuIGxhcyBkb3MgdmFyaWFibGVzIG1lZGlhbnRlIHVuIGRpYWdyYW1hIGRlIGRpc3BlcnNpw7NuIHBhcmEgaW50dWlyIHNpIGV4aXN0ZSByZWxhY2nDs24gbGluZWFsIG8gbW9ub3TDs25pY2EuIFNpIG5vIGxhIGhheSwgbm8gdGllbmUgc2VudGlkbyBjYWxjdWxhciBlc3RlIHRpcG8gZGUgY29ycmVsYWNpb25lcy4KCmBgYHtyfQoKZ2dwbG90KGRhdGEgPSBDYXJzOTMsIGFlcyh4ID0gV2VpZ2h0LCB5ID0gSG9yc2Vwb3dlcikpICsgCiAgCWdlb21fcG9pbnQoY29sb3VyID0gInJlZDQiKSArCiAgCWdndGl0bGUoIkRpYWdyYW1hIGRlIGRpc3BlcnNpw7NuIikgKwogIAl0aGVtZV9idygpICsKICAJdGhlbWUocGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChoanVzdCA9IDAuNSkpCgpgYGAKCkVsIGRpYWdyYW1hIGRlIGRpc3BlcnNpw7NuIHBhcmVjZSBpbmRpY2FyIHVuYSBwb3NpYmxlIHJlbGFjacOzbiBsaW5lYWwgcG9zaXRpdmEgZW50cmUgYW1iYXMgdmFyaWFibGVzLgpFbCBzaWd1aWVudGUgYW7DoWxpc2lzIGVzIHBhcmEgY29ycm9ib3JhciBlbCBzdXB1ZXN0byBkZSBub3JtYWxpZGFkIHF1ZSBpbXBvbmUgZWwgbcOpdG9kbyBkZSBjb3JyZWxhY2nDs24gc29icmUgbGFzIGRvcyB2YXJpYWJsZXMgZXN0dWRpYWRhcy4KCiMgQW7DoWxpc2lzIGRlIG5vcm1hbGlkYWQgZGUgbGFzIHZhcmlhYmxlcwoKUmVwcmVzZW50YWNpb25lcyBncsOhZmljYXM6CgpgYGB7cn0KCmdncGxvdChkYXRhID0gQ2FyczkzLCBhZXMoeCA9IFdlaWdodCkpICsgCglnZW9tX2hpc3RvZ3JhbShjb2xvdXIgPSAicmVkIiwgYmlucz0xMCkgKwoJdGhlbWVfYncoKQoKYGBgCgpSZXByZXNlbnRhY2lvbmVzIGdyw6FmaWNhczoKCmBgYHtyfQoKZ2dwbG90KGRhdGEgPSBDYXJzOTMsIGFlcyh4ID0gSG9yc2Vwb3dlcikpICsgCglnZW9tX2hpc3RvZ3JhbShjb2xvdXIgPSAicmVkIiwgYmlucz0xMCkgKwoJdGhlbWVfYncoKQoKYGBgCgojIFBydWViYXMgZGUgaGlww7N0ZXNpcyBkZSBub3JtYWxpZGFkIChIMDogbGEgdmFyaWFibGUgc2UgZGlzdHJpYnV5ZSBub3JtYWxtZW50ZSkKCmBgYHtyfQoKc2hhcGlyby50ZXN0KENhcnM5MyRXZWlnaHQpCnNoYXBpcm8udGVzdChDYXJzOTMkSG9yc2Vwb3dlcikKCmBgYAoKTGEgcHJ1ZWJhIGRlIGhpcMOzdGVzaXMgcGFyYSBsYSB2YXJpYWJsZSBXZWlnaHQgYXJyb2phIHVuIHAtdmFsdWUgPSAwLjA2MzM3LCBlbCBjdWFsIGFsIG5vIHNlciBtZW5vciBhIM6xICgwLDA1IHTDrXBpY2FtZW50ZSkgbm8gc2UgcHVlZGUgcmVjaGF6YXIgSDAuCkxhIHBydWViYSBkZSBoaXDDs3Rlc2lzIHBhcmEgbGEgdmFyaWFibGUgSG9yc2Vwb3dlciBhcnJvamEgdW4gcC12YWx1ZSA9IDAuMDAwMTkxNiwgZWwgY3VhbCBhbCBzZXIgbWVub3IgYSDOsSAoMCwwNSB0w61waWNhbWVudGUpIHJlY2hhemEgSDAuCk5vdGE6IHNpIHAtdmFsdWUgPCDOsSwgc2UgcmVjaGF6YSBIby4KCiMgQ29ycmVsYWNpw7NuIGxpbmVhbAoKRWwgYW7DoWxpc2lzIGdyw6FmaWNvIHkgZWwgY29udHJhc3RlIGRlIG5vcm1hbGlkYWQgbXVlc3RyYW4gcXVlIHBhcmEgbGEgdmFyaWFibGUgSG9yc2Vwb3dlciBubyBzZSBwdWVkZSBhc3VtaXIgbm9ybWFsaWRhZCB5IHF1ZSBsYSB2YXJpYWJsZSBXZWlnaHQgZXN0w6EgZW4gZWwgbMOtbWl0ZS4gU2llbmRvIGVzdHJpY3RvcywgZXN0ZSBoZWNobyBleGNsdXllIGxhIHBvc2liaWxpZGFkIGRlIHV0aWxpemFyIGVsIGNvZWZpY2llbnRlIGRlIFBlYXJzb24uIFNpbiBlbWJhcmdvLCBkYWRvIHF1ZSBsYSBkaXN0cmlidWNpw7NuIG5vIHNlIGFsZWphIG11Y2hvIGRlIGxhIG5vcm1hbGlkYWQgeSBkZSBxdWUgZWwgY29lZmljaWVudGUgZGUgUGVhcnNvbiB0aWVuZSBjaWVydGEgcm9idXN0ZXosIGEgZmluZXMgcHLDoWN0aWNvcyBzw60gcXVlIHNlIHBvZHLDrWEgdXRpbGl6YXIsIHNpZW1wcmUgeSBjdWFuZG8gc2UgdGVuZ2EgZW4gY3VlbnRhIGVzdGUgaGVjaG8gZW4gbG9zIHJlc3VsdGFkb3MgKG8gc2VhLCBjb24gbGFzIHJlc2VydmFzIGRlbCBjYXNvKS4KCkNhbGN1bG8gZGUgbGEgY29ycmVsYWNpw7NuOgoKYGBge3J9Cgpjb3IoeCA9IENhcnM5MyRXZWlnaHQsIHkgPSBDYXJzOTMkSG9yc2Vwb3dlciwgbWV0aG9kID0gInBlYXJzb24iKQoKYGBgCgoKCgpMYSBmdW5jacOzbiBjb3IoKSBhcnJvamEgdW4gY29lZmljaWVudGUgZGUgMC43Mzg3OTc1LCBsbyBjdWFsIHJlcHJlc2VudGEgdW5hIGNvcnJlbGFjacOzbiBzaWduaWZpY2F0aXZhICg+MC43KS4gU2luIGVtYmFyZ28sIHBhcmEgcG9kZXIgY29uc2lkZXJhciBxdWUgZXhpc3RlIHJlYWxtZW50ZSBjb3JyZWxhY2nDs24gZW50cmUgbGFzIGRvcyB2YXJpYWJsZXMgZXMgbmVjZXNhcmlvIGNhbGN1bGFyIHN1IHNpZ25pZmljYW5jaWEsIGRlIGxvIGNvbnRyYXJpbyBwb2Ryw61hIGRlYmVyc2UgYWwgYXphci4KCiMgU2lnbmlmaWNhbmNpYSBkZSBsYSBjb3JyZWxhY2nDs24KClBvciBtdXkgYWx0byBxdWUgc2VhIHVuIGNvZWZpY2llbnRlIGRlIGNvcnJlbGFjacOzbiwgc2kgbm8gZXMgc2lnbmlmaWNhdGl2YSBzZSBoYSBkZSBjb25zaWRlcmFyIGluZXhpc3RlbnRlLiBSZWN1ZXJkYSBxdWUgSDAgY29uc2lkZXJhIHF1ZSBsYXMgdmFyaWFibGVzIHNvbiBpbmRlcGVuZGllbnRlcyAoY29lZmljaWVudGUgZGUgY29ycmVsYWNpw7NuIHBvYmxhY2lvbmFsID0gMCksIG1pZW50cmFzIHF1ZSBsYSBIYSBjb25zaWRlcmEgcXVlIGV4aXN0ZSByZWxhY2nDs24gKGNvZWZpY2llbnRlIGRlIGNvcnJlbGFjacOzbiBwb2JsYWNpb25hbCDiiaAgMCkuCgpgYGB7cn0KCmNvci50ZXN0KHggPSBDYXJzOTMkV2VpZ2h0LAogICAgICAgICB5ID0gQ2FyczkzJEhvcnNlcG93ZXIsIAogICAgICAgICBhbHRlcm5hdGl2ZSA9ICJ0d28uc2lkZWQiLAogICAgICAgICBjb25mLmxldmVsICA9IDAuOTUsCiAgICAgICAgIG1ldGhvZCAgICAgID0gInBlYXJzb24iKQoKYGBgCgpMYSBwcnVlYmEgYXJyb2phIHVuIHAtdmFsdWUgPCAyLjJlLTE2LCBwb3IgbG8gcXVlIEgwIHNlIHJlY2hhemEgKHBfdmFsdWUgPCDOsSkgeSAgcG9kZW1vcyBjb25jbHVpciBxdWUgZWwgY29lZmljaWVudGUgZGUgY29ycmVsYWNpw7NuIGVzIHNpZ25pZmljYXRpdm8uCkNvcnJlbGFjacOzbiBsaW5lYWwKCiMgQ29uY2x1c2nDs246CgpFeGlzdGUgdW5hIGNvcnJlbGFjacOzbiBzaWduaWZpY2F0aXZhIGVudHJlIGVsIHBlc28gZGVsIHZlaMOtY3VsbyB5IGxhIHBvdGVuY2lhIGRlIHN1IG1vdG9yIChDb2VmaWNpZW50ZSBkZSBDb3JyZWxhY2nDs24gPTAuNzQsIHAtdmFsdWUgPCAyLjJlLTE2KQoKIyBSZWdyZXNpw7NuIGxpbmVhbCBzaW1wbGUKCkxhIHJlZ3Jlc2nDs24gbGluZWFsIHNpbXBsZSBjb25zaXN0ZSBlbiBnZW5lcmFyIHVuIG1vZGVsbyBkZSByZWdyZXNpw7NuIChlY3VhY2nDs24gZGUgdW5hIHJlY3RhKSBxdWUgcGVybWl0YSBleHBsaWNhciBsYSByZWxhY2nDs24gbGluZWFsIHF1ZSBleGlzdGUgZW50cmUgZG9zIHZhcmlhYmxlcy4gQSBsYSB2YXJpYWJsZSBkZXBlbmRpZW50ZSBvIHJlc3B1ZXN0YSBzZSBsZSBpZGVudGlmaWNhIGNvbW8gWSB5IGEgbGEgdmFyaWFibGUgcHJlZGljdG9yYSBvIGluZGVwZW5kaWVudGUgY29tbyBYLgoKYGBge3J9CgpsbV9IUGVzbyA8LSBsbShIb3JzZXBvd2VyfldlaWdodCwgZGF0YSA9IENhcnM5MykKc3VtbWFyeShsbV9IUGVzbykKCmBgYAoK