Organización de datos

Page 1

Organizaci贸n de Datos


ORGANIZACIÓN DE DATOS

R con R

ORGANIZACIÓN DE DATOS I.

OBJETIVO Emplear comandos, funciones y librerías para realizar un análisis descriptivo apropiado.

II.

DESCRIPCIÓN En este tema se proporcionan algunos procedimientos para la clasificación, la tabulación y la representación de los datos. Estos procedimientos conducen a la formación de cuadros o tablas de frecuencias y a representaciones gráficas. Clasificación de Variables: 1) Cualitativas - Nominal - Jerárquica 2) Cuantitativas - Discreta - Continua

III.

CASO APLICATIVO Se tiene un conjunto de registros del Hospital Centro de Salud Materno de San Bartolomé. Se desea realizar análisis exploratorio de las variables. Data: http://rconr.webcindario.com/data/bartolome.txt Descripción de variables:      

IV.

caso edad estado partos peso sexo

: : : : : :

Número de caso Edad de la madre Estado civil de la madre Número de partos de la madre Peso del hijo en kg Sexo del hijo

DESARROLLO Para el desarrollar la aplicación se tomará en cuenta la clasificación de la variable; primero se hará la organización tabular y después realizar la gráfica correspondiente. Entonces empezaremos con la lectura de los datos.

1


ORGANIZACIÓN DE DATOS

R con R

SOLUCIONARIO DE LA APLICACIÓN > getwd() #Identificar la dirección de trabajo [1] "C:/Users/DANNY/Documents" > setwd("G:/R") #Asignar la dirección donde se desea trabajar > dir() #Ver los archivos de

la carpeta de trabajo

[1] "bartolome.txt" "notas.txt" > data<-read.table("bartolome.txt", header=TRUE) #Leer la data > head(data) #Muestra los 6 primeros registros caso edad estado partos peso sexo 1 1 25 Conviv 2 2.90 Femenino 2 2 22 Conviv 2 2.90 Femenino 3 3 32 Conviv 4 4.04 Masculino 4 4 22 Conviv 1 4.35 Femenino 5 5 18 Casada 1 3.60 Masculino 6 6 21 Casada 3 3.50 Masculino > str(data) #Muestra el tipo de dato de las variables 'data.frame': 45 obs. of 6 variables: $ caso : int 1 2 3 4 5 6 7 8 9 10 ... $ edad : int 25 22 32 22 18 21 20 19 23 26 ... $ estado: Factor w/ 3 levels "Casada","Conviv",..: 2 2 2 2 1 1 3 1 1 1 ... $ partos: int 2 2 4 1 1 3 2 1 3 2 ... $ peso : num 2.9 2.9 4.04 4.35 3.6 3.5 3.2 3 3.6 2.8 ... $ sexo : Factor w/ 2 levels "Femenino","Masculino": 1 1 2 1 2 2 2 1 2 2 ... > names(data) #Muestra los nombres de las variables [1] "caso"

"edad"

"estado" "partos" "peso"

"sexo"

> attach(data) #Para jalar las variables de manera directa

A. VARIABLES CUALITATIVAS > fa<-table(estado)#Frecuencia absoluta > fa estado Casada

Conviv Soltera

26

17

2

> fr<-fa/length(estado)#Frecuencia relativa > fr estado Casada

Conviv

Soltera

0.57777778 0.37777778 0.04444444 > fp<-fr*100 #Frecuencia porcentual > fp estado Casada

Conviv

Soltera

57.777778 37.777778

4.444444

2


ORGANIZACIร N DE DATOS

R con R

> barplot(fa, ylab="Frecuencia Absoluta", main="Estado Civil") #Grรกfico de barras

> color<-c("lightblue", "mistyrose", "lightcyan") > barplot(fa,y lab="Frecuencia Absoluta", main="Estado Civil", col=color)#A color

> barplot(fa, ylab="Frecuencia Absoluta", main="Estado Civil", col=rainbow(3))#3 colores

> pie(fa) #Grรกfico de pastel

3


ORGANIZACIĂ“N DE DATOS

R con R

> pie(fa,labels=c("Casada","Conviviente","Soltera"),main="Estado Civil",col=rainbow(3),init.angle=90)

> dotchart(as.numeric(fa),labels=c("Casada","Conviviente","Soltera"),main="Estado Civil",col=rainbow(3))

B. VARIABLES CUANTITATIVAS > ##DISCRETAS > fa<-table(partos) > fa partos 1

2

3

4

5

12 16 11

3

3

> fr<-fa/length(partos) > fr partos 1

2

3

4

5

0.26666667 0.35555556 0.24444444 0.06666667 0.06666667 > Fa<-cumsum(table(partos)) #Forma general > Fa<-cumsum(fa) #Empleando la frecuecia absoluta > Fa 1

