Introducción a Rmodelosysistemas.azc.uam.mx/texts/ProgramaR/... · Web viewNo dude en presentar...

37
Apoyo para Estadística con R. Variable cuantitativa continua , Dpto. de Sistemas, División de CBI, Universidad Autónoma Metropolitana 1. Objetivos 2. – Obtener una visión de los métodos de colecta de datos 3.- Estudiar una serie de datos mediante las Medidas de Tendencia Central y de Variabilidad 3.- Sintetizar los datos mediante la obtención de tablas de frecuencias 4.- Visualizar distribuciones de frecuencia a partir de una serie de datos o a partir de tablas de frecuencia. 5. Para entregar 1. Objetivos Obtener los principales resultados estadísticos de una serie de datos mediante el programa R, medidas de tendencia central, medidas de variabilidad Tablas de frecuencia y frecuencia acumulada Tablas de frecuencia relativa y frecuencia relativa acumulada Visualización de distribuciones de frecuencia en forma de un histograma, boxplot, dot plot. 2. Colecta de datos

Transcript of Introducción a Rmodelosysistemas.azc.uam.mx/texts/ProgramaR/... · Web viewNo dude en presentar...

Page 1: Introducción a Rmodelosysistemas.azc.uam.mx/texts/ProgramaR/... · Web viewNo dude en presentar diagramas y escribir todas las formulas matemáticas necesarias usando el editor de

Apoyo para Estadística con R. Variable cuantitativa continua, Dpto. de Sistemas, División de CBI, Universidad Autónoma Metropolitana1. Objetivos2. – Obtener una visión de los métodos de colecta de datos3.- Estudiar una serie de datos mediante las Medidas de Tendencia Central y de Variabilidad3.- Sintetizar los datos mediante la obtención de tablas de frecuencias4.- Visualizar distribuciones de frecuencia a partir de una serie de datos o a partir de tablas de frecuencia.5. Para entregar

1. ObjetivosObtener los principales resultados estadísticos de una serie de datos mediante el programa R, medidas de tendencia central, medidas de variabilidadTablas de frecuencia y frecuencia acumuladaTablas de frecuencia relativa y frecuencia relativa acumuladaVisualización de distribuciones de frecuencia en forma de un histograma, boxplot, dot plot.

2. Colecta de datos

Page 2: Introducción a Rmodelosysistemas.azc.uam.mx/texts/ProgramaR/... · Web viewNo dude en presentar diagramas y escribir todas las formulas matemáticas necesarias usando el editor de

Imaginar como se obtuvieron los datos de la tabla anterior

3.- Obtener las medidas de posición, de tendencia central y de variabilidad para la variable papel.

Introducción de datos en R.

Antes que nada debe crear un archivo. Dependiendo de los objetivos del estudio, usted puede hacer un archivo para cada variable (una columna) o hacer un archivo con varias variables (más de una columna).

Recuerde que existen varios formatos de almacenamiento de un archivo y que dependiendo del formato se eligen las ordenes para leer el archivo en R. Consultar sección Leer datos en R

Page 3: Introducción a Rmodelosysistemas.azc.uam.mx/texts/ProgramaR/... · Web viewNo dude en presentar diagramas y escribir todas las formulas matemáticas necesarias usando el editor de

Cuando no hay muchos datos una forma sencilla es introducir los datos mediante la función conatenar. Debido a que R no es todavía muy eficiente en almacenar archivos, recuerde guardar sus datos en un formato conocido (Word, bloc de notas, open office, etc)

papel <- c(38,35,2,20,10,1,22,13.4,32.9,37,55,30,6,20,32,3,10,17.2,31,21,12.2,22.2,28,15.5,38.2,2.2,17,24,43,18,8,4,50,8,28.9)

data.entry(papel)

Datos no agrupados o no tabulados. Los datos que se encuentran en la variable papel están sin agrupar. A partir de esa serie, existen en R comandos que permiten obtener las medidas de posición y de tendencia centralLas medidas de posición más comunes son: el mínimo, el máximo, los cuartiles, los percentíles, los deciles.

Para encontrar los valores que se encuentran en la posición mínima y máxima, se ordenan los datos del menor al mayor. En R se puede usar la instrucción sort(x)

> sort(papel) [1] 1.0 2.0 2.2 3.0 4.0 6.0 8.0 8.0 10.0 10.0 12.2 13.4 15.5 17.0 17.2[16] 18.0 20.0 20.0 21.0 22.0 22.2 24.0 28.0 28.9 30.0 31.0 32.0 32.9 35.0 37.0[31] 38.0 38.2 43.0 50.0 55.0

También es posible usar los comandos: Min(x) y Max(x)

> min(papel)[1] 1> max(papel)[1] 55

Los cuartiles son los valores que separan la serie en grupos de 25% . Hay tres cuarteles.

El cuartil uno Q1 se obtiene a partir de la mitad de valores con menor magnitud (ver calculo de la mediana). El procedimiento es muy parecido al aplicado para encontrar la mediana. En este caso hay 18 valores en el primer subgrupo; sumar el rango máximo del subgrupo 18+1 y dividir entre dos; el resultado, en este caso 9.5, indica la posición en donde se encuentra el cuartil 1. Entre esta posición están 10 y 10. El promedio es 10.

