U2A4

Archivo para descargar

xfun::embed_file("U2A3.Rmd")

Download U2A3.Rmd

xfun::embed_file("datos.xlsx")

Download datos.xlsx # Introducción

LLa uva es un excelente alimento vegetal, con muchas utilidades de consumo. Así, se puede consumir en fresco (uva de mesa), aportando innumerables propiedades beneficiosas para la salud. También, tiene un uso industrial, destinada a elaborar diversas bebidas como jugos, mosto o vino, entre otros productos. Igualmente, este fruto se puede consumir como uva pasa, donde sufre un proceso de secado y deshidratación, teniendo a su vez muchos usos culinarios (ensaladas, platos cocinados, etc.). En este artículo vamos a abordar los aspectos concernientes a la producción nacional en los tres ámbitos principales: uva de mesa, uva industrial y uva pasa.

#Antecedentes

Como se cultivan en Mexico Las plantas pueden ser propagadas por estacas, por acodos o por injerto de púa o de yema. Se plantan a una distancia de 2.4 a 3 m; luego se podan los brotes, salvo el más vigoroso, que se recorta dejándole dos o tres yemas. Cuando se extiende, se sujeta a un tutor vertical de 2 m o más.

Donde se producen las uvas Los principales Estados productores del país son: Baja California (17,924 toneladas), Zacatecas (17,616 tn), Sonora (12,516 tn), Aguascalientes (8,516 tn) y Coahuila (4,025 tn).

¿Cuánto produce una planta de uva? Planta la cantidad adecuada de uvas Generalmente, las vides producen aproximadamente 2,25 kg por cosecha

¿Cómo es el proceso de cosecha de la uva? La uva es el nombre que recibe el fruto que crece formando racimos en la vid. Esta planta propia de países cálidos y tropicales, se caracteriza por ser trepadora, produciendo frutos con forma de baya. … La Vitis vinífera es la principal especie de uva y tiene alrededor de 4000 variedades distintas.

El estado de Sonora (Hermosillo y Caborca) representa el 95% del total de la producción nacional de uva de mesa y actualmente es capaz de producir cerca de 20 millones de cajas de 8.2 kilogramos, que en su gran mayoría se exportan a Estados Unidos, Canadá, Europa, Sudamérica y Asia, entre otros, así como al mercado

library(readxl)
setwd("~/Desktop/EAMJ1130")
DatosU <- read_excel("DatosU.xlsx")

Correlación lineal

library(pacman)
library(readr)
library(readxl)
library(prettydoc) 
library(DT)
library(dplyr)
## 
## Attaching package: 'dplyr'
## 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
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 data.table::between() masks dplyr::between()
## 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 purrr::transpose()    masks data.table::transpose()
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)
Ano <- DatosU$Ano
d1 <- DatosU$Produccion_obtenida
d2 <- DatosU$Superficie_cosechada
d3 <- DatosU$Rendimiento_obtenido
## Warning: Unknown or uninitialised column: `Rendimiento_obtenido`.
d4 <- DatosU$Valor_de_la_produccion

datos <- data.table(d1, d2, d3, d4)
x <- ggplot(data = datos, aes(x=d1, y = d2)) +
  geom_point(colour="red4") +
  ggtitle("Diagrama de dispersión de Uva") +
  xlab('Producción (Ton)') +
  ylab('Superficie Cosechada (Ha)')
  theme_bw() + 
 theme(plot.title = element_text(hjust = 0.1))
