U2A3

Introducción

La agricultura es el conjunto de actividades económicas y técnicas relacionadas con el tratamiento del suelo y el cultivo de la tierra para la producción de alimentos. Comprende todo un conjunto de acciones humanas que transforma el medio ambiente natural. Para México, la agricultura es una de las actividades prioritarias y más importantes, ya que no sólo genera gran cantidad de empleos, sino que también responde a las necesidades alimenticias de millones de personas, preserva los entornos naturales y estimula el progreso al mejorar la calidad de vida.

En el estado de Sonora la agricultura toma un lugar muy importante, ya que es uno de los principales motores que impulsan a la economía del estado y uno de los principales cultivos que se cosechan es la papa blanca, en el cual Sonora se mantiene como entidad líder a nivel nacional. En este estudio se análiza la regresión lineal múltiple la cual permite generar un modelo lineal en el que el valor de la variable dependiente o respuesta (Y ) se determina a partir de un conjunto de variables independientes llamadas predictores.

Nuestro estudio esta enfocado en la agricultura especialmente en la papa blanca, generaremos un modelo que permita predecir: La produccion en toneladas en función de diferentes variables. Se dispone de información sobre: Superficie Sembrada, Superficie Cosecha, Superficie Siniestra, Produccion , Precio medio rural y valor de la producción.

Antecedentes

Regresión lineal multiple

La regresión lineal múltiple permite generar un modelo lineal en el que el valor de la variable dependiente o respuesta (Y ) se determina a partir de un conjunto de variables independientes llamadas predictores (X1 , X2 , X3 …). Es una extensión de la regresión lineal simple, por lo que es fundamental comprender esta última. Los modelos de regresión múltiple pueden emplearse para predecir el valor de la variable dependiente o para evaluar la influencia que tienen los predictores sobre ella (esto último se debe que analizar con cautela para no malinterpretar causa-efecto).

Los modelos lineales múltiples siguen la siguiente ecuación:

\[ Y_{i}=(\beta_{0}+\beta_{1}X_{1i}+\beta_{2}X_{2i}+\cdots+\beta_{n}X_{ni})+e_{i} \] * β0 es la ordenada en el origen, el valor de la variable dependiente Y cuando todos los predictores son cero.

  • βi : es el efecto promedio que tiene el incremento en una unidad de la variable predictora Xi sobre la variable dependiente Y , manteniéndose constantes el resto de variables. Se conocen como coeficientes parciales de regresión.

  • ei: es el residuo o error, la diferencia entre el valor observado y el estimado por el modelo.

Es importante tener en cuenta que la magnitud de cada coeficiente parcial de regresión depende de las unidades en las que se mida la variable predictora a la que corresponde, por lo que su magnitud no está asociada con la importancia de cada predictor. Para poder determinar qué impacto tienen en el modelo cada una de las variables, se emplean los coeficientes parciales estandarizados, que se obtienen al estandarizar (sustraer la media y dividir entre la desviación estándar) las variables predictoras previo ajuste del modelo.

1. Importar y transformar datos

setwd("~/Desktop/EAMJ1130")
library(pacman) 
library(hpackedbubble)
## 
## Attaching package: 'hpackedbubble'
## The following object is masked from 'package:datasets':
## 
##     CO2
library(gplots)
## 
## Attaching package: 'gplots'
## The following object is masked from 'package:stats':
## 
##     lowess
library(psych)
library(GGally)
## Loading required package: ggplot2
## 
## Attaching package: 'ggplot2'
## The following objects are masked from 'package:psych':
## 
##     %+%, alpha
## Registered S3 method overwritten by 'GGally':
##   method from   
##   +.gg   ggplot2
library(car)
## Loading required package: carData
## 
## Attaching package: 'car'
## The following object is masked from 'package:psych':
## 
##     logit
library(gvlma)
library(strucchange)
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
## Loading required package: sandwich
library(xtable)
library(extrafont)
## Registering fonts with R
library(normtest)
library(readr)
library(readxl)
library(prettydoc) 
library(DT)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following object is masked from 'package:car':
## 
##     recode
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(ggplot2)
library(data.table)
## 
## Attaching package: 'data.table'
## The following objects are masked from 'package:dplyr':
## 
##     between, first, last
library(scales)
## 
## Attaching package: 'scales'
## The following object is masked from 'package:readr':
## 
##     col_factor
## The following objects are masked from 'package:psych':
## 
##     alpha, rescale
library(plotly)
## 
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## The following object is masked from 'package:stats':
## 
##     filter
## The following object is masked from 'package:graphics':
## 
##     layout
library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.0 ──
## ✓ tibble  3.0.5     ✓ stringr 1.4.0
## ✓ tidyr   1.1.2     ✓ forcats 0.5.1
## ✓ purrr   0.3.4
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## x ggplot2::%+%()        masks psych::%+%()
## x scales::alpha()       masks ggplot2::alpha(), psych::alpha()
## x data.table::between() masks dplyr::between()
## x stringr::boundary()   masks strucchange::boundary()
## x scales::col_factor()  masks readr::col_factor()
## x purrr::discard()      masks scales::discard()
## x plotly::filter()      masks dplyr::filter(), stats::filter()
## x data.table::first()   masks dplyr::first()
## x dplyr::lag()          masks stats::lag()
## x data.table::last()    masks dplyr::last()
## x dplyr::recode()       masks car::recode()
## x purrr::some()         masks car::some()
## x purrr::transpose()    masks data.table::transpose()
library(modelr)
library(lubridate)
## 
## Attaching package: 'lubridate'
## The following objects are masked from 'package:data.table':
## 
##     hour, isoweek, mday, minute, month, quarter, second, wday, week,
##     yday, year
## The following objects are masked from 'package:base':
## 
##     date, intersect, setdiff, union
library(datos)
library(round)