El cuartil tres Q3 se encuentra a partir del subgrupo de valores con mayor magnitud. En este caso se reasigna el rango de uno al primer elemento del segundo grupo. El valor que ocupa el rango = (rango máximo + 1)/2 es la posición de cuartil buscado; en este caso hay dos valores el 31 y 32. El cuartel es 31.5

El cuartíl dos es igual a la mediana. Es decir el valor que separa a la serie de datos en dos grupos uno de valores de menor magnitud y el otro de valores con mayor magnitud.

Los cuartíles pueden obtenerse con ayuda de summary(x) o bien con la diferencia de los dos cuarteles

Cuartíl 1 Summary() quantile(x,.25) Cuartíl 2 Summary() o quantile(x,.50) Cuartíl 3 Summary() quantile(x,.75)

> summary(papel) Min. 1st Qu. Median Mean 3rd Qu. Max. 1.00 10.00 20.00 21.59 31.50 55.00

O bien> quantile(papel, 0.25)

Page 4: Introducción a Rmodelosysistemas.azc.uam.mx/texts/ProgramaR/... · Web viewNo dude en presentar diagramas y escribir todas las formulas matemáticas necesarias usando el editor de

25% 10 > quantile(papel, 0.50)50% 20 > quantile(papel, 0.75) 75% 31.5

La instrucción fivenum calcula los valores anteriores

>fivenum(papel)[1] 1.0 10.0 20.0 31.5 55.0

Para encontrar los valores que separan en grupos de 1 en 1% o de 10 en 10: Es decir percentíl 1 al pércentil 100 o décil 1 al décil 10

el decil 1 se obtiene quantile(x,.1)

> quantile(papel, 0.1)10% 3.4

Nota: Existen distintas ambigüedades para calcular los cuantiles y existe polémica por los distintos puntos de vista.

Fuente http://mathworld.wolfram.com/Quartile.htmlProbability and Statistics > Descriptive Statistics MathWorld Contributors > Stikker 

Existen diversas propuestas para hacer el cálculo. Los métodos más comunes son para un valor (P. Stikker, pers. comm., Jan. 24, 2005). In the table, denota el entero más próximo.

metodo 1er cuartil 1er cuartil 3er cuartil 3er cuartil

  impar par impar par

Minitab

Tukey (Hoaglin et al. 1983)

Moore and McCabe (2002)

Mendenhall and Sincich (1995)

Freund and Perles (1987)

Las medidas de tendencia más comunes son: La Moda, la Mediana y el Promedio.

La moda corresponde al valor mas frecuente.

No existe instrucción para obtener directamente la moda, pero puede ordenar los datos y contar que valor se observa con mayor frecuencia:

ordenar datos sort(x)

Page 5: Introducción a Rmodelosysistemas.azc.uam.mx/texts/ProgramaR/... · Web viewNo dude en presentar diagramas y escribir todas las formulas matemáticas necesarias usando el editor de

> sort(papel) [1] 1.0 2.0 2.2 3.0 4.0 6.0 8.0 8.0 10.0 10.0 12.2 13.4 15.5 17.0 17.2[16] 18.0 20.0 20.0 21.0 22.0 22.2 24.0 28.0 28.9 30.0 31.0 32.0 32.9 35.0 37.0[31] 38.0 38.2 43.0 50.0 55.0

Otra forma de obtener la moda es usando la instrucción table

> table(papel)papel 1 2 2.2 3 4 6 8 10 12.2 13.4 15.5 17 17.2 18 20 21 1 1 1 1 1 1 2 2 1 1 1 1 1 1 2 1 22 22.2 24 28 28.9 30 31 32 32.9 35 37 38 38.2 43 50 55 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

(utilizar el formato courrier New para ver mejor la tabla).

En este caso se observa que los valores que más se repiten son el 8, el 10 y el 20. Es decir hay tres modas el 8, el 10 y el 20.

La Mediana corresponde al valor que divide exactamente al grupo en dos subgrupos, un subgrupo con los valores de menor magnitud y el otro con los valores de mayor magnitud.

Para obtener la mediana primero se ordenan los datos de menor a mayor magnitud, se asigna un rango a cada valor, de acuerdo al orden asignado. En este ejemplo el rango máximo es 35 (rango máximo), pues hay 35 valores. La segunda etapa consiste en encontrar la posición donde se encuentra la mediana, mediante (n+1)/2. Si el número de valores es par resulta una posición entre dos valores. La mediana es el promedio de esos dos valores.

En nuestro caso 35 + 1 = 36 y dividir entre dos, de donde resulta 18. La mediana, es el valor que se encuentra en la posición 13. Después de aplicar este procedimiento resulta la Mediana = 20

Para calcular la mediana se usa en R la instrucción: Median()

> median(papel)[1] 20

Para calcular el promedio se usa la formula:

Es decir hay que obtener la suma de los valores y dividir entre el numero total de valores (llamado efectivo)

> sum(papel)[1] 755.7> length(papel)[1] 35

> promedio<-sum(papel)/length(papel)> promedio[1] 21.59143

También se puede usar la instrucción Mean()

Page 6: Introducción a Rmodelosysistemas.azc.uam.mx/texts/ProgramaR/... · Web viewNo dude en presentar diagramas y escribir todas las formulas matemáticas necesarias usando el editor de

> mean(papel)[1] 21.59143

medidas de dispersión o de variabilidad usadas con mayor frecuencia son: Rango, Intervalo intercuartíl, desviación estándar o típica, varianza poblacional, varianza muestral y desviación estándar muestral.