## List of 93
##  $ line                      :List of 6
##   ..$ colour       : chr "black"
##   ..$ size         : num 0.5
##   ..$ linetype     : num 1
##   ..$ lineend      : chr "butt"
##   ..$ arrow        : logi FALSE
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_line" "element"
##  $ rect                      :List of 5
##   ..$ fill         : chr "white"
##   ..$ colour       : chr "black"
##   ..$ size         : num 0.5
##   ..$ linetype     : num 1
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_rect" "element"
##  $ text                      :List of 11
##   ..$ family       : chr ""
##   ..$ face         : chr "plain"
##   ..$ colour       : chr "black"
##   ..$ size         : num 11
##   ..$ hjust        : num 0.5
##   ..$ vjust        : num 0.5
##   ..$ angle        : num 0
##   ..$ lineheight   : num 0.9
##   ..$ margin       : 'margin' num [1:4] 0pt 0pt 0pt 0pt
##   .. ..- attr(*, "valid.unit")= int 8
##   .. ..- attr(*, "unit")= chr "pt"
##   ..$ debug        : logi FALSE
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ title                     : NULL
##  $ aspect.ratio              : NULL
##  $ axis.title                : NULL
##  $ axis.title.x              :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : NULL
##   ..$ hjust        : NULL
##   ..$ vjust        : num 1
##   ..$ angle        : NULL
##   ..$ lineheight   : NULL
##   ..$ margin       : 'margin' num [1:4] 2.75pt 0pt 0pt 0pt
##   .. ..- attr(*, "valid.unit")= int 8
##   .. ..- attr(*, "unit")= chr "pt"
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ axis.title.x.top          :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : NULL
##   ..$ hjust        : NULL
##   ..$ vjust        : num 0
##   ..$ angle        : NULL
##   ..$ lineheight   : NULL
##   ..$ margin       : 'margin' num [1:4] 0pt 0pt 2.75pt 0pt
##   .. ..- attr(*, "valid.unit")= int 8
##   .. ..- attr(*, "unit")= chr "pt"
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ axis.title.x.bottom       : NULL
##  $ axis.title.y              :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : NULL
##   ..$ hjust        : NULL
##   ..$ vjust        : num 1
##   ..$ angle        : num 90
##   ..$ lineheight   : NULL
##   ..$ margin       : 'margin' num [1:4] 0pt 2.75pt 0pt 0pt
##   .. ..- attr(*, "valid.unit")= int 8
##   .. ..- attr(*, "unit")= chr "pt"
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ axis.title.y.left         : NULL
##  $ axis.title.y.right        :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : NULL
##   ..$ hjust        : NULL
##   ..$ vjust        : num 0
##   ..$ angle        : num -90
##   ..$ lineheight   : NULL
##   ..$ margin       : 'margin' num [1:4] 0pt 0pt 0pt 2.75pt
##   .. ..- attr(*, "valid.unit")= int 8
##   .. ..- attr(*, "unit")= chr "pt"
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ axis.text                 :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : chr "grey30"
##   ..$ size         : 'rel' num 0.8
##   ..$ hjust        : NULL
##   ..$ vjust        : NULL
##   ..$ angle        : NULL
##   ..$ lineheight   : NULL
##   ..$ margin       : NULL
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ axis.text.x               :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : NULL
##   ..$ hjust        : NULL
##   ..$ vjust        : num 1
##   ..$ angle        : NULL
##   ..$ lineheight   : NULL
##   ..$ margin       : 'margin' num [1:4] 2.2pt 0pt 0pt 0pt
##   .. ..- attr(*, "valid.unit")= int 8
##   .. ..- attr(*, "unit")= chr "pt"
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ axis.text.x.top           :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : NULL
##   ..$ hjust        : NULL
##   ..$ vjust        : num 0
##   ..$ angle        : NULL
##   ..$ lineheight   : NULL
##   ..$ margin       : 'margin' num [1:4] 0pt 0pt 2.2pt 0pt
##   .. ..- attr(*, "valid.unit")= int 8
##   .. ..- attr(*, "unit")= chr "pt"
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ axis.text.x.bottom        : NULL
##  $ axis.text.y               :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : NULL
##   ..$ hjust        : num 1
##   ..$ vjust        : NULL
##   ..$ angle        : NULL
##   ..$ lineheight   : NULL
##   ..$ margin       : 'margin' num [1:4] 0pt 2.2pt 0pt 0pt
##   .. ..- attr(*, "valid.unit")= int 8
##   .. ..- attr(*, "unit")= chr "pt"
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ axis.text.y.left          : NULL
##  $ axis.text.y.right         :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : NULL
##   ..$ hjust        : num 0
##   ..$ vjust        : NULL
##   ..$ angle        : NULL
##   ..$ lineheight   : NULL
##   ..$ margin       : 'margin' num [1:4] 0pt 0pt 0pt 2.2pt
##   .. ..- attr(*, "valid.unit")= int 8
##   .. ..- attr(*, "unit")= chr "pt"
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ axis.ticks                :List of 6
##   ..$ colour       : chr "grey20"
##   ..$ size         : NULL
##   ..$ linetype     : NULL
##   ..$ lineend      : NULL
##   ..$ arrow        : logi FALSE
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_line" "element"
##  $ axis.ticks.x              : NULL
##  $ axis.ticks.x.top          : NULL
##  $ axis.ticks.x.bottom       : NULL
##  $ axis.ticks.y              : NULL
##  $ axis.ticks.y.left         : NULL
##  $ axis.ticks.y.right        : NULL
##  $ axis.ticks.length         : 'unit' num 2.75pt
##   ..- attr(*, "valid.unit")= int 8
##   ..- attr(*, "unit")= chr "pt"
##  $ axis.ticks.length.x       : NULL
##  $ axis.ticks.length.x.top   : NULL
##  $ axis.ticks.length.x.bottom: NULL
##  $ axis.ticks.length.y       : NULL
##  $ axis.ticks.length.y.left  : NULL
##  $ axis.ticks.length.y.right : NULL
##  $ axis.line                 : list()
##   ..- attr(*, "class")= chr [1:2] "element_blank" "element"
##  $ axis.line.x               : NULL
##  $ axis.line.x.top           : NULL
##  $ axis.line.x.bottom        : NULL
##  $ axis.line.y               : NULL
##  $ axis.line.y.left          : NULL
##  $ axis.line.y.right         : NULL
##  $ legend.background         :List of 5
##   ..$ fill         : NULL
##   ..$ colour       : logi NA
##   ..$ size         : NULL
##   ..$ linetype     : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_rect" "element"
##  $ legend.margin             : 'margin' num [1:4] 5.5pt 5.5pt 5.5pt 5.5pt
##   ..- attr(*, "valid.unit")= int 8
##   ..- attr(*, "unit")= chr "pt"
##  $ legend.spacing            : 'unit' num 11pt
##   ..- attr(*, "valid.unit")= int 8
##   ..- attr(*, "unit")= chr "pt"
##  $ legend.spacing.x          : NULL
##  $ legend.spacing.y          : NULL
##  $ legend.key                :List of 5
##   ..$ fill         : chr "white"
##   ..$ colour       : logi NA
##   ..$ size         : NULL
##   ..$ linetype     : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_rect" "element"
##  $ legend.key.size           : 'unit' num 1.2lines
##   ..- attr(*, "valid.unit")= int 3
##   ..- attr(*, "unit")= chr "lines"
##  $ legend.key.height         : NULL
##  $ legend.key.width          : NULL
##  $ legend.text               :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : 'rel' num 0.8
##   ..$ hjust        : NULL
##   ..$ vjust        : NULL
##   ..$ angle        : NULL
##   ..$ lineheight   : NULL
##   ..$ margin       : NULL
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ legend.text.align         : NULL
##  $ legend.title              :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : NULL
##   ..$ hjust        : num 0
##   ..$ vjust        : NULL
##   ..$ angle        : NULL
##   ..$ lineheight   : NULL
##   ..$ margin       : NULL
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ legend.title.align        : NULL
##  $ legend.position           : chr "right"
##  $ legend.direction          : NULL
##  $ legend.justification      : chr "center"
##  $ legend.box                : NULL
##  $ legend.box.just           : NULL
##  $ legend.box.margin         : 'margin' num [1:4] 0cm 0cm 0cm 0cm
##   ..- attr(*, "valid.unit")= int 1
##   ..- attr(*, "unit")= chr "cm"
##  $ legend.box.background     : list()
##   ..- attr(*, "class")= chr [1:2] "element_blank" "element"
##  $ legend.box.spacing        : 'unit' num 11pt
##   ..- attr(*, "valid.unit")= int 8
##   ..- attr(*, "unit")= chr "pt"
##  $ panel.background          :List of 5
##   ..$ fill         : chr "white"
##   ..$ colour       : logi NA
##   ..$ size         : NULL
##   ..$ linetype     : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_rect" "element"
##  $ panel.border              :List of 5
##   ..$ fill         : logi NA
##   ..$ colour       : chr "grey20"
##   ..$ size         : NULL
##   ..$ linetype     : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_rect" "element"
##  $ panel.spacing             : 'unit' num 5.5pt
##   ..- attr(*, "valid.unit")= int 8
##   ..- attr(*, "unit")= chr "pt"
##  $ panel.spacing.x           : NULL
##  $ panel.spacing.y           : NULL
##  $ panel.grid                :List of 6
##   ..$ colour       : chr "grey92"
##   ..$ size         : NULL
##   ..$ linetype     : NULL
##   ..$ lineend      : NULL
##   ..$ arrow        : logi FALSE
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_line" "element"
##  $ panel.grid.major          : NULL
##  $ panel.grid.minor          :List of 6
##   ..$ colour       : NULL
##   ..$ size         : 'rel' num 0.5
##   ..$ linetype     : NULL
##   ..$ lineend      : NULL
##   ..$ arrow        : logi FALSE
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_line" "element"
##  $ panel.grid.major.x        : NULL
##  $ panel.grid.major.y        : NULL
##  $ panel.grid.minor.x        : NULL
##  $ panel.grid.minor.y        : NULL
##  $ panel.ontop               : logi FALSE
##  $ plot.background           :List of 5
##   ..$ fill         : NULL
##   ..$ colour       : chr "white"
##   ..$ size         : NULL
##   ..$ linetype     : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_rect" "element"
##  $ plot.title                :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : 'rel' num 1.2
##   ..$ hjust        : num 0.1
##   ..$ vjust        : num 1
##   ..$ angle        : NULL
##   ..$ lineheight   : NULL
##   ..$ margin       : 'margin' num [1:4] 0pt 0pt 5.5pt 0pt
##   .. ..- attr(*, "valid.unit")= int 8
##   .. ..- attr(*, "unit")= chr "pt"
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi FALSE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ plot.title.position       : chr "panel"
##  $ plot.subtitle             :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : NULL
##   ..$ hjust        : num 0
##   ..$ vjust        : num 1
##   ..$ angle        : NULL
##   ..$ lineheight   : NULL
##   ..$ margin       : 'margin' num [1:4] 0pt 0pt 5.5pt 0pt
##   .. ..- attr(*, "valid.unit")= int 8
##   .. ..- attr(*, "unit")= chr "pt"
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ plot.caption              :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : 'rel' num 0.8
##   ..$ hjust        : num 1
##   ..$ vjust        : num 1
##   ..$ angle        : NULL
##   ..$ lineheight   : NULL
##   ..$ margin       : 'margin' num [1:4] 5.5pt 0pt 0pt 0pt
##   .. ..- attr(*, "valid.unit")= int 8
##   .. ..- attr(*, "unit")= chr "pt"
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ plot.caption.position     : chr "panel"
##  $ plot.tag                  :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : 'rel' num 1.2
##   ..$ hjust        : num 0.5
##   ..$ vjust        : num 0.5
##   ..$ angle        : NULL
##   ..$ lineheight   : NULL
##   ..$ margin       : NULL
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ plot.tag.position         : chr "topleft"
##  $ plot.margin               : 'margin' num [1:4] 5.5pt 5.5pt 5.5pt 5.5pt
##   ..- attr(*, "valid.unit")= int 8
##   ..- attr(*, "unit")= chr "pt"
##  $ strip.background          :List of 5
##   ..$ fill         : chr "grey85"
##   ..$ colour       : chr "grey20"
##   ..$ size         : NULL
##   ..$ linetype     : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_rect" "element"
##  $ strip.background.x        : NULL
##  $ strip.background.y        : NULL
##  $ strip.placement           : chr "inside"
##  $ strip.text                :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : chr "grey10"
##   ..$ size         : 'rel' num 0.8
##   ..$ hjust        : NULL
##   ..$ vjust        : NULL
##   ..$ angle        : NULL
##   ..$ lineheight   : NULL
##   ..$ margin       : 'margin' num [1:4] 4.4pt 4.4pt 4.4pt 4.4pt
##   .. ..- attr(*, "valid.unit")= int 8
##   .. ..- attr(*, "unit")= chr "pt"
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ strip.text.x              : NULL
##  $ strip.text.y              :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : NULL
##   ..$ hjust        : NULL
##   ..$ vjust        : NULL
##   ..$ angle        : num -90
##   ..$ lineheight   : NULL
##   ..$ margin       : NULL
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ strip.switch.pad.grid     : 'unit' num 2.75pt
##   ..- attr(*, "valid.unit")= int 8
##   ..- attr(*, "unit")= chr "pt"
##  $ strip.switch.pad.wrap     : 'unit' num 2.75pt
##   ..- attr(*, "valid.unit")= int 8
##   ..- attr(*, "unit")= chr "pt"
##  $ strip.text.y.left         :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : NULL
##   ..$ hjust        : NULL
##   ..$ vjust        : NULL
##   ..$ angle        : num 90
##   ..$ lineheight   : NULL
##   ..$ margin       : NULL
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  - attr(*, "class")= chr [1:2] "theme" "gg"
##  - attr(*, "complete")= logi TRUE
##  - attr(*, "validate")= logi TRUE
ggplotly(x)

