Está en la página 1de 169

Introducci

on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Taller basico de R.
Isabel Perez Martnez.
Unidad Acad
emica de Ciencias Qumicas
Universidad Aut
onoma de Zacatecas.

Julio 2015

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Que es R?

R es un lenguaje y entorno de programaci


on gratuito para an
alisis estadstico y
gr
afico.
Compila en una gran variedad de plataformas UNIX, as como Windows y
MacOS. (www.r-project.org)

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Porque usar R?

+ R est
a ganando popularidad
como herramienta
estadstica.

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Porque usar R?

+ R est
a ganando popularidad
como herramienta
estadstica.
+ Al ser un programa gratuito,
existe una gran comunidad
que comparte y desarrolla
paquetes estadsticos bajo
este entorno.

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Porque usar R?

+ R est
a ganando popularidad
como herramienta
estadstica.
+ Al ser un programa gratuito,
existe una gran comunidad
que comparte y desarrolla
paquetes estadsticos bajo
este entorno.
+ En el
ambito acad
emico, R
permite generar gr
aficas de
alta calidad.

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Porque usar R?

+ R est
a ganando popularidad
como herramienta
estadstica.
+ Al ser un programa gratuito,
existe una gran comunidad
que comparte y desarrolla
paquetes estadsticos bajo
este entorno.
+ En el
ambito acad
emico, R
permite generar gr
aficas de
alta calidad.

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Porque usar R?

+ R est
a ganando popularidad
como herramienta
estadstica.
+ Al ser un programa gratuito,
existe una gran comunidad
que comparte y desarrolla
paquetes estadsticos bajo
este entorno.
+ En el
ambito acad
emico, R
permite generar gr
aficas de
alta calidad.

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Porque usar R?

+ R est
a ganando popularidad
como herramienta
estadstica.
+ Al ser un programa gratuito,
existe una gran comunidad
que comparte y desarrolla
paquetes estadsticos bajo
este entorno.
+ En el
ambito acad
emico, R
permite generar gr
aficas de
alta calidad.

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Porque usar R?

+ R est
a ganando popularidad
como herramienta
estadstica.
+ Al ser un programa gratuito,
existe una gran comunidad
que comparte y desarrolla
paquetes estadsticos bajo
este entorno.
+ En el
ambito acad
emico, R
permite generar gr
aficas de
alta calidad.

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Porque usar R?

+ R est
a ganando popularidad
como herramienta
estadstica.
+ Al ser un programa gratuito,
existe una gran comunidad
que comparte y desarrolla
paquetes estadsticos bajo
este entorno.
+ En el
ambito acad
emico, R
permite generar gr
aficas de
alta calidad.

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Porque usar R?

+ R est
a ganando popularidad
como herramienta
estadstica.
+ Al ser un programa gratuito,
existe una gran comunidad
que comparte y desarrolla
paquetes estadsticos bajo
este entorno.
+ En el
ambito acad
emico, R
permite generar gr
aficas de
alta calidad.

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Objetivo.

El objetivo principal de este peque


no taller b
asico de R es: brindar las
herramientas b
asicas para el an
alisis estadstico y visualizaci
on gr
afica de bases
de datos, as como los principios y estructura de programaci
on en el entorno de
R. Para llevar a cabo este objetivo se pretende ver los siguientes temas:
+ Manejo de datos.
+ Visualizaci
on.
+ Modelos estadsticos
+ Principios de programaci
on.

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Instalacion.

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Una sesion de R.
+ Para usuarios de windows, damos doble click en el cono.
+ Para usuarios de Mac/Linux, abrimos una terminal, escribimos R, y damos
enter.

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Una sesion de R.
+ Para usuarios de windows, damos doble click en el cono.
+ Para usuarios de Mac/Linux, abrimos una terminal, escribimos R, y damos
enter.

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Comandos basicos.

+ ls(): nos muestra los objetos que se encuentran en nuestro espacio de


trabajo.

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Comandos basicos.

+ ls(): nos muestra los objetos que se encuentran en nuestro espacio de


trabajo.
+ getwd(): muestra el directorio de nuestro espacio de trabajo.

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Comandos basicos.

+ ls(): nos muestra los objetos que se encuentran en nuestro espacio de


trabajo.
+ getwd(): muestra el directorio de nuestro espacio de trabajo.
+ En caso de cambiar el directorio del espacio de trabajo, se recurre a
setwd()

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Comandos basicos.

+ ls(): nos muestra los objetos que se encuentran en nuestro espacio de


trabajo.
+ getwd(): muestra el directorio de nuestro espacio de trabajo.
+ En caso de cambiar el directorio del espacio de trabajo, se recurre a
setwd()
+ save.image(Datos.R) guarda el espacio de trabajo, y todos los objetos
en este.

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Comandos basicos.

+ ls(): nos muestra los objetos que se encuentran en nuestro espacio de


trabajo.
+ getwd(): muestra el directorio de nuestro espacio de trabajo.
+ En caso de cambiar el directorio del espacio de trabajo, se recurre a
setwd()
+ save.image(Datos.R) guarda el espacio de trabajo, y todos los objetos
en este.
+ source(), ejecuta scripts.
+ load(archivo.R) carga el espacio de trabajo...

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Comandos basicos.

+ ls(): nos muestra los objetos que se encuentran en nuestro espacio de


trabajo.
+ getwd(): muestra el directorio de nuestro espacio de trabajo.
+ En caso de cambiar el directorio del espacio de trabajo, se recurre a
setwd()
+ save.image(Datos.R) guarda el espacio de trabajo, y todos los objetos
en este.
+ source(), ejecuta scripts.
+ load(archivo.R) carga el espacio de trabajo...
+ q(), finalmente, este comando cierra la sesi
on, no sin antes preguntar si se
desea guardar o no, el espacio de trabajo...

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Operaciones basicas.
R permite realizar operaciones b
asicas:

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Operaciones basicas.
R permite realizar operaciones b
asicas:
1. Suma.
> 2 + 4
[1] 6

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Operaciones basicas.
R permite realizar operaciones b
asicas:
1. Suma.
> 2 + 4
[1] 6
2. Multiplicaci
on
> 4 * 2
[1] 8

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Operaciones basicas.
R permite realizar operaciones b
asicas:
1. Suma.
> 2 + 4
[1] 6
2. Multiplicaci
on
> 4 * 2
[1] 8
3. Divisi
on.
> 5/7
[1] 0.71429

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Operaciones basicas.
R permite realizar operaciones b
asicas:
1. Suma.
> 2 + 4
[1] 6
2. Multiplicaci
on
> 4 * 2
[1] 8
3. Divisi
on.
> 5/7
[1] 0.71429
4. Potencia.
> 3^4
[1] 81
M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Operaciones basicas.
R permite realizar operaciones b
asicas:
1. Suma.
> 2 + 4
[1] 6
2. Multiplicaci
on
> 4 * 2
[1] 8
3. Divisi
on.
> 5/7
[1] 0.71429
4. Potencia.
> 3^4
[1] 81
M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Operaciones basicas.
R permite realizar operaciones b
asicas:
1. Suma.
> 2 + 4
[1] 6
2. Multiplicaci
on
> 4 * 2

4. Raices.
> sqrt(4)
[1] 2