2. Explorar la relacion entre las variables

library(readxl)
Uva <- read_excel("Uva.xlsx")

3. Distribución de los datos

Superficie_Sembrada <- Uva$`Superficie_Sembrada`
Superficie_Cosechada <- Uva$`Superficie_Cosechada`
Produccion <- Uva$`Produccion`
Rendimiento <- Uva$`Rendimiento`
Precio_medio_rural <- Uva$`Precio_medio_rural`
Valor_de_la_produccion <- Uva$`Valor_de_la_produccion`
Uva <- data.table(Superficie_Sembrada, Superficie_Cosechada, Produccion, Rendimiento, Precio_medio_rural, Valor_de_la_produccion)
round( cor( x = Uva, method = "pearson"),3)
##                        Superficie_Sembrada Superficie_Cosechada Produccion
## Superficie_Sembrada                  1.000                0.999      0.975
## Superficie_Cosechada                 0.999                1.000      0.976
## Produccion                           0.975                0.976      1.000
## Rendimiento                          0.044                0.035      0.140
## Precio_medio_rural                   0.306                0.291      0.320
## Valor_de_la_produccion               0.950                0.951      0.996
##                        Rendimiento Precio_medio_rural Valor_de_la_produccion
## Superficie_Sembrada          0.044              0.306                  0.950
## Superficie_Cosechada         0.035              0.291                  0.951
## Produccion                   0.140              0.320                  0.996
## Rendimiento                  1.000              0.300                  0.183
## Precio_medio_rural           0.300              1.000                  0.332
## Valor_de_la_produccion       0.183              0.332                  1.000
multi.hist(x = Uva, dcol = c("blue", "red"), dlty = c("dotted", "solid"),main = "")

library(GGally)
ggpairs(Uva, lower = list(continuous = "smooth"),
        diag = list(continuous = "barDiag"), axisLabels = "none")
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

4. Análisis preliminar de los predictores a utilizar

Las variables que tienen una mayor relación lineal con la produccion en toneladas son: valor de la produccion (r= 996), Superficie cosechada (r= 976) y la superficie sembrada (r= 0.999).

Valor de producción y Superficie sembrada están medianamente correlacionados (r = 0.950), tambien el valor de produccion y superficie cosechada (r=996) por lo que posiblemente no sea útil introducir esos 3 predictores en el modelo.

5.Generar el modelo

modelo <- lm(Produccion ~ Superficie_Cosechada + Rendimiento + Produccion + Precio_medio_rural + Valor_de_la_produccion, data = Uva )
## Warning in model.matrix.default(mt, mf, contrasts): the response appeared on the
## right-hand side and was dropped
## Warning in model.matrix.default(mt, mf, contrasts): problem with term 3 in
## model.matrix: no columns are assigned
summary(modelo)
## 
## Call:
## lm(formula = Produccion ~ Superficie_Cosechada + Rendimiento + 
##     Produccion + Precio_medio_rural + Valor_de_la_produccion, 
##     data = Uva)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1476.04   -46.37   160.73   197.73   409.86 
## 
## Coefficients:
##                          Estimate Std. Error t value Pr(>|t|)    
## (Intercept)             1.790e+02  9.775e+02   0.183    0.859    
## Superficie_Cosechada    5.000e+00  1.912e-01  26.151 4.91e-09 ***
## Rendimiento             1.275e+01  6.084e+01   0.210    0.839    
## Precio_medio_rural     -1.988e-02  2.231e-02  -0.891    0.399    
## Valor_de_la_produccion  2.582e-02  4.312e-04  59.884 6.72e-12 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 581.1 on 8 degrees of freedom
## Multiple R-squared:  0.9999, Adjusted R-squared:  0.9999 
## F-statistic: 2.426e+04 on 4 and 8 DF,  p-value: 2.308e-16

Conclusión

El modelo con todas las variables introducidas como predictores tiene un R2 alta (0.9999), es capaz de explicar el 99.99% de la variabilidad observada en la produccion en toneladas. El p-value del modelo es significativo (2.308e-16) por lo que se puede aceptar que el modelo no es por azar, al menos uno de los coeficientes parciales de regresión es distinto de 0. Muchos de ellos no son significativos, lo que es un indicativo de que podrían no contribuir al modelo.

Bibliografía

JULIO CESAR CORONA VALENZUELA.(2016). Programa de Mediano Plazo Agrícola 2016-2021. 2021, de INFOSIAP Sitio web:http://infosiap.siap.gob.mx:8080/agricola_siap_gobmx/ResumenProducto.do