Análisis de normalidad

Representación gráfica

par (mfrow = c(2,1))
hist(DatosU$Superficie_cosechada, breaks = 3, main="Cosecha y Producción 
     de Uva en Sonora", xlab = "Superficie de Cosecha", border="darkred")
hist(DatosU$Produccion_obtenida, breaks = 3, main = "", xlab = "Produccion", border="blue") 

Gráfico cuantilico

par(mfrow = c(1,1))
qqnorm(DatosU$Superficie_cosechada, main = "Superficie de Cosecha", col = "darkred")
qqline(DatosU$Superficie_cosechada)

qqnorm(DatosU$Produccion_obtenida, main = "Producción", col = "darkred")
qqline(DatosU$Produccion_obtenida)

Prueba (test) de hipotesis para el analisis de normalidad

# Test de Shapiro wilk para pesos 

shapiro.test(DatosU$Superficie_cosechada)
## 
##  Shapiro-Wilk normality test
## 
## data:  DatosU$Superficie_cosechada
## W = 0.84021, p-value = 0.1655

dado que el valor de P es mayor a 0.05 (5%) los datos son normales

# Test de Shapiro wilk para caballos de fuerza

shapiro.test(DatosU$Produccion_obtenida)
## 
##  Shapiro-Wilk normality test
## 
## data:  DatosU$Produccion_obtenida
## W = 0.76406, p-value = 0.03996

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)
## 
## Attaching package: 'psych'
## The following objects are masked from 'package:scales':
## 
##     alpha, rescale
## The following objects are masked from 'package:ggplot2':
## 
##     %+%, alpha
library(GGally)
## 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
## The following object is masked from 'package:purrr':
## 
##     some
## The following object is masked from 'package:dplyr':
## 
##     recode
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
## 
## Attaching package: 'strucchange'
## The following object is masked from 'package:stringr':
## 
##     boundary
library(xtable)
library(extrafont)
## Registering fonts with R
library(normtest)
library(readr)
library(readxl)
library(prettydoc) 
library(DT)
library(dplyr)
library(ggplot2)
library(data.table)
library(scales)
library(plotly)
library(tidyverse)
library(modelr)
library(lubridate)
library(datos)
library(round)