El rango se obtiene es la diferencia max(x) – min(x)

> max(papel)-min(papel)[1] 54

El intervalo Intercuartíl es la diferencia del cuartel 3 menos el cuartel 1

> IQ<-quantile(papel, 0.75)- quantile(papel, 0.25)> IQ 75% 21.5O bien

> summary(papel) Min. 1st Qu. Median Mean 3rd Qu. Max. 1.00 10.00 20.00 21.59 31.50 55.00

Es decir 31.5 - 10

También existe una función en R

> IQR(papel)[1] 21.5

Para calcular la varianza y la desviación estándar poblacionales se usan las formulas

obtener las diferencias entre cada valor y el promedio, a, , para la desviación estándar obtener la raíz de la varianza. Veamos como:

> dif<-(papel-mean(papel))> dif [1] 16.4085714 13.4085714 -19.5914286 -1.5914286 -11.5914286 -20.5914286 [7] 0.4085714 -8.1914286 11.3085714 15.4085714 33.4085714 8.4085714[13] -15.5914286 -1.5914286 10.4085714 -18.5914286 -11.5914286 -4.3914286

n

xxn

ii

1

2

2

n

xxn

ii

1

2

Page 7: Introducción a Rmodelosysistemas.azc.uam.mx/texts/ProgramaR/... · Web viewNo dude en presentar diagramas y escribir todas las formulas matemáticas necesarias usando el editor de

[19] 9.4085714 -0.5914286 -9.3914286 0.6085714 6.4085714 -6.0914286[25] 16.6085714 -19.3914286 -4.5914286 2.4085714 21.4085714 -3.5914286[31] -13.5914286 -17.5914286 28.4085714 -13.5914286 7.3085714

Se elevan los datos al cuadrado> difal2<-dif*dif> difal2 [1] 269.2412163 179.7897878 383.8240735 2.5326449 134.3612163 [6] 424.0069306 0.1669306 67.0995020 127.8837878 237.4240735[11] 1116.1326449 70.7040735 243.0926449 2.5326449 108.3383592[16] 345.6412163 134.3612163 19.2846449 88.5212163 0.3497878[21] 88.1989306 0.3703592 41.0697878 37.1055020 275.8446449[26] 376.0275020 21.0812163 5.8012163 458.3269306 12.8983592[31] 184.7269306 309.4583592 807.0469306 184.7269306 53.4152163

se obtiene la sum> sumadifal2<-sum(difal2)

se divide entre el número de valores> vardepapel<-sumadifal2/length(papel)> vardepapel[1] 194.6111

Observe que también pudo haber usado la función de R var> var(papel)[1] 200.3349

Pero observar que no da el mismo resultado que el que se obtuvo con la fórmula, pues R calcula la varianza muestral, es decir

Por loque es necesario multiplicar por n-1 y dividir entre n para obtener la varianza poblacional.

> ((n-1)/n)*var(papel)[1] 194.6111>

Lo mismo sucede para la desviación estándar muestral que se calcula con

En R resulta

> sd(papel)[1] 14.15397

La desviación estándar poblacional se obtiene

> desvstd<-sqrt(vardepapel)> desvstd

Page 8: Introducción a Rmodelosysistemas.azc.uam.mx/texts/ProgramaR/... · Web viewNo dude en presentar diagramas y escribir todas las formulas matemáticas necesarias usando el editor de

[1] 13.95031> sqrt(((n-1)/n)*var(papel))[1] 13.95031

También existen instrucciones en R para obtener las medidas anteriores:

Desviación poblacional estándar o típica sqrt((n-1/n))*sd()

Para calcular la varianza poblacional

o en R se puede obtener con (n-1/n)*var()

El comando en R para calcular la desviación estándar o típica muestral es sd()

En el caso de la varianza muestral var()

No basta con hacer los cálculos sino que es necesario interpretar los resultados anteriores. A continuación se presenta una lista de instrucciones en R.

4.- Tablas de frecuencia La instrucción table(x) permite obtener una tabla de frecuencias por valor:

> table(papel)papel 1 2 2.2 3 4 6 8 10 12.2 13.4 15.5 17 17.2 18 20 21 1 1 1 1 1 1 2 2 1 1 1 1 1 1 2 1

22 22.2 24 28 28.9 30 31 32 32.9 35 37 38 38.2 43 50 55 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Estos datos se pueden presentar en una tabla de frecuencias por valor de la forma:

Valor 1 2 2.2 … … 50 55

Page 9: Introducción a Rmodelosysistemas.azc.uam.mx/texts/ProgramaR/... · Web viewNo dude en presentar diagramas y escribir todas las formulas matemáticas necesarias usando el editor de

frecuencia 1 1 1 … … 1 1

Una la tabla de frecuencias en clases tiene la siguiente información

Clase Limite inferior

Limite superior

Centro o marca de clase

FrecuenciaAbsoluta

Frecuenciarelativa

FrecuenciaAbsoluta

FrecuenciaAbsoluta

1 linf1 lsup1 c1 n1 f1 na,1 fa,1

2 linf2 lsup2 c2 n2 f2 na,2 fa,2

3 linf3 lsup3 c3 n3 f3 na,3 fa,3

i - 1 linf i - 1 lsup i - 1 c i - 1 n i - 1 f i - 1 n a,i - 1 fa,i - 1

i linf i lsup i c i n i f i n ai f ai