[1] 8
3. Divisi
on.
> 5/7
[1] 0.71429
4. Potencia.
> 3^4
[1] 81
M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Operaciones basicas.
R permite realizar operaciones b
asicas:
1. Suma.
> 2 + 4
[1] 6
2. Multiplicaci
on
> 4 * 2
[1] 8
3. Divisi
on.
> 5/7

4. Raices.
> sqrt(4)
[1] 2
5. Factorial
> factorial(4)
[1] 24

[1] 0.71429
4. Potencia.
> 3^4
[1] 81
M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Operaciones basicas.
R permite realizar operaciones b
asicas:
1. Suma.
> 2 + 4
[1] 6
2. Multiplicaci
on
> 4 * 2
[1] 8
3. Divisi
on.
> 5/7
[1] 0.71429
4. Potencia.
> 3^4

4. Raices.
> sqrt(4)
[1] 2
5. Factorial
> factorial(4)
[1] 24
6. Una combinaci
on...
> ((4^2) * 5 + 8/2.5)/(sqrt(4.5) - 3)
[1] -94.688

[1] 81
M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Operaciones basicas.

Para crear nuevas variables, se emplea el operador de asignaci


on <- o bien =.
Por ejemplo:
El
area de un crculo es r 2 , es decir:
> r <- 5
> pi * r^2
[1] 78.54

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Operaciones basicas.

Para crear nuevas variables, se emplea el operador de asignaci


on <- o bien =.
Por ejemplo:
El
area de un crculo es r 2 , es decir:
> r <- 5
> pi * r^2
[1] 78.54
Se puede cambiar el valor del radio, y regresar a aplicar la misma f
ormula:

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Operaciones basicas.

Para crear nuevas variables, se emplea el operador de asignaci


on <- o bien =.
Por ejemplo:
El
area de un crculo es r 2 , es decir:
> r <- 5
> pi * r^2
[1] 78.54
Se puede cambiar el valor del radio, y regresar a aplicar la misma f
ormula:
> r <- 2
> pi * r^2
[1] 12.566
Para remover una variable creada, por ejemplo, supongamos que queremos
eliminar r, rm(r)

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.
Al ser R un programa estadstico, es importante saber crear y manejar bases de
datos.
Como crear un vector:
> A <- c(6, 8, 1, 0, -5)
> A
[1] 6 8 1 0 -5

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.
Al ser R un programa estadstico, es importante saber crear y manejar bases de
datos.
Como crear un vector:
> A <- c(6, 8, 1, 0, -5)
> A
[1] 6 8 1 0 -5
Que podemos hacer con este vector?

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.
Al ser R un programa estadstico, es importante saber crear y manejar bases de
datos.
Como crear un vector:
> A <- c(6, 8, 1, 0, -5)
> A
[1] 6 8 1 0 -5
Que podemos hacer con este vector?
+ Seleccionar un elemento:
> A[2]
[1] 8

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.
Al ser R un programa estadstico, es importante saber crear y manejar bases de
datos.
Como crear un vector:
> A <- c(6, 8, 1, 0, -5)
> A
[1] 6 8 1 0 -5
Que podemos hacer con este vector?
+ Seleccionar un elemento:
> A[2]
[1] 8
+ Seleccionar varios
elementos:
> A[2:4]
[1] 8 1 0

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.
Al ser R un programa estadstico, es importante saber crear y manejar bases de
datos.
Como crear un vector:
> A <- c(6, 8, 1, 0, -5)
> A
[1] 6 8 1 0 -5
Que podemos hacer con este vector?
+ Seleccionar un elemento:
> A[2]
[1] 8
+ Seleccionar varios
elementos:
> A[2:4]
[1] 8 1 0
+ Multiplicar por un escalar:
> A * 3

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.

Al ser R un programa estadstico, es importante saber crear y manejar bases de


datos.
Como crear un vector:
> A <- c(6, 8, 1, 0, -5)
> A
[1] 6 8 1 0 -5
Que podemos hacer con este vector?
+ Seleccionar un elemento:
+ Dividir por un escalar:
> A[2]
> options(digits = 5)
[1] 8
> A/7
+ Seleccionar varios
[1] 0.85714 1.14286 0.14286 0.00000 -0
elementos:
> A[2:4]
[1] 8 1 0
+ Multiplicar por un escalar:
> A * 3

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.

Al ser R un programa estadstico, es importante saber crear y manejar bases de


datos.
Como crear un vector:
> A <- c(6, 8, 1, 0, -5)
> A
[1] 6 8 1 0 -5
Que podemos hacer con este vector?
+ Seleccionar un elemento:
+ Dividir por un escalar:
> A[2]
> options(digits = 5)
[1] 8
> A/7
+ Seleccionar varios
[1] 0.85714 1.14286 0.14286 0.00000 -0
elementos:
+ Sacar un promedio?:
> A[2:4]
[1] 8 1 0
+ Multiplicar por un escalar:
> A * 3

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.

Al ser R un programa estadstico, es importante saber crear y manejar bases de


datos.
Como crear un vector:
> A <- c(6, 8, 1, 0, -5)
> A
[1] 6 8 1 0 -5
Que podemos hacer con este vector?
+ Seleccionar un elemento:
+ Dividir por un escalar:
> A[2]
> options(digits = 5)
[1] 8
> A/7
+ Seleccionar varios
[1] 0.85714 1.14286 0.14286 0.00000 -0
elementos:
+ Sacar un promedio?:
> A[2:4]
> (6 + 8 + 1 + 0 - 5)/5
[1] 8 1 0
[1] 2
+ Multiplicar por un escalar:
> A * 3
M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.

Al ser R un programa estadstico, es importante saber crear y manejar bases de


datos.
Como crear un vector:
> A <- c(6, 8, 1, 0, -5)
> A
[1] 6 8 1 0 -5
Que podemos hacer con este vector?
+ Seleccionar un elemento:
+ Dividir por un escalar:
> A[2]
> options(digits = 5)
[1] 8
> A/7
+ Seleccionar varios
[1] 0.85714 1.14286 0.14286 0.00000 -0
elementos:
+ Sacar un promedio?:
> A[2:4]
> (6 + 8 + 1 + 0 - 5)/5
[1] 8 1 0
[1] 2
+ Multiplicar por un escalar:
> mean(A)
> A * 3
M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.

Al ser R un programa estadstico, es importante saber crear y manejar bases de


datos.
Como crear un vector:
> A <- c(6, 8, 1, 0, -5)
> A
[1] 6 8 1 0 -5
Que podemos hacer con este vector?
+ Seleccionar un elemento:
+ Dividir por un escalar:
> A[2]
> options(digits = 5)
[1] 8
> A/7
+ Seleccionar varios
[1] 0.85714 1.14286 0.14286 0.00000 -0
elementos:
+ Sacar un promedio?:
> A[2:4]
> (6 + 8 + 1 + 0 - 5)/5
[1] 8 1 0
[1] 2
+ Multiplicar por un escalar:
> mean(A)
> A * 3
M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.
Como crear una matriz.

X A traves de la uni
on de
columnas / renglones:
> B <- c(0, 5, 2, -3, 7)
> C <- c(1, 11, 3, 9, 2)
> MC <- cbind(A, B, C)

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.
Como crear una matriz.