2. Explorar la relacion entre las variables

Uva <- read_excel("Uva.xlsx")
view(Uva)

3. Distribución de los datos

Produccion_obtenida <- Uva$`Produccion_obtenida_(ton)`
Superficie_cosechada <- Uva$`Superficie_cosechada_(ha)`
Rendimiento_promedio <- Uva$`Rendimiento_promedio_(ton/ha)`
Valor_de_la_produccion <- Uva$`Valor_de_la_produccion_(millones)`
datos <- data.table(Produccion_obtenida, Superficie_cosechada, Rendimiento_promedio, Valor_de_la_produccion)
round( cor( x = datos, method = "pearson"),3)
##                        Produccion_obtenida Superficie_cosechada
## Produccion_obtenida                  1.000                0.992
## Superficie_cosechada                 0.992                1.000
## Rendimiento_promedio                 0.812                0.844
## Valor_de_la_produccion               0.993                0.976
##                        Rendimiento_promedio Valor_de_la_produccion
## Produccion_obtenida                   0.812                  0.993
## Superficie_cosechada                  0.844                  0.976
## Rendimiento_promedio                  1.000                  0.782
## Valor_de_la_produccion                0.782                  1.000
multi.hist(x = datos, dcol = c("blue", "red"), dlty = c("dotted", "solid"),main = "")

