8/19/2019 SESION 1 SPLUS
1/17
Laboratorio de Estadísticacon Manejo de S-Plus
Sesión 1: " Introducción al Software y Análisis Exploratorio de Datos"
Desde el 01 al 05 de Septiembre del 2014
Patricio Videla J. Profesor Coordinador Laboratorio Estadística.
J o n a t h a n A c o s t a S . Ayudante Coordinador.
INTRODUCCIÓN AL SOFTWARE
Software
El laboratorio de estadística utiliza el software S-PLUS, el cual es un poderoso
paquete para análisis de datos, despliegue gráfico y estadísticas. Permite importar yexportar una gran variedad de formatos, incluyendo software tal como SAS, SPSS yMatlab; hojas de cálculo tal como Excel y Lotus; en general una variedad de
formatos de texto.
Una vez que los datos se encuentran disponibles, es posible analizarlos y
explorarlos mediante las numerosas herramientas que posee el programa, las cuales
se irán viendo en el transcurso de las sesiones de S-PLUS.
Evaluación
Se evaluará asistencia, controles y trabajos prácticos de acuerdo a la
siguiente ponderación:
Asistencia 30 %
Controles 35 %
Trabajos Prácticos 35 %
8/19/2019 SESION 1 SPLUS
2/17
Esta nota entregará un factor Omega (ω) que va desde 0.95, para
aquellos alumnos con nota final 0, hasta un factor 1.1, para aquellos que tengan
nota final 100.
Tal como se muestra en la gráfica que se debe ingresar cortando y pegando,línea a línea en S-Plus:
>plot(c(0,55,100),c(0.95,1,1.1),type="l",main="Factor Omega vs Nota
Laboratorio",xlab="Nota del Laboratorio",ylab="Factor Omega")
>abline(h=1,v=55,lty=3)
En línea punteada está para mostrar que el factor omega igual a 1
corresponde a una Nota de Laboratorio igual a 55.
Observación: El símbolo de mayor, (>), que aparece arriba y en todas lasextracciones de código que se verán más adelante no se escriben en el código, ésteindica las distintas operaciones, una vez ejecutado el programa.
Iniciando S-PLUS
S-PLUS consta de 2 formatos de visualización. El S-Plus gráfico con ventanasde aplicaciones similares a las aplicaciones de Windows y el S-Plus sin interfazgráfica, que funciona sin las ventanas de aplicaciones, pero que tiene la ventaja deser mucho más estable que el anterior en redes. Durante el desarrollo de las
sesiones se utilizarán ambos.
Algo muy importante para ambos formatos, es abandonar el S-PLUS, con el
comando:
> q()
Este es el procedimiento recomendado, pues la función q() ejecuta una serie deverificaciones durante el procedimiento de salida de S-PLUS.
Obteniendo ayuda
Es posible obtener ayuda seleccionando una opción bajo el menú Help en lainterfaz gráfica.
Alternativamente, para obtener ayuda de alguna función específica, el
comando es >help (opción), por ejemplo:
> help(solve)
O bien,
> ?solve
8/19/2019 SESION 1 SPLUS
3/17
Usando la ventana de comandos
La ventana de comandos brinda un acceso interactivo al lenguaje S-PLUS.
Todo comando que es ingresado en S-PLUS es una expresión, éstas son evaluadas
una vez que es presionada la tecla ENTER. Si la tecla ENTER es presionada y laexpresión es sintácticamente incompleta, no será evaluada y no será generado unmensaje de error, en lugar de esto S-PLUS espera que la expresión sea completada
utilizando + como indicador de expresión incompleta (por lo general faltanparéntesis en dicha expresión).
Es posible escribir varias expresiones en una misma línea, para esto, debenser separadas por punto y coma (;). S-PLUS evalúa cada una de las expresiones en
secuencia cuando ENTER es presionado. No es requerido que un punto y comasea ingresado en cada final de línea, sólo entre múltiples expresiones dentrode una línea. En S-PLUS las expresiones que inicien con el símbolo # son
consideradas comentarios y no son evaluados.
El resultado de cualquier expresión es un objeto, que puede ser salvado en el
directorio de trabajo mediante el operador de asignación . En este documento, el textoantecedido del símbolo > indica que debe ser ingresado en el prompt, pero el símbolo
> no debe ser ingresado. Si se desea realizar un quiebre de línea antes que S-PLUS
pueda interpretar el comando como completo, S-PLUS provee el prompt decontinuación + al inicio de la siguiente línea.
Observación: Se llama prompt al carácter o conjunto de caracteres que se muestranen una línea de comandos para indicar que está a la espera de órdenes.
8/19/2019 SESION 1 SPLUS
4/17
Elementos de S-PLUS
Los nombres para los objetos en S-PLUS deben iniciar con una letra y pueden
contener cualquier combinación de mayúsculas y minúsculas, números y puntos,
por ejemplo, los siguientes corresponden a nombres de objetos válidos.
Misdatos
datos.ozono
NumerosAleatorios
datos.1
ajuste.del.modelo
Intente no escoger nombres para objetos que coincidan con nombres defunciones S-PLUS, si es creada una función o una variable con el mismo nombreque una función disponible en S-PLUS, el acceso a la función S-PLUS es
temporalmente restringido hasta que el objeto creado sea eliminado (utilice la
función rm( ) para remover objetos), S-PLUS advierte cuando es enmascarada unafunción con la creación de otra por parte del usuario, existen algunas funciones de
S-PLUS cuyo nombre consta de un carácter C, D, c, I, q, s y t, se debe prestaratención a no crear objetos con estos nombres.
Un tipo de dato que es fundamental en S-PLUS corresponde a la clase vector,éstos son objetos S conteniendo n elementos que pueden ser indexados
numéricamente, el comando básico para la creación de esta clase de datos es:
> x
8/19/2019 SESION 1 SPLUS
5/17
> x
[1] 10.4 5.6 3.1 6.4 21.7
> length(x)
[1] 5
> mode(x)
[1] "numeric"
Note que la expresión:
> y z mode(z)
[1] "character"
Permite crear vectores cuyo atributo de modo es de tipo carácter .
Vectores pueden ser utilizados en operaciones aritméticas, en cuyo caso éstasson realizadas elemento a elemento, no es requerido que los vectores involucrados
en tales operaciones sean del mismo orden, si los vectores no son del mismo largo,
el valor de la expresión es del largo del vector mayor, aquellos vectores que sean más
"pequeños" son reciclados en dichos cálculos, para fijar ideas, note el siguienteejemplo:
> v
8/19/2019 SESION 1 SPLUS
6/17
S-PLUS dispone de los operadores aritméticos +, -, *, /, así como ^ paralas potencias además de las funciones aritméticas log, exp, sin, cos, tan, sqrt (consulte la ayuda de S-PLUS para una lista más detallada). Las funcionesmin y max obtienen el elemento menor y mayor en un vector respectivamente, lafunción range es un vector de largo 2, digamos c(min(x), max(x), length(x)) obtiene el largo del vector x, sum(x) obtiene la suma de los elementos de x y prod(x)
su producto.
Existen variadas funciones estadísticas, como mean(x), que calcula elpromedio muestral, esto es, sum(x)/length(x), y la función var(x), que calcula
sum((x – mean(x))^2)/(length(x) – 1)
O sea, la varianza muestral, o más generalmente si x es una matriz n ´ p, lamatriz de covarianzas p ´ p, entendiendo las n filas de la matriz x como una muestra
aleatoria de vectores p-dimensionales.
sort(x) retorna un vector del mismo largo que x cuyos elementos se
encuentran ordenados de manera creciente, rnorm(n) es una función que genera un
vector (o más generalmente un arreglo) con seudodígitos aleatorios generados desdeuna variable aleatoria normal estándar de largo n.
Para generar secuencias es útil la siguiente expresión en S-PLUS,
> 1:10
[1] 1 2 3 4 5 6 7 8 9 10
*Note que 1:10 es equivalente al vector c(1, 2, ..., 10), y que 2*1:15, genera c(2,
4, 6, ..., 28, 30). Considere el siguiente ejemplo, e indique que es lo que se
obtendrá:
> n 1:n-1; 1:(n-1)
La construcción 30:1 puede ser utilizada para obtener secuencias en ordendecreciente. La función seq(), es una utilidad más general para construir secuencias,
esta función tiene cinco argumentos, sólo algunos de ellos pueden ser utilizados enuna llamada a esta función, los primeros dos argumentos especifican el inicio y el
final de la secuencia, los parámetros para seq() así como para muchas funciones en
S-PLUS, pueden ser dados indicando los nombres de los argumentos, en cuyo casoel orden es irrelevante, en el siguiente ejemplo todas las expresiones son
equivalentes:
> 1:30; seq(1, 30); seq(from = 1, to = 30); seq(to = 30, from = 1)
8/19/2019 SESION 1 SPLUS
7/17
Los siguientes dos parámetros de seq() son by=valor y length=valor, estos
especifican el tamaño del paso y el tamaño de la secuencia respectivamente., si
ninguno de estos es dado se asume como valor por defecto, by=1.
Por ejemplo:
> s3 s4 s5 x x
[1] 0.10498028 0.23021549 2.39568112 0.08249998 -0.02488167
> z 0
> z
[1] T T T T F
Aquí z es un vector del mismo largo que x con valores F en aquellos elementosen que la condición no es satisfecha, y T cuando sí lo es.
8/19/2019 SESION 1 SPLUS
8/17
Los valores lógicos son , == para la igualdad y != paradesigualdad. Además, si c1 y c2 representan expresiones lógicas, entonces c1
& c2 es su intersección, c1 | c2 es su unión y !c1 representa la negación de c1.
En algunos casos los componentes de un vector pueden no ser completamente
conocidos. Cuando un elemento o valor no esta disponible o es un valor perdidoen sentido estadístico, al valor dentro del vector le es atribuido el valor especial NA.
En general cualquier operación sobre un NA resulta en un NA. La motivación para
esta regla es simplemente que si la especificación para una regla es incompleta,no es posible conocer su resultado y de este modo no es disponible.
Considere la siguiente operación sobre el vector x creado en el ejemplo
anterior,
> y y
[1] -2.2539827 -1.4687395 0.8736676 -2.4949572 NA
La función is.na(x) retorna un vector lógico del mismo tamaño que x con un
valor T solamente si el correspondiente elemento en x es NA, en nuestro ejemplo,obtenemos
> is.na(y)
[1] F F F F T
Subconjuntos de elementos de un vector pueden ser seleccionados medianteutilizar vectores de índices, existen cuatro tipo de vectores que pueden ser utilizados
como índices, a saber.
8/19/2019 SESION 1 SPLUS
9/17
Vectores lógicos:
En este caso el vector de índices debe ser del mismo largo que el vector desdeel cual los elementos están siendo seleccionados, los elementos en el vector deíndices cuyos valores sean T serán seleccionados, los valores F omitidos. Por
ejemplo:
> x ene x x[6] #extrae el sexto componente de x
> x[1:10]#selecciona los primeros 10 elementos de x (suponiendo que length(x)10).
Vector de enteros negativos:
Este vector de índices indica los elementos que serán extraídos, de este modo
> y
8/19/2019 SESION 1 SPLUS
10/17
> lunch a a
> b b
De este modo una matriz es una arreglo con dos subíndices, S-PLUS contienemuchos operadores y funciones disponibles para matrices, por ejemplo t(X) es lafunción transpuesta, las funciones nrow(A) y ncol(A) dan el número de filas y decolumnas de la matriz A.
El operador %*% es utilizado para multiplicación matricial, como sigue
> c a * a
Otras funciones importantes son solve(a, b) para resolver ecuaciones, svd()para la descomposición valor singular, qr() para la descomposición QR y eigen() para
calcular valores y vectores propios.
8/19/2019 SESION 1 SPLUS
11/17
Ingreso de Datos en S-PLUS
Supóngase que se desea ingresar el siguiente arreglo de datos:
Dónde:
PIB: Producto Interno Bruto en billones de dólares.Población: En Millones de Habitantes.
Inflación: En Porcentaje.
Es posible el ingreso de estos datos, mediante un arreglo matricial como elsiguiente:
> datos ejemplo.paises ejemplo.paises
La matriz ingresada de esta manera no es muy útil, pues no se sabe a que
columna corresponde cada variable, o a que fila le corresponde cada país. Para
solucionar esto se utiliza el comando dimnames.
>dimnames (ejemplo.paises)
8/19/2019 SESION 1 SPLUS
12/17
> ejemplo.paises ejemplo.paises ejemplo.paises
Para modificar algún valor especifico del arreglo, por ejemplo la población de
Austria de 8 millones a 10 millones se procede de la siguiente forma:
> ejemplo.paises["Austria","Poblacion"] ejemplo.paises
Si se desea un análisis de una serie de datos se puede utilizar el comando"Summary", el cual nos entrega un resumen de las estadísticas más importantes.
Ingrese el siguiente comando:
> b b
Esto nos genera una muestra de 20 observaciones de una variable con
distribución “Normal” de media 16 y una desviación estándar 3.
> summary(b)
Min. 1st Qu. Median Mean 3rd Qu. Max.
10.28 14.87 18.63 17.55 19.67 23.84
Ocupe los siguientes comandos con esos mismos datos:
mean(b)median(b)min(b)
max(b)
var(b)sqrt(var(b))
8/19/2019 SESION 1 SPLUS
13/17
ANÁLISIS EXPLORATORIO DE DATOS
En esta sección exploraremos las diferentes variables contenidas en el
conjunto de datos la Cebada. Analizaremos las variables en una dimensión.Posteriormente, se llevará a cabo el análisis de la dependencia entre las variables yla exploración de estructuras de mayor dimensión.
Dividiremos el análisis de datos en dos categorías, exploración "descriptiva" y"gráfica".
El conjunto de datos de la Cebada (BARLEY).
Los datos de la Cebada representan mediciones de la producción, en buslelspor Acre, en diferentes sitios. El análisis comprende 6 sitios sembrados con 10
diferentes variedades de cebada en dos años sucesivos, 1931 y 1932. El conjuntode datos por consiguiente contiene 120 mediciones de la producción de cebada.
Nuestro principal objetivo radica en determinar la razón de las distintas
producciones de cebada obtenidas por las diferentes constelaciones de variables,como la cosecha de la quinta variedad del sitio 4 en 1931, y la cosecha de la séptima
variedad en el mismo sitio en 1932.
Para observar el conjunto de datos digitamos el comando:
> barley
Aquí podemos observar cómo se despliegan en pantalla las 120 mediciones de
las cuatro variables: Rendimiento, Variedad, Año y Sitio de la producción de cebada.
Debido a que se trata de un gran número de datos, podemos restringir la
visión de los mismos mediante el comando:
> barley[c(2,17,64,70,82,98,118), c(1,2,3,4)]
Esto nos permite visualizar sólo las observaciones resultado de la intersección
de las filas 2, 17, 64, 70, 82, 98, 118 con las columnas 1, 2, 3, 4.
Si queremos obtener un resumen de las principales medidas descriptivas de
las variables contenidas en el set de datos, digitamos:
> summary(barley)
Este comando entrega mediadas tales como el mínimo, máximo, media,mediana y cuartiles de las variables, además del número de observaciones para
cada categoría de las variables cuantitativas.
8/19/2019 SESION 1 SPLUS
14/17
Para tener un mejor acceso a las variables contenidas en el conjunto de datos,
debemos "vincular" las mismas. Esto se realiza digitando:
> attach(barley)
Una manera fácil de "visualizar" la variabilidad existente en los datos, es
mediante la construcción de un diagrama de Tallo y Hoja. A modo de ejemplo, si se
digita:
> stem(yield)
El resultado es un diagrama de este tipo para la variable Rendimiento.
Lo anterior se puede complementar con un Histograma:
> hist(yield)
Si se compara entonces lo obtenido con el histograma y con la forma del
diagrama hoja-tallo, tenemos una idea de cómo se encuentran distribuidos los
datos.
Los cuantiles permiten obtener fracciones acumuladas de las observaciones de
cada variable. Por ejemplo, si digitamos el comando:
> quantile(yield,seq(0.1,0.9,by=0.1))
Obtendremos diez "sectores" de 10% de las observaciones, de la variable
rendimiento. Es decir, en el 10% de los sitios el rendimiento fue de hasta 22.4967,
en el 50% fue de hasta 32.8667, etc.
Aun cuando en el resumen descriptivo obtenido anteriormente se muestran
los "cuartiles" uno y tres del rendimiento obtenido, con el comando:
> quantile(yield,c(0.25,0.75))
Los cuartiles dividen el conjunto en 4 "sectores" de 25% de las observaciones
cada uno. En la acción anterior se observa que en el 25% de los sitios el rendimiento
fue de hasta 26.875 y en el 75% fue de hasta 41.4.
Podemos obtener la raíz cuadrada de la varianza del rendimiento, mediante el
comando:
> sqrt(var(yield))
Como ya es sabido, la medida aquí obtenida se llama desviación estándar.
8/19/2019 SESION 1 SPLUS
15/17
8/19/2019 SESION 1 SPLUS
16/17
Para obtener esta información, en el año 1932, digitamos:
> barley[yield>44.28&year==1932,]
Un resumen descriptivo de "todas" las variables, para cada año por separado,se obtiene digitando:
> by(barley,year,summary)
CREACIÓN DE TABLAS DE FRECUENCIA
Ejemplos:
1) Los siguientes datos corresponden a las temperaturas medias diarias observadasen una ciudad durante 100 días.
> temp tabla.frec table(tabla.frec)
¿Qué conclusiones inmediatas puede obtener desde la tabla?
8/19/2019 SESION 1 SPLUS
17/17
2) Utilizando la base de datos BARLEY, realice una tabla de frecuencia para lavariable YIELD, considerando 11 clases.
> barley
> attach(barley)
> ejemplo.dos table(ejemplo.dos)
¿Qué conclusiones inmediatas puede obtener desde la tabla?
…
Patricio Videla J. Profesor Coordinador Laboratorio Estadística.
Jonathan Acosta S. Ayudante Coordinador.
Referencias
Krause, A. and Olson, M. (2000). The basic of S and S-Plus. Springer, New York.
Chambers, J. M. (1998). Programming with data. Springer, New York.
Venables, W. and Smith, D. (1992). Notes on S-Plus: A programming environment for data analysis
and graphics. Department of Statistics, The University of Adelaide.
Top Related