X A traves de la uni
on de
columnas / renglones:
> B <- c(0, 5, 2, -3, 7)
> C <- c(1, 11, 3, 9, 2)
> MC <- cbind(A, B, C)
> MC
A B C
[1,] 6 0 1
[2,] 8 5 11
[3,] 1 2 3
[4,] 0 -3 9
[5,] -5 7 2

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.
Como crear una matriz.
> MR <- rbind(A, B, C)

X A traves de la uni
on de
columnas / renglones:
> B <- c(0, 5, 2, -3, 7)
> C <- c(1, 11, 3, 9, 2)
> MC <- cbind(A, B, C)
> MC
A B C
[1,] 6 0 1
[2,] 8 5 11
[3,] 1 2 3
[4,] 0 -3 9
[5,] -5 7 2

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.
Como crear una matriz.
> MR <- rbind(A, B, C)
> MR

X A traves de la uni
on de
columnas / renglones:
> B <- c(0, 5, 2, -3, 7)
> C <- c(1, 11, 3, 9, 2)
> MC <- cbind(A, B, C)
> MC
A B C
[1,] 6 0 1
[2,] 8 5 11
[3,] 1 2 3
[4,] 0 -3 9
[5,] -5 7 2

A
B
C

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


6
8
1
0
-5
0
5
2
-3
7
1
11
3
9
2

Donde se pueden a
nadir nombres de
Columnas y de renglones:

> rownames(MR) <- c("Am", "Az", "Na")