library(GGally)
ggpairs(datos, 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`.

5.Generar el modelo

modelo <- lm(Produccion_obtenida ~ Superficie_cosechada + Rendimiento_promedio + Valor_de_la_produccion, data = datos )

summary(modelo)
## 
## Call:
## lm(formula = Produccion_obtenida ~ Superficie_cosechada + Rendimiento_promedio + 
##     Valor_de_la_produccion, data = datos)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -13865.4   -461.7    236.3    868.9  10036.0 
## 
## Coefficients:
##                         Estimate Std. Error t value Pr(>|t|)   
## (Intercept)             6220.187  18189.405   0.342  0.74404   
## Superficie_cosechada       8.415      1.918   4.387  0.00463 **
## Rendimiento_promedio    -739.823   1910.085  -0.387  0.71188   
## Valor_de_la_produccion    18.397      3.822   4.814  0.00296 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 7260 on 6 degrees of freedom
## Multiple R-squared:  0.9973, Adjusted R-squared:  0.996 
## F-statistic: 740.9 on 3 and 6 DF,  p-value: 4.264e-08

Regresion NO lineal

Los modelos lineales tienen la ventaja de ser fácilmente interpretables, sin embargo, pueden tener limitaciones importantes en capacidad predictiva. Esto se debe a que, la asunción de linealidad, es con frecuencia una aproximación demasiado simple para describir las relaciones reales entre variables. A continuación, se describen métodos que permiten relajar la condición de linealidad intentando mantener al mismo tiempo una interpretabilidad alta.

Regresión polinómica: Consiste añadir curvatura al modelo introduciendo nuevos predictores que se obtienen al elevar todos o algunos de los predictores originales a distintas potencias.

La forma más sencilla de incorporar flexibilidad a un modelo lineal es introduciendo nuevos predictores obtenidos al elevar a distintas potencias el predictor original.

Partiendo del modelo lineal

\[ y_i = \beta_0 + \beta_1x_i + \epsilon_i \] Se obtiene un modelo polinómico de grado d a partir de la ecuación

\[ y_i = \beta_0 + \beta_1x_i + \beta_2x^2_i + \beta_3x^3_i + ... + \beta_dx^d_i+ \epsilon_i \]

Ejercicio 1:

Regresion polinomica

Tenemos datos de 3000 personas en estados unidos de los cuales nos interesa saber que relacion tiene la edad con el salario

library(readxl)
UvasR <- read_excel("UvasR.xlsx")
library(ISLR)
data("UvasR")
## Warning in data("UvasR"): data set 'UvasR' not found
UvasR$Rendimiento[1:5]
## [1] 16.1 11.8 12.3 12.3  8.1

con esto vamos a construir un modelo de regresion no lineal, llamado regresion polinomica de grado 4

poly(UvasR$Rendimiento, degree = 4, raw = TRUE, simple = TRUE)[1:5,]
##         1      2        3         4
## [1,] 16.1 259.21 4173.281 67189.824
## [2,] 11.8 139.24 1643.032 19387.778
## [3,] 12.3 151.29 1860.867 22888.664
## [4,] 12.3 151.29 1860.867 22888.664
## [5,]  8.1  65.61  531.441  4304.672
poly(UvasR$Rendimiento, degree = 4, raw = FALSE, simple = TRUE)[1:5,]
##               1          2          3           4
## [1,]  0.7141172  0.6014504  0.1668597  0.02092152
## [2,]  0.1444133 -0.3162502 -0.1500125  0.45352325
## [3,]  0.2106579 -0.2996605 -0.3821921 -0.26955429
## [4,]  0.2106579 -0.2996605 -0.3821921 -0.26955429
## [5,] -0.3457970  0.2980710 -0.2072946  0.13752655

Calculo del modelo polinomico de grado 4

modelo_poli4 <- lm(UvasR ~ poly(Rendimiento, 4), data = UvasR )
summary(modelo_poli4)
## 
## Call:
## lm(formula = UvasR ~ poly(Rendimiento, 4), data = UvasR)
## 
## Residuals:
##        1        2        3        4        5        6        7        8 
##    154.7  32663.6  -2307.8 -16674.8   -506.5 -22378.5   4069.8  12357.4 
##        9       10 
##  -4555.5  -2822.2 
## 
## Coefficients:
##                       Estimate Std. Error t value Pr(>|t|)    
## (Intercept)              48891       6402   7.637 0.000613 ***
## poly(Rendimiento, 4)1   278312      20245  13.747 3.66e-05 ***
## poly(Rendimiento, 4)2   189064      20245   9.339 0.000237 ***
## poly(Rendimiento, 4)3    36326      20245   1.794 0.132727    
## poly(Rendimiento, 4)4    29708      20245   1.467 0.202181    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 20250 on 5 degrees of freedom
## Multiple R-squared:  0.9826, Adjusted R-squared:  0.9686 
## F-statistic: 70.39 on 4 and 5 DF,  p-value: 0.000139

Representacion grafica del modelo

#01- Interpolar puntos dentro del rango del predictor

limites <- range(UvasR$Rendimiento)
nuevos_puntos <- seq(from = limites[1], to = limites[2], by = 1)
nuevos_puntos <- data.frame(Rendimiento = nuevos_puntos)

#02 - prediccion de la variable de respuesta y del error estandar

predicciones <- predict(modelo_poli4, newdata = nuevos_puntos, se.fit = TRUE,
                        level = 0.95)

#03 - Calculo del intervalo de confianza superior e inferior a 95


intervalo_conf <- data.frame(inferior = predicciones$fit -
                                        1.96*predicciones$se.fit,
                             superior = predicciones$fit +
                                        1.96*predicciones$se.fit)

attach(UvasR)
## The following object is masked _by_ .GlobalEnv:
## 
##     UvasR
plot(UvasR, Rendimiento, pch = 20, col = "darkgrey")
title("Polinomio de grado 4: UvasR ~ Rendimiento")
points(x = nuevos_puntos$Rendimiento, predicciones$fit, col = "red", pch = 20)
points(x = nuevos_puntos$Rendimiento, intervalo_conf$inferior, col = "blue", pch = 4)
points(x = nuevos_puntos$Rendimiento, intervalo_conf$superior, col = "blue", pch = 4)

Interpolacion de puntos cercanos para curva continua

attach(UvasR)
## The following object is masked _by_ .GlobalEnv:
## 
##     UvasR
## The following objects are masked from UvasR (pos = 3):
## 
##     Rendimiento, Tiempo, UvasR
plot(UvasR, Rendimiento, pch = 20, col = "darkgrey")
title("Polinomio de grado 4: UvasR ~ Rendimiento")
lines(x = nuevos_puntos$Rendimiento, predicciones$fit, col = "blue", lwd = 2)
lines(x = nuevos_puntos$Rendimiento, intervalo_conf$inferior, col = "red", lwd = 2)
lines(x = nuevos_puntos$Rendimiento, intervalo_conf$superior, col = "red", lwd = 2)