i+1 linf i +1 lsup i +1 c i +1 n i +1 f i +1 n a,i +1 fa,i +1

n linfn lsupn cn nn fn na,n fa,n

Procedimineto para calcular el número de clases. El número de clases es arbitrario, sin embargo existen ciertas reglas:

Numero de clases entre 5 y 9, ya que es difícil visualizar, identificar y memorizar más de 9 unidades de información.

Numero de clases impar ya que se puede visualizar la tendencia de los datos Observar que los datos originales no tienen decimales y los límites de los

intervalos de cada clase tienen un decimal (es decir uno más que los datos originales). Por otra parte observe que el número de decimales de la marca de clase coincide con el número de decimales de los datos.

Observar que el nivel de detalle se reduce al disminuir el número de clases.

Observar que una tabla de frecuencias por clase es diferente de la tabla de frecuencias por valor. No siempre es necesario hacer las dos tablas. Esto depende de sus datos.

Esta tabla se puede obtener en R después de visualizar el histograma. Ver sección “Visualización de una serie de datos”.

La notación en la siguiente tabla es:

frecuencia absoluta para cada clase (número de valores en la clase i).

Observar que

frecuencia relativa (fracción de valores en la clase i respecto al total n)

Observar que

Page 10: Introducción a Rmodelosysistemas.azc.uam.mx/texts/ProgramaR/... · Web viewNo dude en presentar diagramas y escribir todas las formulas matemáticas necesarias usando el editor de

Para identificar las frecuencias acumuladas se indica una a en superindice:

frecuencia absoluta acumulada hasta la clase i (suma de las frecuencias desde la clase inicial hasta la clase i). Observar que en la última clase la frecuencia absoluta acumulada es n.

frecuencia relativa acumulada hasta la clase i (suma de las frecuencias relativas desde la clase inicial hasta la clase i). observar que en la ultima clase la frecuencia relativa acumulada es 1.

En ocasiones no se dispone de toda la serie de datos en una lista y solo se cuenta con una tabla de frecuencias (distribución de frecuencias). Por ejemplo si se indica parte de la tabla de frecuencias, es necesario obtener las demás frecuencias:

Por ejemplo si se tiene :

Clase Limite inferior

Limite superior

Centro o marca de clase

FrecuenciaAbsoluta

Frecuenciarelativa

FrecuenciaAbsoluta

FrecuenciaAbsoluta

li ls freq1 0 10 102 10 20 83 20 30 74 30 40 75 40 50 26 50 60 1

Primero se ingresan en R las columnas conocidas en forma de vectores. Para esto se puede copiar cada columna con la instrucción read.delim("clipboard")

> linf<-read.delim("clipboard")> linf li1 02 103 204 305 406 50> attach(linf)> lsup<-read.delim("clipboard")> lsup ls1 102 203 304 405 506 60> attach(lsup)> freq<-read.delim("clipboard")> attach(freq)> freq ni1 102 8

Page 11: Introducción a Rmodelosysistemas.azc.uam.mx/texts/ProgramaR/... · Web viewNo dude en presentar diagramas y escribir todas las formulas matemáticas necesarias usando el editor de

3 74 75 26 1

Verificamos que son los valores

> li[1] 0 10 20 30 40 50> ls[1] 10 20 30 40 50 60> ni[1] 10 8 7 7 2 1

Se obtienen los centros de cada clase

> ci<-(li+ls)/2> ci[1] 5 15 25 35 45 55

El efectivo es> nt<-sum(ni)> nt[1] 35

Las frecuencias relativas resultan ser:

> fi<-ni/nt> fi[1] 0.28571429 0.22857143 0.20000000 0.20000000 0.05714286 0.02857143

> sum(fi)[1] 1

Las frecuencias acumuladas absolutas y relativas se obtienen

> nai<-cumsum(ni)> nai[1] 10 18 25 32 34 35> fai<-cumsum(fi)> fai[1] 0.2857143 0.5142857 0.7142857 0.9142857 0.9714286 1.0000000

De lo anterior se obtiene la siguiente tabla de frecuencias.

Clase Limite inferior

Limite superior

Centro o marca de clase

FrecuenciaAbsoluta

Frecuenciarelativa

FrecuenciaAbsolutaacumulada

FrecuenciaRelativaacumulada

Li ls Ci ni fi nai fai1 0 10 5 10 0.28571429 10 0.28571432 10 20 15 8 0.22857143 18 0.51428573 20 30 25 7 0.20000000 25 0.71428574 30 40 35 7 0.20000000 32 0.91428575 40 50 45 2 0.05714286 34 0.97142866 50 60 55 1 0.02857143 35 1.0000000

Page 12: Introducción a Rmodelosysistemas.azc.uam.mx/texts/ProgramaR/... · Web viewNo dude en presentar diagramas y escribir todas las formulas matemáticas necesarias usando el editor de

5.- Visualización de una serie de datosGráficas

Diagrama de tallo y hojas

> stem(papel,3)

The decimal point is at the |

0 | 0 2 | 020 4 | 0 6 | 0 8 | 00 10 | 00 12 | 24 14 | 5 16 | 02 18 | 0 20 | 000 22 | 02 24 | 0 26 | 28 | 09 30 | 00 32 | 09 34 | 0 36 | 0 38 | 02 40 | 42 | 0 44 | 46 | 48 | 50 | 0 52 | 54 | 0

> boxplot(papel)

