Comandos útiles de R Este documento ha sido desarrollado por JGarcía y editado por Clare, estudiantes de Ingeniería Informática en la Universidad de Cantabria. Es probable, por tanto, que el documento tenga funciones y ejercicios que se pueden resolver mejor de otra manera, pero todos los casos han sido probados y funcionan. Cualquier mejora del documento será bienvenida. Podéis enviarnos dichas sugerencias entrando en laisladelfaro.com/contacto o también por twitter en @laisladelfaro. JGARCÍA Y CLARE COMANDOS DE R!1
Conceptos previos sobre estadística que debemos de conocer antes de usar R. Muestra: subconjunto de datos de una población. Ejemplo: todos los estudiantes de la UC. Población: conjunto que abarca todos los datos que cumplen con unas determinadas características. Ejemplo: todos los estudiantes de todas las universidades españolas. Dato: observación numérica asociada a cada elemento de la muestra. Variable Poblacional: Valor numérico asociado a cada elemento de la población. Parámetro Poblacional: cantidad numérica bien definida a partir de la variable poblacional. Estimador: regla o procedimiento numérico para combinar los datos de una muestra. Estimación: valor numérico concreto resultante de aplicar un estimador a los datos. JGARCÍA Y CLARE COMANDOS DE R!2
Medidas de Centralización: muestran un resumen de la muestra, son: media (mean), mediana (median), moda (table). Media: suma de todos los datos dividido entre el número de datos. Mediana: consiste en ordenar el conjunto de datos y seleccionar el valor que esté en medio. Si el número de datos es par, deberás coger los dos datos centrales y hacer la media. Moda: dato que más veces se repite en la muestra. Propiedades y Características. La media es útil si el histograma tiene una sola moda y este es aproximadamente simétrico. Si la asimetría es grande, entonces la mediana tiende a ser mucho mas estable e informativa que la media. En estos casos, la media se ve alterada por valores externos. Es por esto que la mediana se considera más fiable. El histograma suele tomar forma de U. JGARCÍA Y CLARE COMANDOS DE R!3
Medidas de dispersión: muestran la desviación global de los datos con respecto a una medida central. (range). Recorrido: diferencia entre el mayor y el menor dato de la muestra Varianza: media aritmética del cuadrado de las desviaciones respecto a la media (var). También es conocida como! S 2 o! σ 2, y da el resultado en! unidades 2. Desviación típica: como la varianza no tiene las misma dimensiones que la variable por haber elevado al cuadrado, se creó la desviación típica (sd) que sí las tiene. También es conocida como s. s Coeficiente de variación muestral: para variables no negativas, es!, m es decir, desviación típica entre media. Este coeficiente se expresa muchas veces s en porcentaje:!. m x100 Percentiles o cuantiles: cantidad tal que la proporción de datos iguales o inferiores a dicho percentil es igual a p. Los percentiles del 25%, 50% y 75% se denominan cuartiles; en concreto, primer, segundo y tercer cuartil respectivamente. El segundo cuartil es la mediana. cuartil. Recorrido intercuartílico: diferencia entre el tercer cuartil y el primer JGARCÍA Y CLARE COMANDOS DE R!4
Propiedades y Características: El recorrido tiende a aumentar al crecer el tamaño de la muestra, así que para comparar el recorrido de dos muestras los tamaños de estas han de ser similares. La desviación típica es la medida de dispersión mas utilizada. Sin embargo, su utilidad decrece cuando aumenta la asimetría del histograma, en cuyo caso la mediana, los cuartiles y el recorrido intercuartílico pueden ser más interesantes. La desviación típica, los cuartiles y el recorrido intercuartílico vienen expresados en las mismas unidades que los datos de la muestra, pero la varianza no (recordemos que viene dada en! unidades 2 ). El coeficiente de variación es muy útil para comparar el grado de variación de muestras a distinta escala. JGARCÍA Y CLARE COMANDOS DE R!5
Otras definiciones necesarias. Experimento aleatorio: mecanismo que produce resultados no predecibles con certeza. Espacio muestral (omega): conjunto de todos los posibles resultados del experimento aleatorio. Suceso: subconjunto del espacio muestral, omega. Union de dos sucesos A o B: probabilidad de que ocurra A, B o ambos (A + B). Intersección de dos sucesos A y B: probabilidad de que ocurran A y también B (A * B). Suceso complementario Ac: probabilidad de que no ocurra el suceso A. Suceso elemental: cada resultado individual de un experimento aleatorio. Sucesos disjuntos (A y B): característica de dos conjuntos si y solo si A intersección B = 0. Probabilidad Condicionada: característica de un suceso cuando la condición B depende de lo que salga en la condición P(A B)= P(A y B)/P(B). Para saber si los sucesos son dependientes se calcula P(A) y se compara con P(A B). Si son distintos, son dependientes; si son iguales, son independientes. Teorema de Bayes: teorema en el que se da la probabilidad de que A en algún caso no pase. Se aplica cuando un suceso puede tener dependencia con otro, como en el caso de una prueba de diagnóstico, que puede dar positivo si el paciente esta enfermo, o si el paciente esta dentro del margen de error de personas sanas que se detectan como enfermas. JGARCÍA Y CLARE COMANDOS DE R!6
P(A B) = (P(A)*P(B A))/(P(B A)*P(A)+P(B Ac)*P(Ac)), donde P(B A) es la probabilidad condicionada mencionada anteriormente y P(Ac) es la probabilidad de que no ocurra A. Función de distribución: es una función que se tiene que pedir explícitamente en el enunciado. Se define como la suma de probabilidades de x hasta X, donde X es menor igual a un número dado. Por ejemplo, la probabilidad de sacar un número menor o igual a 3 en un dado es 1/6+1/6+1/6=0.5 Función de probabilidad: se identifica porque es la probabilidad de que ocurra algo en una sola tirada. Por ejemplo, la función de probabilidad de un dado es igual a p(1)=p(x=1)=1/6, p(2)=p(x=2)=1/6,... p(6)=p(x=6)=1/6. Función de densidad de probabilidad: es una función que se tiene que pedir en el enunciado. En ella hay que calcular el área que encerrada bajo la función. Media o esperanza de una variable aleatoria E(X) = sumatorio de p(x)*x : sumatorio de las probabilidades de un suceso por todos los valores que puede tomar ese suceso. Por ejemplo, el dado: 1/6*(1+2+3+4+5+6)=3.5 Media o esperanza de sumas de variables aleatorias E(X + Y): en este caso se hace E(X), luego E(Y) y se suman. Varianza y desviación típica de una variable aleatoria: la varianza es el sumatorio de (p(x)*(x-e(x)))^2, o lo que es lo mismo, sumatorio de p(x)*(x - sumatorio de p(x) * x))^2; y la desviación típica la raíz cuadrada de lo anterior covarianza: cov(x,y)= E[X - E(X)))(Y - E(Y))]. JGARCÍA Y CLARE COMANDOS DE R!7
Varianza de la suma de dos variables aleatorias: var(x+y)=var(x) +var(y)+2*cov(x,y). Variables aleatorias independientes: X e Y son independientes si! A, B Ω se verifica que P((X! A) (Y B)) = P(X A)P(Y B). Sus propiedades son las siguientes:! E(X, Y ) = EX EY! Cov(X, Y ) = 0! Var(X + Y ) = VarX + VarY Distribución uniforme discreta: p(xi)=1/n, i=1,2,3...,n donde E(X)=(xn+x1)/2 y var(x)= (n^2-1)/12. Distribución uniforme continua: dunif(x,min,max), donde x son los cuantiles del rango de valores a calcular, min el valor mínimo y max el valor máximo si hay que calcular solo en un punto; punif() si hay que calcular menor o igual que un punto y 1-punif() si hay que calcular mayor que un punto. E(X)= b+a/2 var= (b-a)^2/12. Distribución de Bernoulli: se identifica por que es un dato binario y solo una tirada. Como es binario, X, cuando es la probabilidad de que pase, toma el valor 1, y cuando es la probabilidad de que no pase el valor 0, con probabilidades p y 1-p. De esta forma, la operación queda así: p(x)=p^x(1-p)^1-x, E(x)=p var(x)=p(1-p). Distribución binomial: se identifica por que es un dato binario y más de una tirada. Se define como la suma de n distribuciones de Bernoulli, siendo n el número de tiradas. JGARCÍA Y CLARE COMANDOS DE R!8
Para calcular en un punto en concreto tenemos dbinom; para calcular menor o igual que un punto pbinom, y para valores mayores que el punto 1- pbinom. dbinom(valor de la x a calcular, tamaño total, probabilidad de x) lo mismo para pbinom. Por ej: pbinom(4,12,0.2) Distribución de Poisson: se identifica porque tienen que hablarte del tiempo en el que ocurren los sucesos. Para calcular en un punto tenemos dpois, para calcular menor o igual que un punto ppois y para valores mayores que el punto 1-ppois. E(X)= número medio de sucesos en un intervalo Var(x)= E(x). dpois(x,lambda) siendo lambda el numero medio de sucesos en un intervalo. Distribución normal: se identifica por que te tiene que dar la desviación típica y un dato medio de la población. Para calcular en un punto tenemos dnorm, para calcular menor o igual que un punto pnorm y para valores mayores que el punto 1-pnorm. dnorm(valor a calcular,media población,desviación típica). JGARCÍA Y CLARE COMANDOS DE R!9
GRÁFICAS Para datos categóricos o cuantitativos discretos: Diagrama de barras barplot. frecuencia_abs<-table(grupos) para sacar los grupos que formarán cada barra. barplot(frecuencia_abs,xlab="grupos sanguineos", ylab="frecuencia absoluta") Para datos categóricos binarios o nominales: Diagrama de sectores pie. pie(frecuencia_absoluta,labels=valores_variable) Para datos cuantitativos continuos: Este tipo de dato ha de ser agrupado en intervalos para poder ser representado. Histograma hist. hist(datos,xlab="etiqueta_eje_x",ylab="etiqueta_eje_y") Relacionar dos variables cuantitativas: Diagrama de dispersión plot. plot(x,y,xlab="etiqueta_eje_x", ylab="etiqueta_eje_y") JGARCÍA Y CLARE COMANDOS DE R!10
Comparar dos muestras de datos cuantitativos: La caja se calcula a partir de los valores de los cuartiles y los brazos representan al máximo y al mínimo. Diagrama de cajas boxplot. boxplot(datos_1,datos_2,ylab="etiqueta_eje_y",names=c("nom bre datos 1","nombre datos 2 )) Leer datos simples (es decir sino son tablas): nombre_variable<-scan("nombre_del_archivo.dat"); Leer tablas: variable<-read.table("nombre_fichero.txt", header=true) Obtener arrays de las columnas de la tabla: variable<-datos_tabla[1:ultimo_valor, "nombre_columna"] Resumen de datos de una columna (frecuencia absoluta) (moda): table(datos_tabla["nombre_columna"]) Si te piden que compares los datos de una columna que cumplan una condición en otra columna: JGARCÍA Y CLARE COMANDOS DE R!11
Por ejemplo, para obtener la altura de los que son varones: varones<-which(tabla[1:46,"sexo"]=="v") Donde "sexo" es el título de la columna y "V" los que son varones dentro de esa columna. tabla[varones,"altura"] Donde "altura" es el título de la columna de alturas y varones el resultado del array calculado en la fila de arriba. Guardar datos en un PDF: Abrimos y creamos el PDF con pdf( nombre_del_pdf.pdf ). Cerramos el PDF con dev.off(), y ente medias insertamos el contenido. El resultado queda algo así: pdf("nombre_del_pdf.pdf") contenido a guardar en el PDF dev.off() Crear arrays: variable<-c(5,"texto",3.2) Crear secuencia de números: array<-seq(n inicio, n fin, paso) Ejemplo numeros<seq(1,5o,1) JGARCÍA Y CLARE COMANDOS DE R!12
Sumar datos: sum(variable) El resultado te lo da en unidades de la variable. Media: mean(variable) El resultado en unidades de la variable. Mediana: median(variable) resultado en unidades de la variable. Desviación típica: sd(variable) resultado en unidades de la variable. Varianza muestral: var(variable) resultado en unidades al cuadrado de la variable. cuartiles o cuantiles: y el 1). quantile(variable) rango intercuartílico (diferencia entre el percentil 3 IQR(variable) JGARCÍA Y CLARE COMANDOS DE R!13
Rango: range(variable) conjunto de valores que toma una función o imagen de una función. Coeficiente de correlación: cor(x,y) Es bueno porque el valor se encuentra entre -1 y 1. Coeficiente de determinación: cor(x,y)^2 Máximo: max(variable) Mínimo: min(variable) Raíz cuadrada: sqrt(valor) Tamaño de la muestra: length(variable) JGARCÍA Y CLARE COMANDOS DE R!14
Búsquedas condicionales en array: nuevo_array<-which(array_a_consultar > condición) las condiciones pueden ser: > >= <= < ==. Repetimos que cualquier mejora del documento será bienvenida. Podéis enviarnos dichas sugerencias entrando en laisladelfaro.com/contacto o también por twitter en @laisladelfaro. Mucha suerte con el examen. JGARCÍA Y CLARE COMANDOS DE R!15