U4A1

Edward

6/7/2020

Análisis de correlacion

Importar paquetes y definir folder de trabajo

library(pacman)
p_load("base64enc", "htmltools", "mime", "xfun", "prettydoc", "readr", "ggplot2", "tidyr", "plotly", "DT")
setwd("~/VERANOPYE")

Importar datos

Sinaloa <- read_csv("sinaloa.csv")
## Parsed with column specification:
## cols(
##   Sembrada = col_double(),
##   Volumenproduccion = col_double(),
##   Precio = col_double(),
##   Valorproduccion = col_double()
## )
names(Sinaloa)
## [1] "Sembrada"          "Volumenproduccion" "Precio"           
## [4] "Valorproduccion"

Descripción de datos

Se tienen datos de 32 distintos sectores de cultivos de maíz grano en Sinaloa.

datatable(Sinaloa)

Correlación con matriz de diagrama de dispersión

pairs(Sinaloa)

Cuantificar el grado de relación lineal (coef. de correlación)

cor(Sinaloa)
##                     Sembrada Volumenproduccion     Precio Valorproduccion
## Sembrada           1.0000000         0.3593724 -0.1260811       0.3366973
## Volumenproduccion  0.3593724         1.0000000 -0.1614810       0.9852515
## Precio            -0.1260811        -0.1614810  1.0000000      -0.1027694
## Valorproduccion    0.3366973         0.9852515 -0.1027694       1.0000000

Estimación y representación de la recta de mínimos cuadrados

El comando básico es lm (linear models). El primer argumento de este comando es una fórmula y ~ x en la que se especifica cuál es la variable respuesta o dependiente (y) y cuál es la variable regresora o independiente (x). El segundo argumento, llamado data especifica cuál es el fichero en el que se encuentran las variables. El resultado lo guardamos en un objeto llamado regresion. Este objeto es una lista que contiene toda la información relevante sobre el análisis. Mediante el comando summary obtenemos un resumen de los principales resultados:

regresion <- lm(Volumenproduccion ~ Valorproduccion, data=Sinaloa )
summary(regresion)
## 
## Call:
## lm(formula = Volumenproduccion ~ Valorproduccion, data = Sinaloa)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -34776   -298   2424   3178   9711 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     -2.497e+03  1.649e+03  -1.515     0.14    
## Valorproduccion  1.526e-03  4.839e-05  31.537   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 8553 on 30 degrees of freedom
## Multiple R-squared:  0.9707, Adjusted R-squared:  0.9697 
## F-statistic: 994.6 on 1 and 30 DF,  p-value: < 2.2e-16

Los parámetros de la ecuación de la recta de mínimos cuadrados que relaciona la cantidad de grasas en la sangre en función del peso vienen dados por la columna ´Estimate´ de la tabla ´Coefficients´ de la salida anterior. Por lo tanto, en este ejemplo la ecuación de la recta de mínimos cuadrados es:

\[ y = -2.497e03 + 1.526e03x \]

Los siguientes comandos representan la nube de puntos (comando plot) y añaden la representación gráfica de la recta de mínimos cuadrados (comando abline aplicado al objeto generado por lm):

plot(Sinaloa$Valorproduccion, Sinaloa$Volumenproduccion, xlab="Volumen de producción", ylab="Valor de praducción" )
abline(regresion)

El coeficiente de determinación (es decir, el coeficiente de correlación al cuadrado) mide la bondad del ajuste de la recta a los datos. A partir de la salida anterior, vemos que su valor en este caso es Multiple R-squared: 0.9707.

Cálculo de predicciones

Supongamos que queremos utilizar la recta de mínimos cuadrados para predecir la cantidad de valor de producción para volumen de producción 500000, 50100 Basta crear un fichero de datos que contenga las nuevas variables regresoras y usar el comando predict:

nuevas.Valorproduccion <- data.frame(Valorproduccion= seq(50000, 50100))
predict(regresion,nuevas.Valorproduccion)
##         1         2         3         4         5         6         7         8 
## -2420.754 -2420.753 -2420.751 -2420.749 -2420.748 -2420.746 -2420.745 -2420.743 
##         9        10        11        12        13        14        15        16 
## -2420.742 -2420.740 -2420.739 -2420.737 -2420.736 -2420.734 -2420.733 -2420.731 
##        17        18        19        20        21        22        23        24 
## -2420.730 -2420.728 -2420.727 -2420.725 -2420.724 -2420.722 -2420.720 -2420.719 
##        25        26        27        28        29        30        31        32 
## -2420.717 -2420.716 -2420.714 -2420.713 -2420.711 -2420.710 -2420.708 -2420.707 
##        33        34        35        36        37        38        39        40 
## -2420.705 -2420.704 -2420.702 -2420.701 -2420.699 -2420.698 -2420.696 -2420.695 
##        41        42        43        44        45        46        47        48 
## -2420.693 -2420.691 -2420.690 -2420.688 -2420.687 -2420.685 -2420.684 -2420.682 
##        49        50        51        52        53        54        55        56 
## -2420.681 -2420.679 -2420.678 -2420.676 -2420.675 -2420.673 -2420.672 -2420.670 
##        57        58        59        60        61        62        63        64 
## -2420.669 -2420.667 -2420.666 -2420.664 -2420.662 -2420.661 -2420.659 -2420.658 
##        65        66        67        68        69        70        71        72 
## -2420.656 -2420.655 -2420.653 -2420.652 -2420.650 -2420.649 -2420.647 -2420.646 
##        73        74        75        76        77        78        79        80 
## -2420.644 -2420.643 -2420.641 -2420.640 -2420.638 -2420.637 -2420.635 -2420.633 
##        81        82        83        84        85        86        87        88 
## -2420.632 -2420.630 -2420.629 -2420.627 -2420.626 -2420.624 -2420.623 -2420.621 
##        89        90        91        92        93        94        95        96 
## -2420.620 -2420.618 -2420.617 -2420.615 -2420.614 -2420.612 -2420.611 -2420.609 
##        97        98        99       100       101 
## -2420.608 -2420.606 -2420.604 -2420.603 -2420.601