2

3

4

5

12 28 39 42 45

4


ORGANIZACIÓN DE DATOS

R con R

> Fr<-cumsum(table(partos)/length(partos)) > Fr<-cumsum(fr) > Fr 1

2

3

4

5

0.2666667 0.6222222 0.8666667 0.9333333 1.0000000 > fp<-fr*100 > fp partos 1

2

3

4

5

26.666667 35.555556 24.444444

6.666667

6.666667

4

5

> Fp<-cumsum(fp) > Fp 1

2

3

26.66667

62.22222

86.66667

93.33333 100.00000

GRÁFICA: > plot(fa,main="Número de partos",col=rainbow(5), type="h")

> ##CONTINUAS > k<-sqrt(length(peso)) > k<-1+3.3*log(length(peso), 10) > k<-round(k) > k [1] 6 > fa<-table(cut(peso, breaks=k)) > fa (2.62,2.96]

(2.96,3.3]

11

14

(3.3,3.64] (3.64,3.97] (3.97,4.31] (4.31,4.65] 13

3

2

2

5


ORGANIZACIĂ“N DE DATOS

R con R

> Fa<-cumsum(fa) > Fa (2.62,2.96]

(2.96,3.3]

11

25

(3.3,3.64] (3.64,3.97] (3.97,4.31] (4.31,4.65] 38

41

43

45

> fr<-fa/length(peso) > round(fr, digits=3) (2.62,2.96]

(2.96,3.3]

0.244

0.311

(3.3,3.64] (3.64,3.97] (3.97,4.31] (4.31,4.65] 0.289

0.067

0.044

0.044

> Fr<-cumsum(fr) > round(Fr, digits=3) (2.62,2.96]

(2.96,3.3]

0.244

0.556

(3.3,3.64] (3.64,3.97] (3.97,4.31] (4.31,4.65] 0.844

0.911

0.956

1.000

> fp<-fr*100 > round(fp, digits=2) (2.62,2.96]

(2.96,3.3]

24.44

31.11

(3.3,3.64] (3.64,3.97] (3.97,4.31] (4.31,4.65] 28.89

6.67

4.44

4.44

> Fp<-cumsum(fp) > round(Fp, digits=2) (2.62,2.96]

(2.96,3.3]

24.44

55.56

(3.3,3.64] (3.64,3.97] (3.97,4.31] (4.31,4.65] 84.44

91.11

95.56

100.00

GRĂ FICA: > min(peso) [1] 2.62 > max(peso) [1] 4.65 > R<-max(peso)-min(peso) > tic<-R/k > tic<-signif(tic, digits = 2) > tic [1] 0.34 > ptos<-min(peso)+(0:k)*(max(peso)-min(peso))/k > ptos [1] 2.620000 2.958333 3.296667 3.635000 3.973333 4.311667 4.650000

> hist(peso, breaks=ptos, main="Peso del Bebe", col=rainbow(k))

6


ORGANIZACIĂ“N DE DATOS

R con R

> L<-hist(peso, breaks=ptos, main="Peso del Bebe", col=rainbow(k)) > lines(c(min(L$breaks),L$mids,max(L$breaks)),c(0,L$counts,0),tipe="l",col="black") Mensajes de aviso perdidos In plot.xy(xy.coords(x, y), type = type, ...) : "tipe" is not a graphical parameter

> plot(fr,type="o", main="Poligono de Frecuencias", ylab="Frecuencia Relativa", col=2)

> mark.class<-c(1:k) for(i in 1:k){ mark.class[i]<-round((ptos[i]+ptos[i+1])/2,2) }

> plot(mark.class,as.numeric(fa), type="o", main="Poligono de Frecuencias", ylab="Frecuencia Absoluta", col=2)

7


ORGANIZACIĂ“N DE DATOS

R con R

> plot(mark.class,as.numeric(fr), type="o", main="Poligono de Frecuencias", ylab="Frecuencia Relativa", col=2)

> plot(Fr, type="o", main="Ojiva", ylab="Frecuencia Relativa", col=4)

> LSi<-rep(0,k) > for(i in 1:k){ + LSi[i]<-round(ptos[i+1],2) + }

> plot(LSi, Fr, type="o", main="Ojiva", ylab="Frecuencia Relativa", col=4)

8


ORGANIZACIÓN DE DATOS

V.

R con R

FUNCIONES CREADAS:

##### FUNCION PARA TABLA DE FRECUENCIAS Y GRÁFICAS (Cualitativa) ##### table.freq <- function(x){ freq.abs <- table(x) freq.rel <- round(freq.abs/length(x), digits=3) freq.porc <- round(freq.rel*100, digits=1) cat("\n", "Tabla de Frecuencias:", "\n") table <- cbind(freq.abs, freq.rel, freq.porc) cat("\n", "Categoría") colnames(table)=c("Frec.Abs.", "Frec.Rel.", "Frec.Porc.") print(table) etiq <- paste(levels(x), freq.porc, "%", sep=" ") n <- as.numeric(length(table(x))) par(mfrow=c(2,2)) dotchart(as.numeric(freq.abs), labels=paste(freq.abs, levels(x)), main=substitute(x), col=rainbow(n)) pie(freq.abs, main=substitute(x) , labels=paste(freq.porc, sep="","% ", levels(x)),

col=rainbow(n))

barplot(freq.abs, main=substitute(x), legend.text=freq.abs, col=rainbow(n), ylab="fa") } ##### > table.freq(estado) Tabla de Frecuencias: Categoría

Frec.Abs. Frec.Rel. Frec.Porc.

Casada

26

0.578

57.8

Conviv

17

0.378

37.8

Soltera

2

0.044

4.4

9


ORGANIZACIÓN DE DATOS

R con R

##### FUNCION PARA TABLA DE FRECUENCIAS Y GRÁFICAS (Cuantitativa-Discreta) ##### table.freq <- function(x){ freq.abs <- table(x) freq.rel <- round(freq.abs/length(x), digits=3) freq.porc <- round(freq.rel*100, digits=1) cat("\n","Tabla de Frecuencias:", "\n") table <- cbind(freq.abs, freq.rel, freq.porc) cat("\n","Valor") colnames(table)=c("Frec.Abs.", "Frec.Rel.", "Frec.Porc.") print(table) n <- as.numeric(length(table(x))) plot(freq.abs, main=paste("N° ",substitute(x)), ylab="Frecuencia Absoluta", col=rainbow(n), type="h")

} ##### > table.freq(partos) Tabla de Frecuencias:

Valor

Frec.Abs. Frec.Rel. Frec.Porc.

1

12

0.267

26.7

2

16

0.356

35.6

3

11

0.244

24.4

4

3

0.067

6.7

5

3

0.067

6.7

10


ORGANIZACIÓN DE DATOS

R con R

##### FUNCION PARA TABLA DE FRECUENCIAS Y GRÁFICAS (Cuantitativo-Continua) ##### table.freq <- function(x, d){ k <- 1+3.3*log(length(x), 10) k <- round(k) ptos <- min(x)+(0:k)*(max(x)-min(x))/k mark.class <- rep(0, k) for(i in 1:k){ mark.class[i] <- round((ptos[i]+ptos[i+1])/2, 2) } freq.abs <- table(cut(x, breaks=k)) freq.acum.abs <- cumsum(freq.abs) freq.rel <- round(freq.abs/length(x), digits=3) freq.acum.rel <- cumsum(freq.rel) freq.porc <- round(freq.rel*100, digits=d) freq.acum.porc <- cumsum(freq.porc) cat("\n","Tabla de Frecuencias:","\n") table <- cbind(mark.class,freq.abs,freq.acum.abs,freq.rel,freq.acum.rel,freq.porc,freq.acum.porc) colnames(table)=c("Marc.Clas", "Frec.Abs.", "fa_Acum.", "Frec.Rel.", "fr_Acum.", "Frec.Porc.", "p_Acum.")

print(k=k, table) par(mfrow=c(2, 2)) hist(x, breaks=ptos, main=substitute(x), col=rainbow(k)) L <- hist(x, breaks=ptos, main=substitute(x), col=rainbow(k)) L lines(c(min(L$breaks),L$mids,max(L$breaks)),c(0,L$counts,0),tipe="l",col="black") plot(freq.porc,type="o", main="Poligono de Frecuencias", ylab="Frecuencia Porcentual", col=2)

LSi <- rep(0, k) for(i in 1:k){ LSi[i] <- round(ptos[i+1], 2) } plot(LSi, freq.acum.rel, type="o", main="Ojiva", ylab="Frecuencia Relativa", col=4) } #####

11


ORGANIZACIĂ“N DE DATOS

R con R

> table.freq(peso, 2)

Tabla de Frecuencias: Marc.Clas Frec.Abs. fa_Acum. Frec.Rel. fr_Acum. Frec.Porc. p_Acum. (2.62,2.96]

2.79

11

11

0.244

0.244

24.4

24.4

(2.96,3.3]

3.13

14

25

0.311

0.555

31.1

55.5

(3.3,3.64]

3.47

13

38

0.289

0.844

28.9

84.4

(3.64,3.97]

3.80

3

41

0.067

0.911

6.7

91.1

(3.97,4.31]

4.14

2

43

0.044

0.955

4.4

95.5

(4.31,4.65]

4.48

2

45

0.044

0.999

4.4

99.9

12


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.