Page 13: Introducción a Rmodelosysistemas.azc.uam.mx/texts/ProgramaR/... · Web viewNo dude en presentar diagramas y escribir todas las formulas matemáticas necesarias usando el editor de

010

2030

4050

>par(mfrow=c(2, 2)) # para visualizar cuatro zonas en la ventana gráfica> boxplot(papel notch = TRUE, col = "pink")> boxplot(papel, notch = TRUE, col = "pink", horizontal = TRUE)> boxplot(papel, notch = TRUE, col = "pink", horizontal = TRUE, main = "producción de papel")

Un histograma se genera con

> hist(papel)

Page 14: Introducción a Rmodelosysistemas.azc.uam.mx/texts/ProgramaR/... · Web viewNo dude en presentar diagramas y escribir todas las formulas matemáticas necesarias usando el editor de

Histogram of papel

papel

Freq

uenc

y

0 10 20 30 40 50 60

02

46

810

Usted puede cambiar los atributos del histograma (colores, títulos, etc). Muchos parámetros se pueden modificar

hist(x, breaks = "Sturges", freq = NULL, probability = !freq, include.lowest = TRUE, right = TRUE, density = NULL, angle = 45, col = NULL, border = NULL, main = paste("Histogram of" , xname), xlim = range(breaks), ylim = NULL, xlab = xname, ylab, axes = TRUE, plot = TRUE, labels = FALSE, nclass = NULL, ...)

breaks representa los limites de clasescon main puede cambiar el titulo de la gráficacon xlab el título del eje xcon ylab el titulo del eje ynclass puede indicar cuantas clases, aunque puede ser contraproducente si usa breaks

Observar que a partir del histograma anterior se puede obtener la siguiente tabla de frecuencia:

Lim inf Lim sup frecuencia frecuencia frecuencia frecuencia Acumulada relativa relativa acum.0 10 10 1 0.28571429 0.285714310 20 8 4 0.22857143 0.514285720 30 7 5 0.20000000 0.714285730 40 7 9 0.20000000 0.914285740 50 2 16 0.05714286 0.971428650 60 1 30 0.02857143 1.0000000

Para obtener la tabla anterior primero se deben recuperar los atributos de la función histograma. Para esto se deben asignar a una variable “y” como sigue

> y<-hist(papel)> y$breaks[1] 0 10 20 30 40 50 60

Page 15: Introducción a Rmodelosysistemas.azc.uam.mx/texts/ProgramaR/... · Web viewNo dude en presentar diagramas y escribir todas las formulas matemáticas necesarias usando el editor de

$counts[1] 10 8 7 7 2 1

$intensities[1] 0.028571423 0.022857143 0.020000000 0.020000000 0.005714286 0.002857143

$density[1] 0.028571423 0.022857143 0.020000000 0.020000000 0.005714286 0.002857143

$mids[1] 5 15 25 35 45 55

$xname[1] "papel"

$equidist[1] TRUE

attr(,"class")[1] "histogram">

Trate de identificar estos atributos en la figura histograma

El atributo break se puede usar para hacer tablas de frecuencia en Ry se pueden recuperar y usar

> y$breaks[1] 0 10 20 30 40 50 60

Con cut vamos a hacer tablas de frecuencia como sigue

> cats = cut(papel,breaks=y$breaks)> cats [1] (30,40] (30,40] (0,10] (10,20] (0,10] (0,10] (20,30] (10,20] (30,40][10] (30,40] (50,60] (20,30] (0,10] (10,20] (30,40] (0,10] (0,10] (10,20][19] (30,40] (20,30] (10,20] (20,30] (20,30] (10,20] (30,40] (0,10] (10,20][28] (20,30] (40,50] (10,20] (0,10] (0,10] (40,50] (0,10] (20,30]Levels: (0,10] (10,20] (20,30] (30,40] (40,50] (50,60]

No sirve que presente esto sin decir nada. Trate de entender y explicar lo que la función cut hace.

> table(cats)cats (0,10] (10,20] (20,30] (30,40] (40,50] (50,60] 10 8 7 7 2 1

Y lo anterior que significa ¿?

frecuencia relativa> table(cats)/length(papel)cats (0,10] (10,20] (20,30] (30,40] (40,50] (50,60] 0.28571429 0.22857143 0.20000000 0.20000000 0.05714286 0.02857143

La frecuencia acumulada resulta> cumsum(table(cats))

Page 16: Introducción a Rmodelosysistemas.azc.uam.mx/texts/ProgramaR/... · Web viewNo dude en presentar diagramas y escribir todas las formulas matemáticas necesarias usando el editor de

(0,10] (10,20] (20,30] (30,40] (40,50] (50,60] 10 18 25 32 34 35

frecuencia relativa acumulada

> cumsum(table(cats))/length(papel) (0,10] (10,20] (20,30] (30,40] (40,50] (50,60] 0.2857143 0.5142857 0.7142857 0.9142857 0.9714286 1.0000000

Con lo anterior puede construir la siguiente tabla

Más sobre histogramas: también puede presentar los resultados en forma más agradable

hist(papel, col = "green", border = 1, main = "distribución de pesos de papel", xlab = "prod de papel" , ylab = "frecuencia")

distribución de pesos de papel

prod de papel

frecu

enci

a

0 10 20 30 40 50 60

02

46

810

> hist(papel, breaks=c(0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60), col = "blue", border = 1, main = "distribución de pesos papel", xlab = "pesos" , ylab = "frecuencia")