> colnames(MR) <- c("Lo", "Hi", "Me", "Xs", "X
> MR
Am
Az
Na

Lo Hi Me Xs Xxs
6 8 1 0 -5
0 5 2 -3
7
1 11 3 9
2

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.
> MR
Am
Az
Na

Lo Hi Me Xs Xxs
6 8 1 0 -5
0 5 2 -3
7
1 11 3 9
2

Que podemos hacer con esta


matriz?

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.
> MR
Am
Az
Na

Lo Hi Me Xs Xxs
6 8 1 0 -5
0 5 2 -3
7
1 11 3 9
2

Que podemos hacer con esta


matriz?
+ Seleccionar una columna:
> MR[, 5]
Am Az Na
-5 7 2

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.
> MR
Am
Az
Na

Lo Hi Me Xs Xxs
6 8 1 0 -5
0 5 2 -3
7
1 11 3 9
2

Que podemos hacer con esta


matriz?
+ Seleccionar una columna:
> MR[, 5]
Am Az Na
-5 7 2
+ Seleccionar un rengl
on:
> MR[2, ]
Lo
0

Hi
5

Me
2

Xs Xxs
-3
7
M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.
> MR
Am
Az
Na

Lo Hi Me Xs Xxs
6 8 1 0 -5
0 5 2 -3
7
1 11 3 9
2

+ Seleccionar un elemento:
> MR[2, 5]

Que podemos hacer con esta


matriz?

[1] 7

+ Seleccionar una columna:


> MR[, 5]
Am Az Na
-5 7 2
+ Seleccionar un rengl
on:
> MR[2, ]
Lo
0

Hi
5

Me
2

Xs Xxs
-3
7
M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.
> MR
Am
Az
Na

Lo Hi Me Xs Xxs
6 8 1 0 -5
0 5 2 -3
7
1 11 3 9
2

+ Seleccionar un elemento:
> MR[2, 5]

Que podemos hacer con esta


matriz?
+ Seleccionar una columna:
> MR[, 5]

[1] 7
+ Invertir
> MRCuadrada <- MR[, 1:3]
> solve(MRCuadrada)
Am
Az
Na
Lo 0.225806 0.41935 -0.35484
Hi -0.064516 -0.54839 0.38710
Me 0.161290 1.87097 -0.96774

Am Az Na
-5 7 2
+ Seleccionar un rengl
on:
> MR[2, ]
Lo
0

Hi
5

Me
2

Xs Xxs
-3
7
M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.

A traves de la funci
on solve(), se pueden resolver sistemas de ecuaciones
lineales de la forma b=Ax, donde b y x son vectores, y A es una matriz:

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.

A traves de la funci
on solve(), se pueden resolver sistemas de ecuaciones
lineales de la forma b=Ax, donde b y x son vectores, y A es una matriz:
> A <- matrix(c(-1, 0, 3, 4, 1, 2, -3, 8, 1), 3, 3)
> b <- c(-1, 1, 3)
> solve(A, b)
[1] 0.916667 0.066667 0.116667

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.

+ Transpuesta
> t(MR)
Am Az Na
Lo
6 0 1
Hi
8 5 11
Me
1 2 3
Xs
0 -3 9
Xxs -5 7 2
Por otro lado, se puede obtener informaci
on acerca de la matriz:
> dim(MR)
[1] 3 5
Es decir, tiene 3 renglones y 5 columnas

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.
Para multiplicar matrices:
> MR * MR
Lo Hi Me Xs Xxs
Am 36 64 1 0 25
Az 0 25 4 9 49
Na 1 121 9 81
4
Que multiplica elemento por elemento, sin embargo, si se desea una
multiplicaci
on matricial:

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.
Para multiplicar matrices:
> MR * MR
Lo Hi Me Xs Xxs
Am 36 64 1 0 25
Az 0 25 4 9 49
Na 1 121 9 81
4
Que multiplica elemento por elemento, sin embargo, si se desea una
multiplicaci
on matricial:
> MR %*% MR

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.
Para multiplicar matrices:
> MR * MR
Lo Hi Me Xs Xxs
Am 36 64 1 0 25
Az 0 25 4 9 49
Na 1 121 9 81
4
Que multiplica elemento por elemento, sin embargo, si se desea una
multiplicaci
on matricial:
> MR %*% MR
... y les va a decir que no se puede...
> MR[, 1:3] %*% MR
Lo Hi Me Xs Xxs
Am 37 99 25 -15 28
Az 2 47 16
3 39
Na 9 96 32 -6 78
M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.
X Otra forma de crear una matriz, es a partir del comando matrix:

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.
X Otra forma de crear una matriz, es a partir del comando matrix:
> xx <- matrix(c(1, 2, 3, 4, 5, 6, 7, 8), 4, 2)
> xx
[,1] [,2]
[1,]
1
5
[2,]
2
6
[3,]
3
7
[4,]
4
8
Crea una matriz de 4 renglones y 2 columnas, en las cuales acomoda los
valores por columna. Si se desea que se acomoden por rengl
on se usa la
opci
on byrow=T:

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.
X Otra forma de crear una matriz, es a partir del comando matrix:
> xx <- matrix(c(1, 2, 3, 4, 5, 6, 7, 8), 4, 2)
> xx
[,1] [,2]
[1,]
1
5
[2,]
2
6
[3,]
3
7
[4,]
4
8
Crea una matriz de 4 renglones y 2 columnas, en las cuales acomoda los
valores por columna. Si se desea que se acomoden por rengl
on se usa la
opci
on byrow=T:
> xx <- matrix(c(1, 2, 3, 4, 5, 6, 7, 8), 4, 2, byrow = T)
> xx
[,1] [,2]
[1,]
1
2
[2,]
3
4
[3,]
5
6
[4,]
7
8
M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.

X Se pueden crear matrices diagonales:

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.

X Se pueden crear matrices diagonales:


> xdiag <- diag(nrow = 4, ncol = 4)
> xdiag
[1,]
[2,]
[3,]
[4,]

[,1] [,2] [,3] [,4]


1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.
Con respecto a multiplicar solo una columna o un rengl
on de una matriz:
> xx
[1,]
[2,]
[3,]
[4,]

[,1] [,2]
1
2
3
4
5
6
7
8

> xx[, 2] <- xx[, 2] * 2


> xx
[1,]
[2,]
[3,]
[4,]

[,1] [,2]
1
4
3
8
5
12
7
16

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.

En R existe la funci
on summary, en este caso, aplicada a una matriz:

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.

En R existe la funci
on summary, en este caso, aplicada a una matriz:
> summary(MR)
Lo
Min.
:0.00
1st Qu.:0.50
Median :1.00
Mean
:2.33
3rd Qu.:3.50
Max.
:6.00

Hi
Min.
: 5.0
1st Qu.: 6.5
Median : 8.0
Mean
: 8.0
3rd Qu.: 9.5
Max.
:11.0

Me
Min.
:1.0
1st Qu.:1.5
Median :2.0
Mean
:2.0
3rd Qu.:2.5
Max.
:3.0

M.I. P
erez Martnez

Xs
Min.
:-3.0
1st Qu.:-1.5
Median : 0.0
Mean
: 2.0
3rd Qu.: 4.5
Max.
: 9.0

Taller b
asico de R.

Xxs
Min.
:-5.00
1st Qu.:-1.50
Median : 2.00
Mean
: 1.33
3rd Qu.: 4.50
Max.
: 7.00

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.

Finalmente, despues de trabajar con las variables de datos, existe una forma de
guardar las variables en un archivo de texto, y es mediante la funcion
write.table()
> write.table(MR, file = "MR.txt", sep = "\t")
donde, en este caso, para separar las entradas se usa el tabulador. ? tarea!

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.

Para accesar a datos desde un archivo externo:


> Soc <- read.table("Soc.txt", header = T, row.names = 1)
+ El archivo donde se encuentran los datos es Soc.txt, si el archivo se
encuentra en otro directorio, que no es en el cual estamos trabajando, se
tiene que especificar
+ Se indica que tiene nombre de columnas: header=T
+ Se indica que los nombres de los renglones se encuentra en la primer
columna row.names=1

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.
> Soc
AEKAthens
NEC_Nijmegen
Dynamo_Kyiv
Hearts
Benfica
Genk
KV_Mechelen
Barcelona
IFK_Gothenburg
Celtic
Real_Madrid
FC_Porto
Rosenborg
Viktoria_Plzen
Iraklis
Norwich
Bayern_Munich
Olympiakos
Chelsea
Juventus

P Ganados Empates Perdidos Goles_Fav Goles_contra Puntos


24
92
8
0
2.8
0.5
2.9
38
87
5
8
2.7
0.9
2.7
26
77
23
0
2.5
0.5
2.6
36
81
11
8
2.7
0.8
2.6
34
79
12
9
2.6
0.5
2.5
6
83
0
17
2.4
1.2
2.5
6
83
0
17
2.4
0.5
2.5
38
79
11
11
2.9
0.6
2.5
13
77
15
8
1.5
0.4
2.5
38
76
13
11
2.3
0.5
2.5
38
79
5
16
3.2
1.0
2.5
34
74
21
6
2.2
0.4
2.5
12
75
17
8
3.1
1.1
2.5
30
77
10
13
2.4
0.8
2.4
24
71
25
4
1.5
0.4
2.4
3
67
33
0
2.0
0.7
2.4
34
74
12
15
2.4
0.6
2.4
34
71
18
12
2.4
0.7
2.3
38
68
24
8
2.0
0.9
2.3
38
68
24
8
1.9
0.7
2.3
M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.

Obtenemos el summary de dicha base de datos:


> summary(Soc)
P
Min.
: 3.0
1st Qu.:12.2
Median :32.0
Mean
:25.8
3rd Qu.:35.5
Max.
:38.0
Goles_contra
Min.
:0.400
1st Qu.:0.525
Median :0.700
Mean
:0.767
3rd Qu.:0.900
Max.
:1.500

Ganados
Min.
:63.0
1st Qu.:68.5
Median :74.0
Mean
:74.0
3rd Qu.:78.5
Max.
:92.0
Puntos
Min.
:2.20
1st Qu.:2.30
Median :2.40
Mean
:2.41
3rd Qu.:2.50
Max.
:2.90

Empates
Min.
: 0.0
1st Qu.:10.0
Median :14.0
Mean
:15.2
3rd Qu.:23.0
Max.
:33.0

M.I. P
erez Martnez

Perdidos
Min.
: 0.0
1st Qu.: 8.0
Median :10.5
Mean
:11.0
3rd Qu.:15.8
Max.
:25.0

Taller b
asico de R.

Goles_Fav
Min.
:1.30
1st Qu.:1.93
Median :2.25
Mean
:2.26
3rd Qu.:2.58
Max.
:3.20

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.

Podemos llamar las columnas de esta base de datos de dos formas:


> Soc[, 3]
[1] 8 5 23 11 12
[26] 10 10 29 24 17

0 11 15 13

5 21 17 10 25 33 12 18 24 24 15

0 13 29 23

0 11 15 13

5 21 17 10 25 33 12 18 24 24 15

0 13 29 23

O bien:
> Soc$Empates
[1] 8 5 23 11 12
[26] 10 10 29 24 17

Existe, adem
as, la forma de crear cada columna como una variable
independiente dentro de nuestra sesi
on de R, esto mediante la funci
on attach.

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.
Supongamos que se desea saber qu
e equipos anotaron m
as goles que el promedio
(2.26):

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.
Supongamos que se desea saber qu
e equipos anotaron m
as goles que el promedio
(2.26):
> Soc[Soc$Goles_Fav > 2.26, ]
AEKAthens
NEC_Nijmegen
Dynamo_Kyiv
Hearts
Benfica
Genk
KV_Mechelen
Barcelona
Celtic
Real_Madrid
Rosenborg
Viktoria_Plzen
Bayern_Munich
Olympiakos
Lokeren

P Ganados Empates Perdidos Goles_Fav Goles_contra Puntos


24
92
8
0
2.8
0.5
2.9
38
87
5
8
2.7
0.9
2.7
26
77
23
0
2.5
0.5
2.6
36
81
11
8
2.7
0.8
2.6
34
79
12
9
2.6
0.5
2.5
6
83
0
17
2.4
1.2
2.5
6
83
0
17
2.4
0.5
2.5
38
79
11
11
2.9
0.6
2.5
38
76
13
11
2.3
0.5
2.5
38
79
5
16
3.2
1.0
2.5
12
75
17
8
3.1
1.1
2.5
30
77
10
13
2.4
0.8
2.4
34
74
12
15
2.4
0.6
2.4
34
71
18
12
2.4
0.7
2.3
6
67
17
17
3.2
1.5
2.2
M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.

O bien, quien tuvo la menor cantidad de partidos ganados:

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.

O bien, quien tuvo la menor cantidad de partidos ganados:


> Soc[Soc$Ganados == min(Soc$Ganados), ]
P Ganados Empates Perdidos Goles_Fav Goles_contra Puntos
Paris_ 38
63
29
8
2.2
1
2.2
o quien obtuvo la mayor cantidad de partidos ganados:

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.

O bien, quien tuvo la menor cantidad de partidos ganados:


> Soc[Soc$Ganados == min(Soc$Ganados), ]
P Ganados Empates Perdidos Goles_Fav Goles_contra Puntos
Paris_ 38
63
29
8
2.2
1
2.2
o quien obtuvo la mayor cantidad de partidos ganados:
> Soc[Soc$Ganados == max(Soc$Ganados), ]
P Ganados Empates Perdidos Goles_Fav Goles_contra Puntos
AEKAthens 24
92
8
0
2.8
0.5
2.9

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.

Finalmente, tambien se puede seleccionar de una base de datos, a partir de dos


o m
as criterios:
Supongamos que queremos saber que equipos, de los que anotaron m
as goles
que el promedio, ganaron m
as de 80 partidos:

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Manejo de datos.

Finalmente, tambien se puede seleccionar de una base de datos, a partir de dos


o m
as criterios:
Supongamos que queremos saber que equipos, de los que anotaron m
as goles
que el promedio, ganaron m
as de 80 partidos:

> Soc[Soc$Goles_Fav > 2.26 & Soc$Ganados > 80, ]


P Ganados Empates Perdidos Goles_Fav Goles_contra Puntos
AEKAthens
24
92
8
0
2.8
0.5
2.9
NEC_Nijmegen 38
87
5
8
2.7
0.9
2.7
Hearts
36
81
11
8
2.7
0.8
2.6
Genk
6
83
0
17
2.4
1.2
2.5
KV_Mechelen
6
83
0
17
2.4
0.5
2.5

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.

Una de las primeras aproximaciones que tenemos para conocer una base de
datos, es visualizar las posibles relaciones que existan entre diferentes variables.
Para esto existe la funcion pairs

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.
> pairs(Soc)

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.
> pairs(Soc)

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.
Se puede observar que existe una relaci
on entre diversas variables, pero,
analicemos una de las m
as obvias: Partidos ganados vs puntos.
Empecemos por una gr
afica de dispersi
on
> plot(x = Soc$Ganados, y = Soc$Puntos)

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.
Cambiando los smbolos de la gr
afica. La funci
on plot permite cambiar los
smbolos de la gr
afica, mediante la opci
on pch:

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.
Cambiando los smbolos de la gr
afica. Supongamos que queremos en lugar
de crculos vacios, cuadrados rellenos, y no solo eso, los queremos de color azul.
> plot(x = Soc$Ganados, y = Soc$Puntos, pch = 15, col = "blue")

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.
Pero, falta corregir los nombres de los ejes, y el ttulo principal:

> plot(x = Soc$Ganados, y = Soc$Puntos, pch = 15, col = "blue",


+
xlab = "Partidos ganados", ylab = "Puntos", main = "Relacion entre partidos

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.
Para cambiar el tama
no de los nombres de los ejes, y de los smbolos, existe la
opci
on cex, por s sola, cambia el tama
no de los smbolos, y como cex.lab y
cex.main cambia el tama
no del nombre de los ejes y del ttulo principal,
respectivamente.

> plot(x = Soc$Ganados, y = Soc$Puntos, pch = 15, col = "blue",


+
xlab = "Partidos ganados", ylab = "Puntos", main = "Relacion entre partidos
+
cex = 2, cex.lab = 1.5, cex.main = 2)

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.

Supongamos que de la gr
afica queremos identificar d
onde se encuentran
posicionados:
+ El equipo con m
as juegos perdidos

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.

Supongamos que de la gr
afica queremos identificar d
onde se encuentran
posicionados:
+ El equipo con m
as juegos perdidos
> points(x = Soc[Soc[, 4] == max(Soc[, 4]), 2], y = Soc[Soc[, 4] ==
+
max(Soc[, 4]), 7], pch = 16, cex = 2, col = "red")

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.

Supongamos que de la gr
afica queremos identificar d
onde se encuentran
posicionados:
+ El equipo con m
as juegos perdidos
> points(x = Soc[Soc[, 4] == max(Soc[, 4]), 2], y = Soc[Soc[, 4] ==
+
max(Soc[, 4]), 7], pch = 16, cex = 2, col = "red")
+ El equipo con m
as empates

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.

Supongamos que de la gr
afica queremos identificar d
onde se encuentran
posicionados:
+ El equipo con m
as juegos perdidos
> points(x = Soc[Soc[, 4] == max(Soc[, 4]), 2], y = Soc[Soc[, 4] ==
+
max(Soc[, 4]), 7], pch = 16, cex = 2, col = "red")
+ El equipo con m
as empates
> points(x = Soc[Soc[, 3] == max(Soc[, 3]), 2], y = Soc[Soc[, 3] ==
+
max(Soc[, 3]), 7], pch = 16, cex = 2, col = "green")

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.

Supongamos que de la gr
afica queremos identificar d
onde se encuentran
posicionados:
+ El equipo con m
as juegos perdidos
> points(x = Soc[Soc[, 4] == max(Soc[, 4]), 2], y = Soc[Soc[, 4] ==
+
max(Soc[, 4]), 7], pch = 16, cex = 2, col = "red")
+ El equipo con m
as empates
> points(x = Soc[Soc[, 3] == max(Soc[, 3]), 2], y = Soc[Soc[, 3] ==
+
max(Soc[, 3]), 7], pch = 16, cex = 2, col = "green")
+ El equipo con m
as goles por partido

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.

Supongamos que de la gr
afica queremos identificar d
onde se encuentran
posicionados:
+ El equipo con m
as juegos perdidos
> points(x = Soc[Soc[, 4] == max(Soc[, 4]), 2], y = Soc[Soc[, 4] ==
+
max(Soc[, 4]), 7], pch = 16, cex = 2, col = "red")
+ El equipo con m
as empates
> points(x = Soc[Soc[, 3] == max(Soc[, 3]), 2], y = Soc[Soc[, 3] ==
+
max(Soc[, 3]), 7], pch = 16, cex = 2, col = "green")
+ El equipo con m
as goles por partido
> points(x = Soc[Soc[, 5] == max(Soc[, 5]), 2], y = Soc[Soc[, 5] ==
+
max(Soc[, 5]), 7], pch = 16, cex = 2, col = "gray")

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.
Finalmente, cabra incluir las leyendas de cada vi
neta.
> legend("topleft", c("Juegos perdidos", "Empates", "Goles a Favor"),
+
pch = 16, col = c("red", "green", "gray"))

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.
Finalmente, cabra incluir las leyendas de cada vi
neta.
> legend("topleft", c("Juegos perdidos", "Empates", "Goles a Favor"),
+
pch = 16, col = c("red", "green", "gray"))

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.
Ejercicio. C
omo creamos esta gr
afica?

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.
Para nuestro siguiente caso de visualizaci
on, vamos a cargar una nueva base de
datos:
> USD_MX <- read.table(file = "USDMX.txt", header = T)
> dim(USD_MX)
[1] 3891

> USD_MX[1:10, ]
1
2
3
4
5
6
7
8
9
10

Fecha
16/06/2015
15/06/2015
12/06/2015
11/06/2015
10/06/2015
09/06/2015
08/06/2015
05/06/2015
04/06/2015
03/06/2015

Compra
15.414
15.431
15.431
15.495
15.435
15.556
15.674
15.722
15.495
15.513
M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.

De manera que esta nueva base de datos nos indica el cambio del precio del
dolar a lo largo de 15 a
nos. En este caso, una de nuestras variables es el tiempo.
Para poder graficar el tiempo, necesitamos indicar que la variable es temporal:
> USD_MX$Fecha <- as.Date(USD_MX$Fecha, "%d/%m/%Y")
Finalmente, graficamos:

> plot(USD_MX$Fecha, USD_MX$Compra, xlab = "Tiempo", ylab = "Precio de c


+
main = "Precio de compra del dolar", type = "l", cex.lab = 1.5,
+
cex.main = 1.3)

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.

Para a
nadir lneas a un gr
afico, se usa el comando abline. Por ejemplo,
supongamos que queremos a
nadir una lnea que indique el promedio del precio
del d
olar.
> mean(USD_MX$Compra)
[1] 11.583
> abline(h = 11.58332)

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.

Existen diferentes tipos de lneas:

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.

Una opci
on para incluir lneas de divisi
on, es a traves del comando grid():
> grid()

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.

Una opci
on para incluir lneas de divisi
on, es a traves del comando grid():
> grid()
Sin embargo, esto se puede hacer de una forma m
as cuidadosa creando una
secuencia de lneas:

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.

Una opci
on para incluir lneas de divisi
on, es a traves del comando grid():
> grid()
Sin embargo, esto se puede hacer de una forma m
as cuidadosa creando una
secuencia de lneas:
> abline(v = seq(from = as.Date("2000-1-1"), to = as.Date("2015-1-3"),
+
by = "year"), lty = "dotted", col = "gray")
> abline(v = seq(from = as.Date("2000-1-1"), to = as.Date("2015-1-3"),
+
by = "5 year"), lty = "solid", col = "gray")

Es decir, van a agregar dos tipos de lneas divisoras: cada a


no y cada cinco a
nos

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.
Finalmente agregamos las lneas divisoras del precio, una lnea cada $1 y otra
cada $0.5.

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.

Para realizar un histograma, generaremos n


umeros aleatorios, con una
distribuci
on normal:

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.

Para realizar un histograma, generaremos n


umeros aleatorios, con una
distribuci
on normal:
> Aleatorio <- rnorm(1000, mean = 0, sd = 1)

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.

Para realizar un histograma, generaremos n


umeros aleatorios, con una
distribuci
on normal:
> Aleatorio <- rnorm(1000, mean = 0, sd = 1)
Para graficar el histograma de estos datos:

> hist(Aleatorio, breaks = 5, col = "grey80", freq = F, main = "Histogra


+
xlab = "Numeros aleatorios", ylab = "Densidad")

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.

Para realizar un histograma, generaremos n


umeros aleatorios, con una
distribuci
on normal:
> Aleatorio <- rnorm(1000, mean = 0, sd = 1)
Para graficar el histograma de estos datos:

> hist(Aleatorio, breaks = 5, col = "grey80", freq = F, main = "Histogra


+
xlab = "Numeros aleatorios", ylab = "Densidad")
Para cambiar la cantidad de barras, se usa la opci
on breaks=, y el color a
traves de la opci
on col=, si se desea a
nadir la curva de densidad a los datos, se
puede hacer a traves del comando lines

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.

Para realizar un histograma, generaremos n


umeros aleatorios, con una
distribuci
on normal:
> Aleatorio <- rnorm(1000, mean = 0, sd = 1)
Para graficar el histograma de estos datos:

> hist(Aleatorio, breaks = 5, col = "grey80", freq = F, main = "Histogra


+
xlab = "Numeros aleatorios", ylab = "Densidad")
Para cambiar la cantidad de barras, se usa la opci
on breaks=, y el color a
traves de la opci
on col=, si se desea a
nadir la curva de densidad a los datos, se
puede hacer a traves del comando lines
> lines(density(Aleatorio, from = min(Aleatorio), to = max(Aleatorio)),
+
lty = "dotted")

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.

Para nuestro siguiente ejemplo, vamos a cargar el siguiente archivo Super.txt.


Vamos a indicar que tiene encabezados, donde los nombres de los renglones se
encuentra en la columna 1.

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.

Para nuestro siguiente ejemplo, vamos a cargar el siguiente archivo Super.txt.


Vamos a indicar que tiene encabezados, donde los nombres de los renglones se
encuentra en la columna 1.
Pongamos en contexto la base de datos: esta nos indica cu
antas empresas, de
cierto sector, sobreviven despues de determinado tiempo. Es decir, de 100
empresas que inician en el sector Manufacturero, despues de 1 a
no de
operaciones, sobreviven 43, despues de 25 a
nos, solo sobreviven 14.
Hacemos una gr
afica de barras, del sector comercio:

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.
> barplot(Super$Comercio)

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.
> barplot(Super$Comercio)

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.

Sin embargo, habr


a que agregar las etiquetas, ttulos y colores...
> barplot(Super$Comercio, names.arg = rownames(Super), xlab = "Anos",
+
ylab = "Empresas sobrevivientes", main = "Supervivencia de empresas comerci
+
col = c("gray30", "gray35", "gray40", "gray45", "gray50",
+
"gray55", "gray60"))

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.

Sin embargo, habr


a que agregar las etiquetas, ttulos y colores...
> barplot(Super$Comercio, names.arg = rownames(Super), xlab = "Anos",
+
ylab = "Empresas sobrevivientes", main = "Supervivencia de empresas comerci
+
col = c("gray30", "gray35", "gray40", "gray45", "gray50",
+
"gray55", "gray60"))

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.

Una u
ltima opci
on de color de barras, es a trav
es de la opci
on density
> SuperBarPlot <- barplot(Super$Comercio, names.arg = rownames(Super),
+
xlab = "Anos", ylab = "Empresas sobrevivientes", main = "Supervivencia de e
+
density = c(1, 3, 5, 10, 15, 20, 30))

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.

Una u
ltima opci
on de color de barras, es a trav
es de la opci
on density
> SuperBarPlot <- barplot(Super$Comercio, names.arg = rownames(Super),
+
xlab = "Anos", ylab = "Empresas sobrevivientes", main = "Supervivencia de e
+
density = c(1, 3, 5, 10, 15, 20, 30))

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.

Finalmente, para agregar la grafica de dispersi


on/lneas a nuestra gr
afica de
barras, se puede hacer por medio de lines y points:
> lines(x = SupBarPlot, y = Super$Comercio, lty = "dashed")
> points(x = SupBarPlot, y = Super$Comercio, pch = 16)

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.

Sin embargo, no solo tenemos datos de un solo sector empresarial, sino de tres, en este
caso, para comparar dentro de un gr
afico de barras la supervivencia de estos tres
sectores comerciales
> barplot(as.matrix(t(Super)), beside = TRUE, xlab = "Anos", ylab = "Empresas sob
+
main = "Supervivencia de empresas comerciales", density = c(1,
+
10, 30))
> legend("topright", c("Manufacturero", "Comercio", "Servicios Privados"),
+
density = c(1, 10, 30), bty = "n")

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Visualizacion.

Sin embargo, no solo tenemos datos de un solo sector empresarial, sino de tres, en este
caso, para comparar dentro de un gr
afico de barras la supervivencia de estos tres
sectores comerciales
> barplot(as.matrix(t(Super)), beside = TRUE, xlab = "Anos", ylab = "Empresas sob
+
main = "Supervivencia de empresas comerciales", density = c(1,
+
10, 30))
> legend("topright", c("Manufacturero", "Comercio", "Servicios Privados"),
+
density = c(1, 10, 30), bty = "n")

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Regresiones lineales
Tomemos como ejemplo el gr
afico de dispersi
on entre la Edad y la cantidad de
Comercios sobrevivientes. Podemos observar que existe una relaci
on.
Tomemos como primer aproximaci
on un ajuste lineal:
> AjLineal <- lm(Super$Comercio ~ Super$Edad)
> summary(AjLineal)
Call:
lm(formula = Super$Comercio ~ Super$Edad)
Residuals:
1
2
3
4
5
20.064 -6.284 -8.676 -8.416 -5.156

6
0.104

7
8.364

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept)
41.936
6.990
6.00
0.0018 **
Super$Edad
-1.652
0.499
-3.31
0.0212 *
--Signif. codes: 0 a
^
A
Y***^
a
A
Z 0.001 ^
a
A
Y**^
a
A
Z 0.01 ^
a
A
Y*^
a
A
Z 0.05 ^
a
A
Y.^
a
A
Z 0.1 a
^
A
Y a
^
A
Z
Residual standard error: 11.7 on 5 degrees of freedom
Multiple R-squared: 0.687, Adjusted R-squared: 0.624
F-statistic:
11 on 1 and
5erezDF,
0.0212
M.I. P
Martnezp-value:
Taller b
asico
de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Regresiones lineales
2
Donde, los coeficientes R 2 y RAdj
eval
uan la bondad del ajuste del modelo a los
datos, es decir, lo que se busca en un buen ajuste, es un coeficiente R 2 cercano
a 1.
Estos coeficientes de calculan a partir del an
alisis de varianza del modelo:
> anova(AjLineal)
Analysis of Variance Table

Response: Super$Comercio
Df Sum Sq Mean Sq F value Pr(>F)
Super$Edad 1
1503
1503
11.0 0.021 *
Residuals
5
685
137
--Signif. codes: 0 ^
a
A
Y***^
a
A
Z 0.001 ^
a
A
Y**^
a
A
Z 0.01 ^
a
A
Y*^
a
A
Z 0.05 a
^
A
Y.^
a
A
Z 0.1
Donde
1503
R2 =
= 0.68693
1503 + 685
y
685/5
RA2 dj = 1
= 0.62431
(1503 + 685)/(5 + 1)
M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Regresiones lineales.
Por otro lado, la regresi
on lineal nos permite conocer, de menera gr
afica,
ciertas caractersticas del ajuste:
> layout(matrix(1:4, 2, 2))
> plot(AjLineal)

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Regresiones lineales.
De manera que, el ajuste lineal tiene la siguiente forma:
y = 1.652x + 41.936
Donde, y es el n
umero de comercios sobrevivientes, y x es la edad. Para
visualizar esta funci
on en la gr
afica de dispersi
on, se puede hacer de dos
maneras:
+ A traves de abline:
> abline(41.936, -1.652, col = "red", lty = "dotted")
+ A traves de curve:
> curve(-1.652 * x + 41.936, col = "red", lty = "dotted", add = T)
Sin embargo, primero, se debe hacer la gr
afica de dispersi
on (y como
modificamos el layout del gr
afico, hacemos antes un dev.off(), para reiniciar la
ventana del gr
afico):
> plot(Super$Edad, Super$Comercio, xlab = "Edad", ylab = "Comercios",
+
main = "Comercios sobrevivientes", pch = 16)
M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Regresiones lineales.

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Regresiones lineales.

Ahora, vamos a determinar las bandas de confianza (que tan bueno fue el
ajuste lineal) y de predicci
on (que tan bueno ser
a el modelo para predecir
futuros valores). Para esto hacemos uso de la funci
on predict()
> AjLineal_Co <- predict(AjLineal, interval = "confidence")
y para el intervalo de predicci
on:
> AjLineal_Pre <- predict(AjLineal, interval = "prediction")

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Regresiones lineales.
Donde:
> AjLineal_Co
1
2
3
4
5
6
7

fit
lwr
41.93568 23.9660
40.28371 23.2872
33.67583 20.0514
25.41598 13.9933
17.15612
4.6076
8.89627 -7.4312
0.63641 -20.7609

upr
59.905
57.280
47.300
36.839
29.705
25.224
22.034

> AjLineal_Pre
1
2
3
4
5
6
7

fit
lwr
upr
41.93568
6.89569 76.976
40.28371
5.73268 74.835
33.67583
0.65283 66.699
25.41598 -6.76120 57.593
17.15612 -15.43771 49.750
8.89627 -25.33062 43.123
0.63641 -36.27886 37.552
M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Regresiones lineales.

Nos damos cuenta que, tienen un lmite superior (columna 3) y un lmite


inferior (columna 2), graficamos estas columnas tomando como valores en el
eje x la variable Super$Edad
>
>
>
>

lines(Super$Edad,
lines(Super$Edad,
lines(Super$Edad,
lines(Super$Edad,

AjLineal_Pre[, 2], col = "blue")


AjLineal_Pre[, 3], col = "blue")
AjLineal_Co[, 2], col = "red")
AjLineal_Co[, 3], col = "red")

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Regresiones lineales.

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Regresiones lineales.

Para guardar el gr
afico desde el comando.
Existe una forma de guardar un gr
afico YA hecho:
> savePlot(filename = paste("NombreArchivo.jpeg", sep = "."), type = ("jpeg"),
+
device = dev.cur())

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Regresiones lineales.
Una vez que conocemos la forma de realizar este tipo de regresiones, se pueden
realizar ajustes no solo lineales, sino, en general, polinomiales:
> AjCua <- lm(Super$Comercio ~ Super$Edad + I(Super$Edad^2))
> summary(AjCua)
Call:
lm(formula = Super$Comercio ~ Super$Edad + I(Super$Edad^2))
Residuals:
1
2
12.572 -11.062

3
-4.966

4
0.581

5
3.213

6
1.930

7
-2.268

Coefficients:

Estimate Std. Error t value Pr(>|t|)


(Intercept)
49.4276
6.4506
7.66
0.0016 **
Super$Edad
-4.4839
1.3981
-3.21
0.0327 *
I(Super$Edad^2)
0.1183
0.0562
2.11
0.1029
--Signif. codes: 0 ^
a
A
Y***^
a
A
Z 0.001 ^
a
A
Y**^
a
A
Z 0.01 ^
a
A
Y*^
a
A
Z 0.05 ^
a
A
Y.^
a
A
Z 0.1
M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Regresiones lineales.
Hacemos el plot del ajuste:
> layout(matrix(1:4, 2, 2))
> plot(AjCua)

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Regresiones lineales.

De manera que el nuevo ajuste tiene la siguiente forma:


y = 0.1183x 2 4.4839x + 49.4276
graficamos esta funci
on sobre la gr
afica de dispersi
on, (recuerden hacer un
dev.off() antes de graficar...) y en esta ocasi
on, como no se trata de una lnea
recta, se hace a traves de curve()

> plot(Super$Edad, Super$Comercio, xlab = "Edad", ylab = "Comercios",


+
main = "Comercios sobrevivientes", pch = 16)
> curve(0.1183 * x^2 - 4.4839 * x + 49.4276, col = "red", lty = "dotted"
+
add = T)

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Regresiones lineales.

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Regresiones lineales.

Graficamos las bandas de confianza y de predicci


on para este nuevo modelo...
>
>
>
>
>
>

AjCua_Co <- predict(AjCua, interval = "confidence")


AjCua_Pre <- predict(AjCua, interval = "prediction")
lines(Super$Edad, AjCua_Pre[, 2], col = "blue")
lines(Super$Edad, AjCua_Pre[, 3], col = "blue")
lines(Super$Edad, AjCua_Co[, 2], col = "red")
lines(Super$Edad, AjCua_Co[, 3], col = "red")

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Regresiones lineales.

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Regresiones lineales.

Adem
as de ajustes polinomiales de cualquier orden, se pueden hacer ajustes
logaritmicos:
> AjLog <- lm(Super[2:7, 1] ~ log10(Super[2:7, 3]))
y no lineales:
> AjNL <- nls(Super$Comercio ~ exp(a + b * Super$Edad), data = Super,
+
start = list(a = 0, b = 0))

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Regresiones lineales.
Finalmente, la regresi
on lineal del tipo:
y = 19.097 log x + 35.408
Generar
a la siguiente gr
afica.

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Regresiones no lineales: Un breve ejemplo.


Vamos a cargar la base de datos SolCyc.txt. Graficamos das vs Manchas.

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Regresiones no lineales: Un breve ejemplo.

Para realizar un ajuste, en este caso, sinusoidal, se hace uso de la funci


on nls
para hacer un ajuste de la siguiente forma:
y = a + b sin 2cx
El c
odigo para R:
> nls.mod <- nls(SolCyc[, 2] ~ a + b * sin(2 * pi * c * SolCyc[,
+
1]), start = list(a = 30, b = 50, c = 2 * pi/100))
> summary(nls.mod)

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Regresiones no lineales: Un breve ejemplo.

El summary es m
as reducido que en caso de una regresi
on lineal.

A
nadan la curva (con la funci
on curve) a los datos.

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Regresiones no lineales: Un breve ejemplo.

El summary es m
as reducido que en caso de una regresi
on lineal.

A
nadan la curva (con la funci
on curve) a los datos.

Es un buen ajuste?

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Regresiones no lineales: Un breve ejemplo.

El summary es m
as reducido que en caso de una regresi
on lineal.

A
nadan la curva (con la funci
on curve) a los datos.

Es un buen ajuste? La explicaci


on a este mal ajuste reside en los valores
iniciales que tomamos para nuestro ajuste, en este caso, tome en cuenta lo que
puede significar cada par
ametro dentro de una funci
on de este tipo...

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Regresiones no lineales: Un breve ejemplo.

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Graficas de funciones.

Como ya nos dimos cuenta,


la funci
on curve nos permite
graficar funciones de R en
R. Es decir, podemos graficar
cualquier polinomio... por ejemplo:
> curve(x^2, -10, 10, 1000, col = "red")

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Graficas de funciones.
Y claro, se pueden combinar con funciones trigonometricas y logartmicas para
crear una gamma de funciones:

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Graficas de funciones.

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Graficas de funciones.

Sin embargo, para funciones de R2 a R, hacemos uso de la funci


on persp3d de
a siguiente forma:
>
>
>
+
+
>
>
>
>
+

x <- seq(-10, 10, length = 300)


y <- x
f <- function(x, y) {
x^2 * sin(sqrt(x^2 + y^2))
}
z <- outer(x, y, f)
z[is.na(z)] <- 1
bg3d("white")
persp3d(x, y, z, aspect = c(4, 4, 4), col = "red", xlab = "X",
ylab = "Y", zlab = "Z")

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Graficas de funciones.

f (x, y ) =

M.I. P
erez Martnez

p
sin x 2 + y 2
p
x2 + y2

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Graficas de funciones.

f (x, y ) =

M.I. P
erez Martnez

p
sin x 2 + y 2
p
x2 + y2

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Graficas de funciones.

Para el caso de una gr


afica de contornos,
> filled.contour(x, y, z, nlevels = 20, col = heat.colors(10),
+
ylab = "y", xlab = "x", key.title = title("z"))
Donde la opci
on de color se puede definir a partir una gama de colores:
+ heat.colors()
+ terrain.colors()
+ topo.colors()
+ rainbow()
+ cm.colors()

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Graficas de funciones.
f (x, y ) = cos y + sin x

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Graficas de funciones.
f (x, y ) = cos y + sin x

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Programacion: un breve ejemplo

Vamos a crear un programa que saque el promedio de un vector de n elementos.


- Cu
ales son mis datos de entrada?

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Programacion: un breve ejemplo

Vamos a crear un programa que saque el promedio de un vector de n elementos.


- Cu
ales son mis datos de entrada?
- Cu
al va a ser mi dato de salida?

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Programacion: un breve ejemplo

Vamos a crear un programa que saque el promedio de un vector de n elementos.


- Cu
ales son mis datos de entrada?
- Cu
al va a ser mi dato de salida?
- Que tengo que hacer para llegar a este resultado?

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Programacion: un breve ejemplo

Vamos a crear un programa que saque el promedio de un vector de n elementos.


- Cu
ales son mis datos de entrada?
- Cu
al va a ser mi dato de salida?
- Que tengo que hacer para llegar a este resultado?

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Programacion: un breve ejemplo

Este es un ejemplo muy sencillo...


> a <- c(1, 5, 8, 6, 2, -1, 0, -3, -5)

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Programacion: un breve ejemplo

> Promedio <- function() {


+ }

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Programacion: un breve ejemplo

> Promedio <- function(a) {


+
N <- length(a)
+ }

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Programacion: un breve ejemplo

> Promedio <- function(a) {


+
N <- length(a)
+
for (i in seq(1, N, 1)) {
+
Suma = Suma + a[i]
+
}
+ }

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Programacion: un breve ejemplo

> Promedio <- function(a) {


+
N <- length(a)
+
Suma = 0
+
for (i in seq(1, N, 1)) {
+
Suma = Suma + a[i]
+
}
+
Pro = Suma/N
+
print(c("Promedio", Pro))
+ }

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Programacion: un breve ejemplo

Vamos a crear una funci


on que grafique una roseta.

Una roseta, es una figura, en la cual se unen todos los puntos (cualesquiera que
estos sean) equidistantes sobre una circunferencia. Es decir:

M.I. P
erez Martnez

Taller b
asico de R.

Introducci
on.
Manejo de datos.
Visualizaci
on.
Regresiones lineales.
Gr
afica de funciones.
Programaci
on.

Programacion: un breve ejemplo

Vamos a crear una funci


on que grafique una roseta.

Una roseta, es una figura, en la cual se unen todos los puntos (cualesquiera que
estos sean) equidistantes sobre una circunferencia. Es decir:

M.I. P
erez Martnez

Taller b
asico de R.

También podría gustarte