Está en la página 1de 20

Lab 1 en R

Paquetes en R

Qué son los paquetes o package?

● Colección de funciones y conjuntos de datos


● Ayudan a potencializar las funcionalidades de R
● Cada paquete tiene su documentación
○ Manual
○ Vignettes
○ Tutoriales
● Algunos ejemplos son MASS, ggplot2, shiny, caret, olsrr y knitr
● Existen más de 15,000 paquetes

Dónde encuentro los paquetes?


● Los paquetes se encuentran en repositorios
● Los tres repositorios principales son
○ CRAN
○ Bioconductor
○ Github
● En cada caso, existe una instrucción para hacer uso del paquete de interés
● Los paquetes se descargan, se instalan y luego se usan
● Las funciones clave son
install.packages​(​‘NombrePackage’​,​dependecies​=​TRUE​) ​require​(NombrePackage)

update.packages​(ask=​FALSE​)

Bases de R

Lectura de datos
● Los datos se almacenan de múltiples formas
● En R existen funcionalidades para leer casi cualquier tipo de datos
● Algunas funciones clave son
○ scan​()
○ read.table​()
○ read.csv​()
○ readLines​()
○ read.xls​()
○ fread​()

Tipos de datos
● Existen múltiples tipos de datos
● Todo en R es un objeto
● Las tipos de datos básicos son
○ character: .ª“,”srw"
○ numeric: 2, 15.5
○ integer: 2L
○ logical: TRUE, FALSE
○ complex: 1+4i
● Para verificar el tipo de datos usamos

x<-'me gusta R'


typeof(x)

## [1] "character"

y<-1:10
typeof(y)

## [1] "integer"

Estructuras de datos
Las estructuras de datos en R son:

● atomic vectors
● list
● matrix
● data.frame
● factors

Ejemplos
## ejemplo 1
z <- c("Jorge", "Gabriela", "Yolima")
z

## [1] "Jorge" "Gabriela" "Yolima"

## agregar una entrada al inicio


(z2 <- c('Luna', z))

## [1] "Luna" "Jorge" "Gabriela" "Yolima"

typeof(z2)

## [1] "character"

length(z2)

## [1] 4

## una matriz
(M <- matrix(1:20, ncol = 5, byrow = TRUE))

## [,1] [,2] [,3] [,4] [,5]


## [1,] 1 2 3 4 5
## [2,] 6 7 8 9 10
## [3,] 11 12 13 14 15
## [4,] 16 17 18 19 20

## vectores con valores NA


x <- c(0.5, NA, 0.7)
y <- c(TRUE, FALSE, NA)

Cómo verificar la estructura de un objeto?


● Verificar la estructura de los datos es importante para determinar qué
operaciones pueden aplicarse
● Esta verificación se realiza utilizando la función

str(M)

## int [1:4, 1:5] 1 6 11 16 2 7 12 17 3 8 ...

● Como ilustración sobre su funcionamiento, utilizaremos los datos de la base cars

data(cars)
str(cars)

## 'data.frame': 50 obs. of 2 variables:


## $ speed: num 4 4 7 7 8 9 10 10 10 11 ...
## $ dist : num 2 10 4 22 16 10 18 26 34 17 ...

#?cars # para buscar ayuda

Operadores lógicos y operaciones básicas?

Revisar el siguiente ​link


10+12

## [1] 22

x<-5
y<-10
z<-x+2*y-3
p1 <- c(5, 2.7, 3.3, 3.7, 3.5, 1.3, 2.6, 3.8, 4, 4.2)
p1 - 0.2

## [1] 4.8 2.5 3.1 3.5 3.3 1.1 2.4 3.6 3.8 4.0

p1 < 3

## [1] FALSE TRUE FALSE FALSE FALSE TRUE TRUE FALSE FALSE FALSE

sum(p1 < 3)

## [1] 3

mean(p1 < 3)

## [1] 0.3

sd(p1)

## [1] 1.020294

sqrt(p1)

## [1] 2.236068 1.643168 1.816590 1.923538 1.870829 1.140175 1.612452


1.949359
## [9] 2.000000 2.049390

Definición y creación de funciones


● Una de las grandes ventajas de R es la posibilidad de construir/agregar
funciones propias
● Una función es un conjunto de instrucciones organizadas para realizar una tarea
específica
● Corresponde a un objeto que el intérprete de R es capaz de entener y utlizar los
argumentos para completar una acción
● Algunas funciones disponibles son
○ sqrt​()
○ mean​()
○ summary​()
○ rowSums​()
○ colSums​()

Regresión Lineal Simple


● El modelo de RLS es utilizado ampliamente para explicar una variable respuesta
continua \(y\) en función de una variable controlable, también conocida como
independiente, llamada \(x\)
● Se toma una muestra de tamaño \(n\) y se tienen los pares de puntos
\((x_1,y_1),(x_2,y_2),\ldots,(x_n,y_n)\)
● En R, la función clave es lm del paquete base