distribución de pesos papel

pesos

frecu

enci

a

0 10 20 30 40 50 60

01

23

45

6

Page 17: Introducción a Rmodelosysistemas.azc.uam.mx/texts/ProgramaR/... · Web viewNo dude en presentar diagramas y escribir todas las formulas matemáticas necesarias usando el editor de

Si desea hacer el polígono de frecuencias> y<-hist(papel, breaks=c(0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60), col = "pink", border = 1, main = "distribución de pesos papel", xlab = "pesos" , ylab = "frecuencia")> lines(c(min(y$breaks),y$mids,max(y$breaks)),c(0,y$counts,0),type="l")

distribución de pesos papel

pesos

frecu

enci

a

0 10 20 30 40 50 60

01

23

45

6

También se puede hacer el histograma con frecuencia relativa

> hist(papel, freq= FALSE, col = "pink")> lines(density(papel))

hist(papel, nclass=7)

>y<-plot.ecdf(papel,main="distribución acumulada")

Page 18: Introducción a Rmodelosysistemas.azc.uam.mx/texts/ProgramaR/... · Web viewNo dude en presentar diagramas y escribir todas las formulas matemáticas necesarias usando el editor de

0 10 20 30 40 50 60

0.0

0.2

0.4

0.6

0.8

1.0

distribución acumulada

x

Fn(x

)

> y<-plot.ecdf(papel,main="distribución acumulada",col.01line= "blue", verticals = TRUE,ylab = "frecuencia relativa acumulada", pch=20)

>

0 10 20 30 40 50 60

0.0

0.2

0.4

0.6

0.8

1.0

distribución acumulada

x

frecu

enci

a re

lativ

a ac

umul

ada

También

> papel [1] 38.0 35.0 2.0 20.0 10.0 1.0 22.0 13.4 32.9[10] 37.0 55.0 30.0 6.0 20.0 32.0 3.0 10.0 17.2[19] 31.0 21.0 12.2 22.2 28.0 15.5 38.2 2.2 17.0[28] 24.0 43.0 18.0 8.0 4.0 50.0 8.0 28.9> Fnp<-ecdf(papel)> plot(Fnp, lwd = 0.01)> xx <- unique(sort(c(seq(-3, 2, length=201), knots(Fnp))))> lines(xx, Fnp(xx), col='blue')>abline(v=knots(Fnp),lty=2,col="red")

Page 19: Introducción a Rmodelosysistemas.azc.uam.mx/texts/ProgramaR/... · Web viewNo dude en presentar diagramas y escribir todas las formulas matemáticas necesarias usando el editor de

> op <- par(mfrow=c(1, 1))> dotplot(papel)

Ver apendice

0 10 20 30 40 50

Si desea ver usar op <- par(mfrow=c(2, 2))para visualizar cuatro gráficas

Por ejemplo podemos ver el histograma, acumulado, el boxplot y el dot Plot

Page 20: Introducción a Rmodelosysistemas.azc.uam.mx/texts/ProgramaR/... · Web viewNo dude en presentar diagramas y escribir todas las formulas matemáticas necesarias usando el editor de

distribución de pesos papel

pesos

frecu

enci

a

0 20 40 60

02

46

020

40

0 20 40 0 20 40 60

0.0

0.6

distribución acumulada

x

frecu

enci

a re

lativ

a ac

umul

ada

7.- Visualizar datos a partir de tablas de frecuenciasEn muchas situaciones no se cuenta con la serie de datos completa y solo se tiene una tabla de frecuencias. Por ejemplo si tenemos la tabla de frecuencias siguiente:

Clase Limite inferior

Limite superior

Centro o marca de clase

FrecuenciaAbsoluta

Frecuenciarelativa

FrecuenciaAbsolutaacumulada

FrecuenciaRelativaacumulada

li ls Ci freq fi nai fai1 0 10 5 10 0.28571429 10 0.28571432 10 20 15 8 0.22857143 18 0.51428573 20 30 25 7 0.20000000 25 0.71428574 30 40 35 7 0.20000000 32 0.91428575 40 50 45 2 0.05714286 34 0.97142866 50 60 55 1 0.02857143 35 1.0000000

lines(c(min(ls),ls,max(ls)),c(0,nai,0),type="l")

Podemos ingresar en R las columnas en forma de vectores

Las frecuencias absolutas y relativas> ni[1] 10 8 7 7 2 1> fi[1] 0.28571429 0.22857143 0.20000000 0.20000000 0.05714286 0.02857143

Las marcas de clase

Page 21: Introducción a Rmodelosysistemas.azc.uam.mx/texts/ProgramaR/... · Web viewNo dude en presentar diagramas y escribir todas las formulas matemáticas necesarias usando el editor de

> ci[1] 5 15 25 35 45 55

Las frecuencias acumuladas absolutas y relativas

> nai[1] 10 18 25 32 34 35> fai[1] 0.2857143 0.5142857 0.7142857 0.9142857 0.9714286 1.0000000

De aquí se pueden visualizar las tablas de frecuencia como sigue

> par(mfrow=c(2,2))> plot(ci,ni)> plot(ci,fi)> plot(ci,nai)> plot(ci,fai)

barplot(ni, names.arg= ci, col = "pink", main = "distribución absoluta", xlab = "ci", ylab = "ni")

