Mathematics">
Nothing Special   »   [go: up one dir, main page]

RStudio-Práctica 1

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 12

Práctica 1: Introducción a R, vectores

y estadística descriptiva de 1 variable


EI1012-MT1012 Estadística y Optimización (2015/2016)
Pablo Gregori, Universitat Jaume I de Castellón

1. Introducción a R
1.1. El proyecto R y el programa
 En el proyecto R se puede conseguir el programa, y conocer todo lo que le rodea.
 Instala y ejecuta “R” en el equipo.
 R Console: terminal donde programar y obtener resultados.
 Recomendaciones:
o Comparte el escritorio entre la consola de R y el navegador de internet con
este documento.
o La interfaz RStudio es muy conveniente, aunque aquí no la vamos a
explicar.
 Menú Archivo de la consola de R:
o Cambiar dir...: establece la ruta para interactuar con ficheros.
o Guardar área de trabajo: crea fichero con sesión de R (para
continuación).
o Cargar área de trabajo: carga fichero con sesión de R guardada.
 En RStudio está dentro del menú Session.

1.2. El lenguaje de programación R


 Como lenguaje, tiene constantes, variables, funciones, etc. y es de tipo “orientado
a objetos”.
 Una variable se define con un nombre, y se le asigna un valor igualándola a una
constante (o a otra variable ya definida).
 Las funciones que devuelven texto, lo hacen por la ventana “R Console”.
 Las funciones que devuelven figuras, lo hacen por la ventana “R Graphics”.
 Las funciones que piden ayuda abren el navegador de internet con la ayuda