?lm

Ejemplo: Nivel de hidrocarburos vs Pureza

Considere los siguientes datos para los cuales tenemos un proceso de destilación
químico, donde la variable dependiente (\(y\)) corresponde a la pureza del oxígeno y la
variable \(x\) es el porcentaje de hidrocarburos presentes en el condensador principal
de la unidad de destilación.
● Nivel de hidrocarburos=N
● Pureza=P

library(readxl)
pureza <- read_excel("D:/Material de Cursos/Clases Estadisitica/Data Analysis
II/ADDI-II-202002/Unidad 1- Modelo de RLM/pureza.xlsx")
View(pureza)

Gráfico de dispersión

library(ggplot2)
ggplot(pureza, aes(x = N, y = P)) +
geom_point(size=4,colour="red") + theme_light()+
xlab("Nombre X")+ # eje x
ylab("Nombre y")+ # eje y
ggtitle("Título") #título del gráfico
Ajuste del modelo

● Coeficiente de correlación​()

with(pureza, cor(N,P))

## [1] 0.9367154

● Ajuste del modelo​()

fit <- lm(P ~ N, data = pureza)


summary(fit)

##
## Call:
## lm(formula = P ~ N, data = pureza)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.83029 -0.73334 0.04497 0.69969 1.96809
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 74.283 1.593 46.62 < 2e-16 ***
## N 14.947 1.317 11.35 1.23e-09 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.087 on 18 degrees of freedom
## Multiple R-squared: 0.8774, Adjusted R-squared: 0.8706
## F-statistic: 128.9 on 1 and 18 DF, p-value: 1.227e-09

Gráfico del modelo ajustado

ggplot(pureza, aes(x=N, y=P)) +


geom_point() +
geom_smooth(method='lm', se = TRUE, col = 'dodgerblue1') + theme_light()

## `geom_smooth()` using formula 'y ~ x'


Validación de los supuestos

Verificamos la disponibilidad del paquete gvlma

if(!require(gvlma)) install.packages('gvlma')

## Loading required package: gvlma

require(gvlma)

summary(gvlma(fit))

##
## Call:
## lm(formula = P ~ N, data = pureza)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.83029 -0.73334 0.04497 0.69969 1.96809
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 74.283 1.593 46.62 < 2e-16 ***
## N 14.947 1.317 11.35 1.23e-09 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.087 on 18 degrees of freedom
## Multiple R-squared: 0.8774, Adjusted R-squared: 0.8706
## F-statistic: 128.9 on 1 and 18 DF, p-value: 1.227e-09
##
##
## ASSESSMENT OF THE LINEAR MODEL ASSUMPTIONS
## USING THE GLOBAL TEST ON 4 DEGREES-OF-FREEDOM:
## Level of Significance = 0.05
##
## Call:
## gvlma(x = fit)
##
## Value p-value Decision
## Global Stat 3.41715 0.4906 Assumptions acceptable.
## Skewness 0.08176 0.7749 Assumptions acceptable.
## Kurtosis 0.52209 0.4700 Assumptions acceptable.
## Link Function 2.21346 0.1368 Assumptions acceptable.
## Heteroscedasticity 0.59984 0.4386 Assumptions acceptable.

Gráficos Básicos

windows()
par(mfrow = c(2, 2))
plot(fit, las = 1)
Interpretación

1. Residuos vs ajustados

Este gráfico muestra si los residuos tienen patrones no lineales. Podría haber una
relación no lineal entre las variables predictoras y una variable de resultado y el patrón
podría aparecer en este gráfico si el modelo no captura la relación no lineal. Si
encuentra residuos igualmente distribuidos alrededor de una línea horizontal sin
patrones distintos, es una buena indicación de que no tiene relaciones no lineales.

Veamos los gráficos residuales de un modelo “bueno” y un modelo “malo”. Los buenos
datos del modelo se simulan de una manera que cumple muy bien los supuestos de
regresión, mientras que los malos datos del modelo no.
¿Qué piensas? ¿Ves diferencias entre los dos casos? No veo ningún patrón distintivo
en el Caso 1, pero veo una parábola en el Caso 2, donde la relación no lineal no fue
explicada por el modelo y quedó fuera de los residuos.

2. Q-Q normal

Este gráfico muestra si los residuos se distribuyen normalmente. ¿Los residuos siguen
bien una línea recta o se desvían severamente? Es bueno si los residuos están bien
alineados en la línea recta discontinua.
¿Qué piensas? Por supuesto que no serían una línea recta perfecta y esta será tu
decisión. El caso 2 definitivamente me preocupa. No me preocuparía demasiado el
Caso 1, aunque una observación con el número 38 parece un poco fuera de lugar.
Veamos la siguiente trama teniendo en cuenta que el número 38 podría ser un
problema potencial.

3. Ubicación de la escala

También se llama diagrama de ubicación extendida. Este gráfico muestra si los


residuos se distribuyen por igual a lo largo de los rangos de predictores. Así es como
puede comprobar el supuesto de varianza igual (homocedasticidad). Es bueno si ve
una línea horizontal con puntos de dispersión iguales (aleatorios).
¿Qué piensas? En el Caso 1, los residuos aparecen distribuidos aleatoriamente.
Mientras que, en el Caso 2, los residuos comienzan a extenderse más a lo largo del eje
x a medida que pasa alrededor de 5. Debido a que los residuos se extienden más y
más, la línea roja suave no es horizontal y muestra un ángulo pronunciado en el Caso 2.

4. Residuales vs apalancamiento

Esta trama nos ayuda a encontrar casos influyentes (es decir, sujetos) si los hay. No
todos los valores atípicos influyen en el análisis de regresión lineal (independientemente
del significado de los valores atípicos). Aunque los datos tengan valores extremos, es
posible que no influyan en la determinación de una línea de regresión. Eso significa que
los resultados no serían muy diferentes si los incluimos o excluimos del análisis. Siguen
la tendencia en la mayoría de los casos y realmente no importan; no son influyentes.
Por otro lado, algunos casos pueden ser muy influyentes incluso si parecen estar
dentro de un rango razonable de valores. Podrían ser casos extremos contra una línea
de regresión y pueden alterar los resultados si los excluimos del análisis. Otra forma de
decirlo es que no se llevan bien con la tendencia en la mayoría de los casos.

A diferencia de las otras parcelas, esta vez los patrones no son relevantes. Vigilamos
los valores atípicos en la esquina superior derecha o en la esquina inferior derecha.
Esos puntos son los lugares donde los casos pueden influir en una línea de regresión.
Busque casos fuera de una línea discontinua, la distancia de Cook. Cuando los casos
están fuera de la distancia de Cook (lo que significa que tienen puntuaciones de
distancia de Cook altas), los casos influyen en los resultados de la regresión. Los
resultados de la regresión se alterarán si excluimos esos casos.

El caso 1 es el aspecto típico cuando no hay ningún caso o casos influyentes. Apenas
puede ver las líneas de distancia de Cook (una línea discontinua roja) porque todos los
casos están dentro de las líneas de distancia de Cook. En el caso 2, un caso está
mucho más allá de las líneas de distancia de Cook (los otros residuos aparecen
agrupados a la izquierda porque el segundo gráfico se escala para mostrar un área más
grande que el primer gráfico). La trama identificó la observación influyente como # 49.
Si excluyo el caso 49 del análisis, el coeficiente de pendiente cambia de 2.14 a 2.68 y
\(R^2\) de 0.757 a 0.851. ¡Impacto bastante grande!

Las cuatro gráficas muestran posibles casos problemáticos con los números de fila de
los datos en el conjunto de datos. Si se identifican algunos casos en los cuatro
gráficos, es posible que desee examinarlos de cerca de forma individual. ¿Hay algo
especial para el tema? ¿O podrían ser simplemente errores en la entrada de datos?
Predicción

Una vez validamos todos los supuestos del modelo de RLS, podemos

● Predecir el valor esperado de la pureza para valores conocidos de la variable


independiente Edad;
● calcular intervalos de confianza y predicci´on para un \(\alpha \in (0, 1)\)
determinado
a. Intervalo de confianza para la pureza cuando el nivel de hidrocarburos =
1.6

predict(fit, newdata = data.frame(N = 1.6),interval = 'confidence')

## fit lwr upr


## 1 98.19928 96.97061 99.42795

b. Intervalo de predicción para la pureza cuando el nivel de hidrocarburos = 1.6

predict(fit, newdata = data.frame(N = 1.6),interval = 'prediction')

## fit lwr upr


## 1 98.19928 95.60691 100.7917

Homework

Utilice los datos cars.txt que se encuentran en la carpeta datasets de ​cars.txt

● Cuál es el valor del coeficiente de correlación lineal entre las variables speed y
distance? Interprete los resultados
● Estime el modelo de RLS. Tenga en cuenta que la variable respuesta es distance
y está medida en millas por hora (mph). Podemos decir que los parámetros son
significativos? Qu´e implicaciones tiene este resultado? Escriba la ecuación del
modelo ajustado e interprete el valor de \(R^2\).
● Es posible afirmar que el modelo es válido para pronosticar?
● Determine el máximo valor de speed, en kilómetros/hora, al que podría ir un
conductor para que la variable distance esté entre 15 y 20 ft. Tenga en cuenta
que 1 \(ft\) = 30.48 \(cm\).
● Un conductor va a una velocidad de 50 kilómetros/hora podría frenar en menos
de 10 metros? Construya un intervalo de confianza para distance y concluya.

También podría gustarte