Page 22: Introducción a Rmodelosysistemas.azc.uam.mx/texts/ProgramaR/... · Web viewNo dude en presentar diagramas y escribir todas las formulas matemáticas necesarias usando el editor de

barplot(fi, names.arg= ci, col = "cyan", main = "distribución relativa", xlab = "ci", ylab = "fi")

> barplot(nai, names.arg= ls, col = "blue", main = "distribución absoluta acumulada", xlab = "ls", ylab = "nia")

> barplot(fai, names.arg= ls, col = "blue", main = " distribución absoluta acumulada ", xlab = "ls", ylab = "fia")>

> sfun0 <- stepfun(ls, ni, f = 0)

Page 23: Introducción a Rmodelosysistemas.azc.uam.mx/texts/ProgramaR/... · Web viewNo dude en presentar diagramas y escribir todas las formulas matemáticas necesarias usando el editor de

> plot(sfun0)> sfun0 <- stepfun(ls, fi, f = 0)> plot(sfun0)> sfun0 <- stepfun(ls, nai, f = 0)> plot(sfun0, col.ver = "blue")> sfun0 <- stepfun(ls, fai, f = 0)> plot(sfun0, col.ver = "red")

Observar que no se obtiene la misma calidad que con los datos completos

El polígono de frecuencias acumlado se puede obtener mediante:

> plot(ls, nai)> lines(c(min(ls),ls,max(ls)),c(0,nai,0),type="l")

5.- Cálculos a partir de tablas de frecuencias

5.1. A partir de tablas de frecuencias por clases

Page 24: Introducción a Rmodelosysistemas.azc.uam.mx/texts/ProgramaR/... · Web viewNo dude en presentar diagramas y escribir todas las formulas matemáticas necesarias usando el editor de

Aunque con menos precisión que con todos los datos, es posible calcular las medidas de posición, medidas de tendencia central y medidas de variabilidad.

Por ejemplo a partir de la tabla

Clase Limite inferior

Limite superior

Centro o marca de clase

FrecuenciaAbsoluta

Frecuenciarelativa

FrecuenciaAbsolutaacumulada

FrecuenciaRelativaacumulada

li ls Ci freq fi nai fai1 0 10 5 10 0.28571429 10 0.28571432 10 20 15 8 0.22857143 18 0.51428573 20 30 25 7 0.20000000 25 0.71428574 30 40 35 7 0.20000000 32 0.91428575 40 50 45 2 0.05714286 34 0.97142866 50 60 55 1 0.02857143 35 1.0000000

Por ejemplo un valor cercano al mínimo puede ser el limite inferior de la primera clase, el valor máximo puede ser el limite superior de la última clase. En el caso de la moda, nos podemos conformar con identificar la clase donde se encuentra el mayor número de datos.

Min = 0Max= 60Rango = 60Amplitud de clase = 10Clase Modal = 1

En el caso de la moda se habla de clase modal

No dude en buscar las formulas para calcular el promedio y la varianza con la información presentada en esta tabla.

Por ejemplo el promedio se obtiene mediante:

> prom1<-sum(ni*ci)/nt> prom1[1] 21> prom2<-sum(fi*ci)> prom2[1] 21

Observar que este resultado difiere del que se obtiene cuando se tienen todos los datos. ¿Porqué?

La varianza poblacional se obtiene mediante

En R mediante

Page 25: Introducción a Rmodelosysistemas.azc.uam.mx/texts/ProgramaR/... · Web viewNo dude en presentar diagramas y escribir todas las formulas matemáticas necesarias usando el editor de

> varp1<-(sum(ni*(ci-prom1)^2))/nt> varp1[1] 189.7143> varp2<-(sum(fi*(ci-prom1)^2))> varp2[1] 189.7143

Observar que el valor es diferente del que se obtiene con los datos completos.

La varianza muestral se obtiene:

> varm1<-((nt-1)/nt)*varp1> varm1[1] 184.2939

Pregunta ¿ Cuáles son las formulas de la varianza muestral y de la desviación estándar muestral?

La desviación estándar poblacional a partir de datos agrupados en clase se puede calcular con la fórmula:

Pregunta ¿ Calcular en R desviación estándar poblacional?

Para el cálculo de la mediana y los cuarteles a partir de tablas de frecuencia se requiere interpolar.

Por ejemplo para calcular la mediana. Esta se debe encontrar entre los valores que limitan la clase uno y la clase 2

li Ls Ci freq fi nai fai1 0 10 5 10 0.28571429 10 0.28571432 10 20 15 8 0.22857143 18 0.5142857

El 28.57 % de los valores se encuentran de 0 hasta el valor 10El 51.42 % de los valores se encuentran de 0 hasta el valor 20

De aquí podemos hacer una interpolación lineal

Ls fai1 X1= 10 Y1= 0.2857143

X Y= 0.52 X2 =20 Y2= 0.5142857

Page 26: Introducción a Rmodelosysistemas.azc.uam.mx/texts/ProgramaR/... · Web viewNo dude en presentar diagramas y escribir todas las formulas matemáticas necesarias usando el editor de

Despejando x se obtiene un valor aproximado a la mediana. Por supuesto que, en muchas publicaciones se presentan formulas para obtener la mediana y los cuarteles. No dude en obtener y comparar los resultados con tales formulas.

También puede obtener la mediana con la siguiente parte de la tabla:

Ls nai1 10 10

17.52 20 18

5.2. A partir de tablas de frecuencias por valor

