SESION 1 SPLUS

download SESION 1 SPLUS

of 8

Transcript of SESION 1 SPLUS

  • 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.