Del ejercicio anterior, ahora vamos a ver la correlación entre variables.
setwd("/cloud/project/Ejercicio R") # Ustedes tienen otra dirección.
suelo=read.table("suelo.txt",header=T) # El archivo de datos "suelo.txt" tiene que estar en su directorio de trabajo
head(suelo)
attach(suelo)
El coeficiente de correlación de Pearson puede interpretarse de la siguiente forma:
tabla_corr
Ahora veamos los resultados de la correlación en nuestros datos de suelo:
cor(suelo) # Por defecto el método corresponde a la correlación lineal de Pearson
## Cr Cu Mg V Zn
## Cr 1.0000000 -0.3122045 0.14107310 0.85004292 0.5950243
## Cu -0.3122045 1.0000000 -0.20097470 -0.33007300 -0.2795823
## Mg 0.1410731 -0.2009747 1.00000000 -0.02884742 0.4556550
## V 0.8500429 -0.3300730 -0.02884742 1.00000000 0.2415147
## Zn 0.5950243 -0.2795823 0.45565501 0.24151472 1.0000000
plot(suelo,main="Matriz de correlación")
De acuerdo a los resultados anteriores, la correlación lineal entre Cr y Zn es moderada, entre Cr y V es muy alta, y entre Mg y Zn es moderada. Las demás relaciones entre las variables son de baja a muy baja.
Entre el Zn y el V la correlación es baja, podría considerarse como variables independientes, pero al parecer el Cr tiene un grado de dependencia con ambas variables.
Probemos un modelo lineal para el Cr.
modelo_Cr=lm(Cr~Zn+V)
summary(modelo_Cr)
##
## Call:
## lm(formula = Cr ~ Zn + V)
##
## Residuals:
## Min 1Q Median 3Q Max
## -35.723 -14.407 0.321 12.652 48.581
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -75.75184 18.62390 -4.067 0.000801 ***
## Zn 0.42852 0.08819 4.859 0.000147 ***
## V 1.25049 0.14199 8.807 9.64e-08 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 22.87 on 17 degrees of freedom
## Multiple R-squared: 0.8839, Adjusted R-squared: 0.8702
## F-statistic: 64.69 on 2 and 17 DF, p-value: 1.127e-08
El modelo de Cr resultante es:
\(Cr = 0.42852 Zn + 1.25049 V - 75.75184\)
Los resultados del modelo del Cr indican que hay una alta relación entre el Zn y el V. El modelo presenta un alto coeficiente de determinación, especificamente las variables aleatorias Zn y V explican el 87% del modelo.
Podemos observar un comportamiento aproximadamente normal de los residuos del modelo:
qqnorm(residuals(modelo_Cr))
qqline(residuals(modelo_Cr))
boxplot(residuals(modelo_Cr))
hist(residuals(modelo_Cr)) # No es el mejor ejemplo pero puede justificase que son pocos datos. El valor central está cerca de cero.
El comportamiento de los residuos indican heterocedasticidad, es decir un comportamiento desordenado o aleatorio. Es lo ideal.
plot(fitted.values(modelo_Cr),residuals(modelo_Cr))
La correlación entre los valores de Cr estimados por el modelo y los valores reales es alta:
plot(fitted.values(modelo_Cr),Cr)
cor(fitted.values(modelo_Cr),Cr)
## [1] 0.9401425
En conclusión, el modelo lineal de Cr creado con las variables explicativas Zn y V puede considerarse válido para los 20 datos por variable.