> table(papel)papel 1 2 2.2 3 4 6 8 10 12.2 13.4 15.5 17 17.2 18 20 21 1 1 1 1 1 1 2 2 1 1 1 1 1 1 2 1

22 22.2 24 28 28.9 30 31 32 32.9 35 37 38 38.2 43 50 55 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

kpapel kni1 12 12.2 13 14 16 18 212.2 213.4 115.5 117 117.2 118 120 121 222 122.2 124 128 128.9 130 131 132 132.9 135 137 138 138.2 143 150 155 1

35Se pueden calcular todas las medidas de posición, tendencia central y variabilidad.

Page 27: Introducción a Rmodelosysistemas.azc.uam.mx/texts/ProgramaR/... · Web viewNo dude en presentar diagramas y escribir todas las formulas matemáticas necesarias usando el editor de

o

También es posible visualizar los datos en forma gráfica

> barplot(kni, kpapel)> barplot(kni, names.arg = kpapel)> barplot(kni, names.arg = kpapel, col = "green")>

Que en realidad no presenta, en este caso, mucho interés

Apendice:

Para hacer el dotplot copiar en R la siguiente funciónFunción dotplot# R function to graph a dotplot# This is inefficient code, but is fine for small examples## Written by Bret Larget, September 3, 2003#

Page 28: Introducción a Rmodelosysistemas.azc.uam.mx/texts/ProgramaR/... · Web viewNo dude en presentar diagramas y escribir todas las formulas matemáticas necesarias usando el editor de

dotplot = function(x,tol=1e-08) { y = rep(1,length(x)) sx = sort(x) dx = diff(sx) maxHt = 1 ht = 1 for(i in 2:length(sx)) { if(abs(dx[i-1])<tol) ht = ht+0.1 else ht = 1 if(ht > maxHt) maxHt = ht } plot(x,y,type="n",axes=F,xlab="",ylab="",ylim=c(1,maxHt+1)) axis(1,pretty(x)) points(sx[1],1,pch=16) ht = 1 for(i in 2:length(sx)) { if(abs(dx[i-1])<tol) ht = ht+0.1 else ht = 1 points(sx[i],ht,pch=16) } invisible(NULL)}

#Hasta aquí.

Todo lo anterior es una guía y no se debe de copiar y pegar para entregar la práctica,se deben explicar las operaciones y gráficas.

Page 29: Introducción a Rmodelosysistemas.azc.uam.mx/texts/ProgramaR/... · Web viewNo dude en presentar diagramas y escribir todas las formulas matemáticas necesarias usando el editor de

Lo siguiente es para el curso de Sistemas Ambientales

8.- Entregar. Solamente se debe entregar lo siguiente.Entregar en un solo archivo a mas tardar en la fecha limite

a.- Se toman 25 muestras de un Kg de suelo. Los resultados del análisis en busca de tricloroetileno arrojan los siguientes valores en mg.2.10, 2.27, 2.02, 1.17, 3.28, 4.35, 5.12, 3.82, 1.54, 1.92, 3.62, 4.76, 5.80, 1.75, 2.25, 3.53, 5.07, 2.23, 4.62, 1.92, 5.17, 3.42, 4.29, 5.54, 2.83

Establecer un histograma con cinco clases y determinar que porcentaje de valores se encuentran por debajo de 4ppm.

La EPA fija un plan de emergencia para el valor que separa el 80% de las muestras con menores valores de TCE en mg.

Cuál es el promedio y la desviación estándar muestral en mg y en ppm? Si se supone que el TCE se encuentra distribuido uniformemente en la

muestras (mezclado perfecto) y solo hubiese tomado muestras de 250 g obtener el promedio y desviación estándar. A partir de estos resultados hubiese podido obtener el promedio y desviación estándar para las muestras de un Kg?

b.- Obtener una serie de datos de algún proceso o sistema ambiental. Objetivos : Presentar el origen de los datos y los objetivos del estudio

estadístico de estos. Hacer un diagrama de Diagrama de flujo o un mapa conceptual . Escribir una función para calcular todas las medidas de tendencia central.

Comentar la función y entregar resultados comentados Escribir una función para calcular todas las medidas de variabilidad.

Comentar la función y entregar resultados comentados

Page 30: Introducción a Rmodelosysistemas.azc.uam.mx/texts/ProgramaR/... · Web viewNo dude en presentar diagramas y escribir todas las formulas matemáticas necesarias usando el editor de

Escribir una función para construir, a partir de una serie de datos, una tabla de clases con todas las frecuencias (simple, acumulada, relativa y relativa acumulada). Comentar la función y entregar resultados comentados

Escribir una función para visualizar los datos (histograma, polígono de frecuencias, histograma acumulado, box plot, stem and leaf)

Interpretar sus datos de acuerdo al sistema o proceso elegido. Comentar los resultados estadísticos y conclusiones

No dude en presentar diagramas y escribir todas las formulas matemáticas necesarias usando el editor de ecuaciones propuesto por Word (para el promedio, varianza, mediana, moda, cuarteles, con datos no agrupados y agrupados

El siguiente es un ejemplo de mapa de conceptos en Estadística. Recuerde solo es un ejemplo. Usted puede hacer algo mejor.

Page 31: Introducción a Rmodelosysistemas.azc.uam.mx/texts/ProgramaR/... · Web viewNo dude en presentar diagramas y escribir todas las formulas matemáticas necesarias usando el editor de