solicitada.
 Los comentarios a partir de la almohadilla (#).
 La función q() cierra la consola con la opción de guardar la sesión de R en un
archivo, que se puede abrir posteriormente para continuar.
 Ejemplo: copia y pega el siguente bloque en la consola de R:

# línea de comentario empieza por almohadilla


5 # la constante numérica 5
demo(graphics) # función 'demo()' ejecuta demos de librerías
help(demo) # función 'help()' devuelve ayuda
load(url('https://goo.gl/uDzU8v')) # función 'load()' carga sesión de
R
ls() # función 'ls()' lista las variables definidas en la sesión
q() # cierra R, pero te permite guardar sesión para reanudar.
¡Cancela!

1.3. R como calculadora de constantes


numéricas
 +, -, *, /, ^, … operaciones matemáticas
 sqrt(), log(), exp(), sin(), abs(), … otras funciones matemáticas
 Ejemplo: copia y pega el siguente bloque en la consola de R

5+3 # suma
5-3 # resta
5*3 # producto
5/3 # cociente
5/0 # sorpresa: R maneja el infinito
0/0 # sorpresa: R maneja las indeterminaciones (NaN, Not a Number)
5^3 # potencia
sqrt(5) # raíz cuadrada
exp(5) # el número "e" elevado a (función exponencial)
log(5) # logaritmo neperiano
log10(5) # logartimo en base 10
pi # el número "pi" está definido
sin(pi/2) # la función seno (ángulo en radianes)
factorial(5) # el factorial, 5!
choose(5,3) # número combinatorio (5 sobre 3)

EJERCICIO 1: Calcula los valores numéricos aproximados


de 0.3⋅0.150.3⋅0.15+0.2⋅0.8+0.5⋅0.120.3⋅0.150.3⋅0.15+0.2⋅0.8+0.5⋅0.12, 566!e−5566!

e−5 y (207)0.470.613(207)0.470.613.

 Sol.: 0.16981130.1698113, 0.14622280.1462228 y 0.16588230.1658823.

FIN EJERCICIO 1

2. Variable tipo vector
 Es el tipo de variable más básico del lenguaje R.
 Es una lista ordenada de constantes (números, cadenas de texto entrecomilladas,
o lógicos TRUE/FALSE).
 Ideal para albergar muestras univariantes (cuantitativas o cualitativas).
 Se pueden leer desde ficheros con la función scan() (no la vamos a trabajar, pide
ayuda help(scan) si necesitas saber más).
 Si se invoca en la línea de comandos, se imprime en pantalla, por filas, con un
indicador de la posición de la componente más a la izquierda de cada fila.

2.1 Creación de vectores


 La función c() concatena constantes (y vectores) en un vector.
 La función : crea un vector de números consecutivos.
 Ejemplo: copia y pega el siguente bloque en la consola de R:

# Vectores de constantes numéricas


v1 = 5
v2 = 1:10
v3 = c(v1, v2, pi, -5, 0, 1/3)
v1
v2
v3
# Vectores de constantes tipo texto
# Ojo: siempre entrecomilladas, o parecerán nombres de variables
v4 = 'a'
v5 = c('b','c','d')
v6 = c(v4, v5, v5, v4, 'hola')
v4
v5
v6
# Vectores de constantes lógicas
# Ojo: sólo TRUE y FALSE
v7 = TRUE
v8 = c(TRUE,FALSE,FALSE)
v9 = c(v7, v8)
v7
v8
v9

2.2 Llamadas a funciones en R


 Las funciones constan de un nombre seguido de paréntesis que encierran a
ninguno, o uno o más argumentos separados por comas. A veces aparece el
argumento ... (puntos suspensivos), que indica una cantidad indeterminada de
argumentos.
 Ejemplo:

# Función 'sample()' simula lanzamientos aleatorios de un dado


abstracto
# Argumentos:
# x: número de caras del dado
# size: número de lanzamientos
# replace: ¿se puede repetir resultado?
# prob: probabilidad de cada cara (todas iguales si vale NULL)
sample(x=6, size=100, replace=TRUE, prob=NULL) # llamada completa
sample(6, 100, TRUE, NULL) # llamada sin nombres de argumento
sample(TRUE, 6, NULL, 100) # llamada errando el orden de los
argumentos
sample(100, 6, TRUE, NULL) # otra llamada errando el orden de los
argumentos
sample(replace=TRUE, x=6, prob=NULL, size=100) # llamada ok

2.3 Algunas funciones y operaciones


importantes con vectores
Primeras funciones importantes de R:

 ls() sin argumentos, da el vector de nombres de variables definidas.


 a:b crea vector de enteros consecutivos, de a a b.
 c(...) da un vector con los argumentos ... concatenados.
 length(x) da la longitud del vector argumento x.
 sum(...) SUMa las componentes de los argumentos.
 prod(...) PRODucto de las componentes de los argumentos.
 sort(x) da el vector argumento x reordenado de manera creciente.
 sort(x,decreasing=TRUE) lo mismo (pero decreciente).
 min(...) da el valor MÍNimo de los argumentos.
 max(...) da el valor MÁXimo de los argumentos.
 which(x) da el vector de “posiciones” donde x es TRUE. El argumento suele ser
una comparación.

Las siguientes funciones/operadores actúan componente por componente, devolviendo


otro vector de igual tamaño:

 +, -, *, /, ^, … operaciones matemáticas


 sqrt(), log(), exp(), sin(), abs(), … otras funciones matemáticas
 <, ==, >, <=, >=, != operadores de comparación
 &, |, xor(), ! operadores lógicos (and, or, or exclusivo, not)
 Ejemplo: copia y pega el siguente bloque en la consola de R

ls()
1:10
10:1
v3
length(v3)
sum(v3)
prod(v3)
sort(v3)
sort(v3, decreasing=TRUE)
sqrt(v3)
v3 < 3
which(v3<3)
v3 == 5
which(v3==5)

EJERCICIO 2: Realiza las siguientes sumas:

1. 1+2+3+⋯+10001+2+3+⋯+1000
o Sol.: 500500500500
2. 1+2+4+8+16+⋯+10241+2+4+8+16+⋯+1024
o Sol.: 20472047

FIN EJERCICIO 2
EJERCICIO 3: El vector grupo representa el grupo al que pertenece una serie de
alumnos.

1. Visualízalo en pantalla
o Sol.: -
2. ¿Cuántas componentes tiene?
o Sol.: 192192
3. ¿En qué posiciones del vector está la letra ‘A’?
o Sol.: 2,8,17,21,28,84,101,108,111,115,123,136,190,192 2,8,17,21,28,8
4,101,108,111,115,123,136,190,192

FIN EJERCICIO 3
EJERCICIO 4: El vector nota representa la nota de un examen, de los mismos alumnos
cuyo grupo se ha guardado en el vector grupo, y en el mismo orden.

1. Visualízalo en pantalla
o Sol.: -
2. ¿Cuántas componentes tiene?
o Sol.: 192192
3. ¿Cuánto suman todas las notas?
o Sol.: 962962
4. ¿Cuál es la media aritmética de todas las notas?
o Sol.: 5.01041675.0104167
5. ¿En qué posiciones están las notas mayores de 7.07.0?
o Sol.: 81,103,120,15181,103,120,151
6. Visualiza las notas ordenadas de menor a mayor
o Sol.: -
7. Visualiza las notas ordenadas de mayor a menor
o Sol.: -
8. ¿Cuál ha sido la nota máxima?
o Sol.: 7.77.7
9. ¿En qué posición del vector está esa nota máxima?
o Sol.: 120120

FIN EJERCICIO 4

3. Subvectores
 A veces interesa una parte de la muestra, por lo que es muy habitual usar este
operador.
 El operador corchete [] selecciona componentes de un vector.
 Ejemplo: copia y pega el siguente bloque en la consola de R

v3
v3[2] # la segunda componente
v3[-2] # todo menos la segunda componente
v3[1:3] # la 1a, 2a y 3a comp.
v3[ c(2,5) ] # la 2a y la 5a componente ( ojo a la c() necesaria )
v3[ c(TRUE,TRUE,FALSE)] # 1a y 2a sí, 3a no, etc.
v3[ v3<4 ] # las comp. que cumplen la condición v3<4 (los TRUEs)
v3[ v3>1 & v3<4 ] # las comp. que cumplen v3>1 y v3<4

# Utilidad: elegir parte de una muestra

# Suma los 3 primeros datos de v3


v3[1:3] # da los 3 primeros datos de v3
sum(v3[1:3]) # ahora los suma
# ¿Cuántos datos de v3 son menores que 4?
v3[ v3<4 ] # da los datos de v3 que cumplen v3<4
length(v3[ v3<4 ]) # ahora los cuenta
# ¿Cuántos alumnos son del grupo A?
grupo[ grupo=='A' ] # da los datos del grupo A
length(grupo[ grupo=='A' ]) # ahora los cuenta
# ¿Cuál ha sido la máxima nota del grupo A?
nota[ grupo=='A' ] # da las notas del grupo A
max(nota[ grupo=='A' ]) # ahora da la máxima
# ¿Cuántos alumnos del A tienen menos de 3 en la nota?
nota[ grupo=='A' & nota<3 ] # da las notas de los del grupo A y con
menos de un 3
length(nota[ grupo=='A' & nota<3 ]) # ahora los cuenta

EJERCICIO 5: A partir de los vectores grupo y nota definidos:

1. Visualiza las notas de los 10 primeros alumnos


o Sol.: -
2. Suma las notas de los 10 primeros alumnos del vector
o Sol.: 51.851.8
3. ¿Cuántos alumnos hay del grupo ‘C’?
o Sol.: 3939.
4. Suma las notas de los alumnos del grupo ‘A’
o Sol.: 63.663.6.
5. ¿Cuántos alumnos han aprobado?
o Sol.: 102102.
6. ¿Cuántos alumnos del grupo ‘B’ han aprobado?
o Sol.: 1212
7. ¿Qué porcentaje de alumnos del grupo ‘C’ han aprobado?
o Sol.: 58.97435958.974359
8. ¿Cuáles han sido las notas máxima y mínima del grupo ‘D’?
o Sol.: 6.8 y 2.5. respectivamente.
9. ¿De qué grupos son la máxima y mínima notas de toda la muestra?
o Sol.: EE y BB respectivamente.
10. Nota media de alumnos de los grupos ‘A’ y ‘B’, reunidos, teniendo en cuenta sólo a
los que han aprobado.
o Sol.: 5.8255.825.

FIN EJERCICIO 5

 También se pueden modificar ciertas componentes de un vector o definir vectores


a partir de otros por condiciones
 Ejemplo: copia y pega el siguente bloque en la consola de R

nota2 = nota
nota
nota2
nota2[ nota < 5 ] = 'Suspenso'
nota2
nota2[ nota >= 5 ] = 'Aprobado'
nota2
4. Estadística descriptiva de una
variable con R
4.1 La muestra
 Los datos a analizar deben estar almacenados en una variable de tipo vector.
 Llamaremos x al vector con los datos de la muestra.
 Pero puede tener cualquier nombre, o estar indexado con el operador
corchete para usar parte de un vector.

4.2 Argumentos especiales de las funciones


gráficas
 Las funciones gráficas de R tienen argumentos comunes para especificar:
o Título superior: main. Igualar a una cadena de texto.
o Título inferior: sub. Igualar a una cadena de texto.
o Etiqueta eje X: xlab. Igualar a una cadena de texto.
o Etiqueta eje Y: ylab. Igualar a una cadena de texto.
o Color o colores: col. Igualar a un número o nombre de colores (o un vector
de números o nombres de colores). Para conocer los nombres de colores
escribe colors() en la consola.
o Forma del punto: pch. Igualar a un número entre 1 y 25. Sólo cuando la
figura dibuje puntos.
 Ejemplo: copia y pega el siguente bloque en la consola de R

plot(x=1:25, y=1:25, main='Puntos: formas y colores',


sub='Cada punto una forma y un color',
xlab='Número de punto y color',
ylab='Etiqueta eje Y', col=1:25, pch=1:25)

4.3 Estadísticas de datos cualitativos


Suponemos que x es la variable que contiene los datos.

4.3.1 Tabla de frecuencias:


 Absolutas: table(x)
 Relativas: table(x)/length(x)
 Porcentajes: table(x)/length(x) * 100

4.3.2 Gráficas:
 Diagrama de barras: barplot(height=table(x))
 Diagrama de sectores (tarta): pie(x=table(x))

EJERCICIO 6: Escribe la tabla de frecuencias absolutas y relativas de la


variable grupo (para saber cuántos datos hay de cada grupo), y haz un diagrama de
barras y otro de sectores, cambiando los colores y añadiendo títulos para practicar.
FIN EJERCICIO 6

4.4 Estadísticas de datos cuantitativos


Suponemos que x es la variable que contiene los datos:

4.4.1 Tabla de frecuencias:


 Primero hay que “cortar” la recta en intervalos, y luego se pide la tabla de
frecuencias de los intervalos.
 table(cut(x, breaks))
o x los datos
o breaks el número de intervalos, o el vector con los extremos sucesivos
 Ejemplo: copia y pega el siguente bloque en la consola de R

nota # los datos


table(nota) # ¡no lo hace bien!
table( cut(nota, breaks=0:10) ) # la tabla de frecuencias con
intervalos

4.4.2 Estadísticos:
 Media: mean(x)
 Mediana: median(x)
 Mínimo: min(x)
 Máximo: max(x)
 Cuantil de orden pp: quantile(x, prob=pp)
 Recorrido: hay que calcularlo con su definición (max(x)-min(x)).
 Recorrido intercuartílico: IQR(x)
 Cuasivarianza: var(x)
 Cuasidesviación típica: sd(x)
 Varianza: ¡No está programada! Se puede conseguir con la
operación var(x)*(length(x)-1)/length(x)
 Desviación típica: ¡No está programada! Se puede conseguir con la
operación sd(x)*sqrt((length(x)-1)/length(x))
 Coeficiente de variación: ¡No está programado! Se puede conseguir una versión
“cuasi” con la operación sd(x)/abs(mean(x)), y la versión “sin cuasi” con la
operación (sd(x)*sqrt((length(x)-1)/length(x)))/abs(mean(x)).

4.4.3 Gráficos
 Diagrama de puntos: stripchart(x) (para pocos datos)
 Histograma: hist(x, breaks, ...)
o x los datos
o breaks el número de intervalos, o el vector con los extremos sucesivos
 Diagrama de caja: boxplot(...) (se pueden poner varias muestras para
comparar)

EJERCICIO 7: Escribe la tabla de frecuencias absolutas y relativas de la


variable nota donde los intervalos correspondan a números enteros. Dibuja el histograma
con esa misma partición en intervalos. Calcula la nota media y la cuasidesviación típica,
así como la mínima y máxima.

 Sol.: Media = 5.01041675.0104167, cuasidesviación típica


= 1.07020371.0702037, mínima = 1.71.7 y máxima = 7.77.7.

FIN EJERCICIO 7
EJERCICIO 8: Calcula la nota media y la cuasidesviación típica de cada grupo.

 Sol.: A = 4.54285714.5428571 y 0.73139940.7313994; B
= 5.12173915.1217391 y 1.1855021.185502; C
= 5.22820515.2282051 y 1.01746561.0174656; D
= 4.77962964.7796296 y 1.03475081.0347508; E
= 5.13870975.1387097 y 1.11404671.1140467.

FIN EJERCICIO 8
EJERCICIO 9: Calcula el percentil 66 de las notas de todos los alumnos, y también de los
alumnos del grupo C.

 Sol.: 5.55.5 y 5.8085.808.

FIN EJERCICIO 9
EJERCICIO 10: Un alumno tiene una nota de 4.9. ¿Qué porcentaje, del total de alumnos,
tiene una nota menor o igual que la suya? ¿Y qué porcentaje tiene una nota mayor o igual
que la suya?

 Sol.: 46.87546.875% y 56.2556.25%

FIN EJERCICIO 10
EJERCICIO 11: Dibuja los diagramas de caja de las notas de cada grupo, para comparar
el nivel de los grupos.
FIN EJERCICIO 11

5. Ejercicios de entrenamiento
EJERCICIO 12: Los siguientes vectores contienen datos sobre una muestra de coches
americanos. Cada vector representa:

 coche: modelo de coche


 efi: eficiencia, en millas recorridas por galón de gasolina.
 ncil: número de cilindros del motor.
 cil: cilindrada total, en pulgadas cúbicas.
 pot: potencia, en CV (caballos de vapor).
 peso: peso, en miles de libras.
 tiempo: tiempo, en segundos, en recorrer un cuarto de milla, desde parado.
 tipo: tipo, automático o manual.
 marchas: número de marchas (hacia adelante).
 carbur: número de carburadores.

de modo que el primer datos de cada vector es del mismo coche, y así sucesivamente.
Realiza las siguientes tareas de análisis de datos:

1. ¿Cuántos coches hay en la muestra?


o Sol.: 3232.
2. ¿Cuántos de los coches son automáticos?
o Sol.: 1313.
3. Escribe la tabla de frecuencias del tipo de coche. ¿Qué tipo es más abundante en
la muestra?
o Sol.: Autom=13;Manual=19Autom=13;Manual=19. Es más abundante el
Manual.
4. Calcula la media aritmética y la cuasidesviación típica de la eficiencia de los
coches automáticos, y de los manuales, por separado. ¿Qué tipo es más eficiente?
o Sol.: 24.392307724.3923077 y 6.16650386.1665038, para los
automáticos, y 17.147368417.1473684 y 3.83396643.8339664, para los
manuales. El más eficiente es el Automático, por tener la media más alta.
5. Dibuja un diagrama de sectores que informa sobre el número de cilindros de los
coches de la muestra.
o Sol.: -
6. Calcula la media de la potencia de los coches automáticos de 8 cilindros.
o Sol.: 299.5299.5 CV.
7. Calcula la media de tiempos, en recorrer el cuarto de milla, para los coches
manuales de 44 marchas delanteras.
o Sol.: 20.02520.025 seg.
8. ¿Qué modelo de coche tiene la mayor cilindrada de la muestra? Escribe los cinco
modelos de mayor cilindrada.
o Sol.: Cadillac Fleetwood es el de mayor cilindrada, y los otros son, Hornet
Sportabout, Duster 360, Lincoln Continental, Chrysler Imperial, Pontiac
Firebird.
9. Calcula la media de cilindrada por cilindro (no por motor) de toda la muestra de
cilindros de todos los coches.
o Sol.: 35.028645835.0286458 pulgadas cúbicas.

FIN EJERCICIO 12
EJERCICIO 13: Si la variable conc recoge la concentración de plomo (en ppm) en el aire
de cierta zona durante un día completo (1 muestreo cada 5 minutos):

1. ¿Cuántas observaciones se han recogido?


o Sol.: 288288.
2. ¿Cuál ha sido la concentración máxima?
o Sol.: 47.3447.34 ppm.
3. ¿En cuántos de los muestreos se ha superado la concentración de 40.040.0 ppm?
o Sol.: 6161.
4. ¿Cuál ha sido la concentración media del día?
o Sol.: 24.072291724.0722917 ppm.
5. ¿Cuáles fueron las 10 mediciones más bajas del día?
o Sol.: 0.93,1.07,1.77,2.03,2.58,2.73,2.75,2.88,2.88,2.91 0.93,1.07,1.77,
2.03,2.58,2.73,2.75,2.88,2.88,2.91.
6. Si la primera medida fue a las 00:00, ¿a qué hora del día se alcanzó la
concentración máxima?
o Sol.: A las 11:45.

FIN EJERCICIO 13

También podría gustarte