Pregunta 1

Considerando 131 pacientes con depresión y 132 sin depresión, calcular riesgo y momio y comentar resultados.

# Ingreso de datos y calculos 
depresivos <- c(131,132) # Ingreso de datos
nombres <- c("Pacientes Depresivos","Pacientes No Depresivos") # etiquetas
names(depresivos) <- nombres # se utiliza para establecer nombres a las columnas
n <- sum(depresivos) # tamaño muestra
frecuencias <- depresivos/n # frecuencia de los datos
# Creacion de la tabla de las Estadisticas Descriptivas
tab <- rbind(t(depresivos),t(frecuencias)) # tabla de salida creada
rownames(tab) <- c("números","frecuencia") # nombres de kas filas
round(tab,3) # salida rondeada de la tabla creada
##            Pacientes Depresivos Pacientes No Depresivos
## números                 131.000                 132.000
## frecuencia                0.498                   0.502
# Calculo del Riesgo
noquote(paste0("riesgo = ", round(depresivos[1]/n,3))) 
## [1] riesgo = 0.498
# Calculo de Momio
noquote(paste0("momio = ", round(depresivos[1]/depresivos[2],3))) 
## [1] momio = 0.992
# Grafico Circular
nompie <- paste(nombres,round(frecuencias,3),sep=" ") # etiquetas pie
pie(frecuencias,
    labels = paste0(depresivos," paciente =",round(100*frecuencias/sum(frecuencias),2),"%"),
    col=c("#698B22","#76EEC6"), #definicion de color en hexadecimal
    border = "blue",  # Color del borde de las porciones
    density = 75,
    init.angle=0, # Ángulo inicial
    angle = 45, # Ángulo de inclinación de las etiquetas
    main="Riesgo por Depresion")

legend("topleft", 
       legend = nombres, 
       fill = c("#698B22","#76EEC6"))

Segun los resultado, el riesgo que un paciente tenga depresion es del 49.8 %. El momio indica que las personas que desarrollan depresion tienen aproximadamente 0.992 veces probabilidad de desarrollar depresion en comparación con los pacientes que no desarrollan depresion.


Pregunta 2

Considerando 907 creyentes en una vida post-muerte y 220 que no creen, calcular riesgo y momio y comentar resultados.

# Ingreso de datos y calculos 
creyente <- c(907,220) # Ingreso de datos
nombres <- c("Creyentes de la vida Post muerte","No Creyentes de la vida Post muerte") # etiquetas
names(creyente) <- nombres # se utiliza para establecer nombres a las columnas
n <- sum(creyente) # tamaño muestra
frecuencias <- creyente/n # frecuencia de los datos
# Creacion de la tabla de las Estadisticas Descriptivas
tab <- rbind(t(creyente),t(frecuencias)) # tabla de salida creada
rownames(tab) <- c("números","frecuencia") # nombres de kas filas
round(tab,3) # salida rondeada de la tabla creada
##            Creyentes de la vida Post muerte No Creyentes de la vida Post muerte
## números                             907.000                             220.000
## frecuencia                            0.805                               0.195
# Calculo del Riesgo
noquote(paste0("riesgo = ", round(creyente[1]/n,3))) 
## [1] riesgo = 0.805
# Calculo de Momio
noquote(paste0("momio = ", round(creyente[1]/creyente[2],3))) 
## [1] momio = 4.123
# Grafico Circular
nompie <- paste(nombres,round(frecuencias,3),sep=" ") # etiquetas pie
pie(frecuencias,
    labels = paste0(creyente," personas =",round(100*frecuencias/sum(frecuencias),2),"%"),
    col=c("#9ACD32","#7D26CD"), #definicion de color en hexadecimal
    border = "red",  # Color del borde de las porciones
    density = 75,
    init.angle=0, # Ángulo inicial
    angle = 45, # Ángulo de inclinación de las etiquetas
    main="Riesgo por Depresion")

legend("topright", 
       legend = nombres, 
       fill = c("#9ACD32","#7D26CD"))

Segun los resultado, el riesgo que una persona crea en la vida post muerte es del 80.5 %. El momio indica que las personas que creen la vida post muerte tiene aproximadamente 4.123 veces mas probabilidad con respecto de las personas que no creen en la vida post muerte.


Pregunta 3

Completar la declaración de factores para los caracteres de Pielescuero y calcular distribución, frecuencias relativas, modas y entropías.

Ahora leemos el archivo con extension .xlsx, para lo cual usamos el comando read_excel, con la ruta del archivo a leer. Luego de la lectura se mostrara los primero 10 valores de la tabla con el comando head. Para esto previamente esta cargado la libreria readxl

# Instala de readxl
install.packages("readxl",repos = "https://cloud.r-project.org/")
# Carga la librería readxl 
library(readxl)
# Especificar la ruta del archivo Excel
ruta_archivo <- "G:/R IMCA/TAREA 3/DESCARGAS_DATA/Pielescuero.xlsx"

# Leer el archivo Excel
data <- read_excel(ruta_archivo)

Se muestra la estructura de la data y se muestra los primeros 15 valores de la tabla

# Verificar la estructura de los datos
str(data)
## tibble [173 × 5] (S3: tbl_df/tbl/data.frame)
##  $ Exportacion : num [1:173] 1 2 1 1 1 1 1 1 1 2 ...
##  $ Tamano      : num [1:173] 1 1 1 1 1 1 1 1 1 1 ...
##  $ Financiacion: num [1:173] 2 2 2 2 2 2 2 2 2 2 ...
##  $ Zona        : num [1:173] 2 3 2 2 1 3 3 3 1 1 ...
##  $ Actividad   : num [1:173] 4 3 3 3 3 3 3 3 4 3 ...
# Visualizar los primeros 15 registros de los datos
head(data,n=15)

Se instala el paquete DescTools y luego se cargara la liberia, esto para el calculo de la moda.

# Instalar el paquete para el calculo de moda
install.packages("DescTools",repos = "https://cloud.r-project.org/")
# Cargar el paquete para el calculo de la moda
library(DescTools)

Se procedera ha hacer los calculos por variable, para lo cual se calculara las frecuencias, frecuencias relativas, entropia y moda. Se muestra a continuacion el codigo paara la generacion automatica de los calculos.

#Calculo de las frecuencias Absolutas
nombres<-colnames(data)
for(i in 1:ncol(data)){
  print(quote=FALSE,"--------------------------------------------------------------------- ")
  
  # Calculo de la frecuencia de cada variable
  frecuencia<-eval(parse(text = paste0("table(data$",nombres[i],")")))
  
  # Calculo de la frecuencia relativa de cada variable
  frecuencia_Relativa<-frecuencia/sum(frecuencia)
  
  # Calculo de la Entropia
  h = -sum(frecuencia_Relativa*log(frecuencia_Relativa,2)) 
  
  # Calculo de la moda
  moda<-eval(parse(text = paste0("Mode(data$",nombres[i],")")))
  
  # Impresion de las frecuencias
  print(cbind(frecuencia,frecuencia_Relativa))
 
  # Impresion de la Entropia
  print(quote=FALSE, paste0(prefix="Entropia total de la variable ",nombres[i]," es: "))
  print(h)
 
  # Impresion de la Moda
  print(paste0("La moda de ",nombres[i]," es: "),quote=FALSE)
  print(moda)
   
  # Gráfico de barras
  barplot(frecuencia_Relativa, 
      main = "Frequencia relativa (%)",
      col = c(1:ncol(data)))
  
  # Grafico Circular
  nompie <- paste(nombres,round(frecuencia,3),sep=" ") # etiquetas pie
  pie(frecuencia,
      labels = paste0(frecuencia," datos =",round(100*frecuencia/sum(frecuencia),2),"%"),
      col=c(1:ncol(data)), #definicion de color en hexadecimal
      border = "blue",  # Color del borde de las porciones
      density = 80,
      init.angle=0, # Ángulo inicial
      angle = 45, # Ángulo de inclinación de las etiquetas
      main=paste0("Diagrama Circular de la Variable ",nombres[i]))
}
## [1] --------------------------------------------------------------------- 
##   frecuencia frecuencia_Relativa
## 1        129           0.7456647
## 2         44           0.2543353
## [1] Entropia total de la variable Exportacion es: 
## [1] 0.8180773
## [1] La moda de Exportacion es: 
## [1] 1
## attr(,"freq")
## [1] 129

## [1] --------------------------------------------------------------------- 
##   frecuencia frecuencia_Relativa
## 1         53           0.3063584
## 2         93           0.5375723
## 3         27           0.1560694
## [1] Entropia total de la variable Tamano es: 
## [1] 1.422469
## [1] La moda de Tamano es: 
## [1] 2
## attr(,"freq")
## [1] 93

## [1] --------------------------------------------------------------------- 
##   frecuencia frecuencia_Relativa
## 1         53           0.3063584
## 2        120           0.6936416
## [1] Entropia total de la variable Financiacion es: 
## [1] 0.888925
## [1] La moda de Financiacion es: 
## [1] 2
## attr(,"freq")
## [1] 120

## [1] --------------------------------------------------------------------- 
##   frecuencia frecuencia_Relativa
## 1         43           0.2485549
## 2         42           0.2427746
## 3         88           0.5086705
## [1] Entropia total de la variable Zona es: 
## [1] 1.491063
## [1] La moda de Zona es: 
## [1] 3
## attr(,"freq")
## [1] 88

## [1] --------------------------------------------------------------------- 
##   frecuencia frecuencia_Relativa
## 1         46          0.26589595
## 2         62          0.35838150
## 3         54          0.31213873
## 4         11          0.06358382
## [1] Entropia total de la variable Actividad es: 
## [1] 1.815775
## [1] La moda de Actividad es: 
## [1] 2
## attr(,"freq")
## [1] 62

Pregunta 4

Bajar el archivo Snee.csv desde internet utilizando la dirección http://www.camiz.it/sergio/Universita/Dati/ y cargar-lo en R. Trata-se de Color de ojos y Color de pelo de 592 Alumnos de la Universidad de Delaware en 1974.

Se bajara el archivo Snee.csv, luego se cargara el archivo y se muestrara la estructura de la data, luego se muestra los primeros 15 valores de la tabla

# Leer un archivo CSV y almacenar los datos en un objeto llamado 'datos'
df <- read.csv( "G:/R IMCA/TAREA 3/DESCARGAS_DATA/Snee.csv")

# Verificar la estructura de los datos
str(df)
## 'data.frame':    592 obs. of  2 variables:
##  $ Colore_occhi  : int  1 1 1 1 1 1 1 1 1 1 ...
##  $ Colore_capelli: int  1 1 1 1 1 1 1 1 1 1 ...
# Visualizar los primeros 15 registros de los datos
head(df,n=15)


Pregunta 5

Transformar todas las dos columnas en factores, según las reglas siguientes:


Comenzamos a transformar el dataframe de la columna Colore_occhi con las reglas establecidas, luego visualizamos como va quedando el dataframe(df).

df$Colore_occhi[df$Colore_occhi == 1] <- "Pardo Oscuro"
df$Colore_occhi[df$Colore_occhi == 2] <- "Pardo Claro"
df$Colore_occhi[df$Colore_occhi == 3] <- "Verde"
df$Colore_occhi[df$Colore_occhi == 4] <- "Azul"
df

A continuaacion se transformar el dataframe de la columna Colore_capelli con las reglas establecidas, luego visualizamos como va quedando el dataframe(df).

df$Colore_capelli[df$Colore_capelli == 1] <- "Negro"
df$Colore_capelli[df$Colore_capelli == 2] <- "Pardo"
df$Colore_capelli[df$Colore_capelli == 3] <- "Rojo"
df$Colore_capelli[df$Colore_capelli == 4] <- "Rubio"
df

Pregunta 6

Guardar en un nuevo archivo.

Se tiene el dataframe llamado df, el queremos guardar en un nuevo archivo CSV, llamado nuevo_Snee.csv. Para ellos usaremos el comando write.csv2().

# Utilizando write.csv2()
write.csv(df, file = "G:/R IMCA/TAREA 3/DESCARGAS_DATA/nuevo_Snee.csv", row.names = FALSE)

Pregunta 7

Calcular las distribuciones, la moda y la entropía de los dos caracteres y hacer gráficos circulares.

# Leer un archivo CSV y almacenar los datos en un objeto llamado 'ndf'
ndf <- read.csv( "G:/R IMCA/TAREA 3/DESCARGAS_DATA/nuevo_Snee.csv")

# Verificar la estructura de los datos
str(ndf)
## 'data.frame':    592 obs. of  2 variables:
##  $ Colore_occhi  : chr  "Pardo Oscuro" "Pardo Oscuro" "Pardo Oscuro" "Pardo Oscuro" ...
##  $ Colore_capelli: chr  "Negro" "Negro" "Negro" "Negro" ...
# Visualizar los primeros 15 registros de los datos
head(ndf,n=15)
#Calculo de las frecuencias Absolutas
nombres<-colnames(ndf)
for(i in 1:ncol(ndf)){
  print(quote=FALSE,"--------------------------------------------------------------------- ")
  
  # Calculo de la frecuencia de cada variable
  frecuencia<-eval(parse(text = paste0("table(ndf$",nombres[i],")")))
  
  # Calculo de la frecuencia relativa de cada variable
  frecuencia_Relativa<-frecuencia/sum(frecuencia)
  
  # Calculo de la Entropia
  h = -sum(frecuencia_Relativa*log(frecuencia_Relativa,2)) 
  
  # Calculo de la moda
  moda<-eval(parse(text = paste0("Mode(ndf$",nombres[i],")")))
  
  # Impresion de las frecuencias
  print(cbind(frecuencia,frecuencia_Relativa))
 
  # Impresion de la Entropia
  print(quote=FALSE, paste0(prefix="Entropia total de la variable ",nombres[i]," es: "))
  print(h)
 
  # Impresion de la Moda
  print(paste0("La moda de ",nombres[i]," es: "),quote=FALSE)
  print(moda)
   
  # Gráfico de barras
  barplot(frecuencia_Relativa, 
      main = "Frequencia relativa (%)",
      col = c(1:length(frecuencia)))
  
  # Grafico Circular
  nompie <- paste(nombres,round(frecuencia,3),sep=" ") # etiquetas pie
  pie(frecuencia,
      labels = paste0(frecuencia," datos =",round(100*frecuencia/sum(frecuencia),2),"%"),
      col=c(1:length(frecuencia)), #definicion de color en hexadecimal
      border = "blue",  # Color del borde de las porciones
      density = 80,
      init.angle=0, # Ángulo inicial
      angle = 45, # Ángulo de inclinación de las etiquetas
      main=paste0("Diagrama Circular de la Variable ",nombres[i]))
}
## [1] --------------------------------------------------------------------- 
##              frecuencia frecuencia_Relativa
## Azul                215           0.3631757
## Pardo Claro          93           0.1570946
## Pardo Oscuro        220           0.3716216
## Verde                64           0.1081081
## [1] Entropia total de la variable Colore_occhi es: 
## [1] 1.827862
## [1] La moda de Colore_occhi es: 
## [1] "Pardo Oscuro"
## attr(,"freq")
## [1] 220

## [1] --------------------------------------------------------------------- 
##       frecuencia frecuencia_Relativa
## Negro        108           0.1824324
## Pardo        286           0.4831081
## Rojo          71           0.1199324
## Rubio        127           0.2145270
## [1] Entropia total de la variable Colore_capelli es: 
## [1] 1.798227
## [1] La moda de Colore_capelli es: 
## [1] "Pardo"
## attr(,"freq")
## [1] 286

Pregunta 8

Mejorar los gráficos, con títulos, porcentajes, colores, etc.

Mejoramos los gráficos, con títulos, porcentajes, colores que acontinuacion mostramos el codigo.

# Leer un archivo CSV y almacenar los datos en un objeto llamado 'ndf'
ndf <- read.csv( "G:/R IMCA/TAREA 3/DESCARGAS_DATA/nuevo_Snee.csv")

#Calculo de las frecuencias Absolutas
nombres<-colnames(ndf)
for(i in 1:ncol(ndf)){
  print(quote=FALSE,"--------------------------------------------------------------------- ")
  
  # Calculo de la frecuencia de cada variable
  frecuencia<-eval(parse(text = paste0("table(ndf$",nombres[i],")")))
  
  # Calculo de la frecuencia relativa de cada variable
  frecuencia_Relativa<-frecuencia/sum(frecuencia)
  
  # Calculo de la Entropia
  h = -sum(frecuencia_Relativa*log(frecuencia_Relativa,2)) 
  
  # Calculo de la moda
  moda<-eval(parse(text = paste0("Mode(ndf$",nombres[i],")")))
  
  # Gráfico de barras
  barplot(frecuencia_Relativa, 
      main = "Diagrama de barras - Frequencia relativa (%)",
      col = c(1:length(frecuencia)))
  
  # Grafico Circular
  nompie <- paste(nombres,round(frecuencia,3),sep=" ") # etiquetas pie
  pie(frecuencia,
      labels = paste0(frecuencia," datos =",round(100*frecuencia/sum(frecuencia),2),"%"),
      col=c(1:length(frecuencia)), #definicion de color en hexadecimal
      border = "blue",  # Color del borde de las porciones
      density = 80,
      init.angle=17, # Ángulo inicial
      angle = 45, # Ángulo de inclinación de las etiquetas
      lty = 3,
      main=paste0("Diagrama Circular de la Variable ",nombres[i]))
  
  legend("bottomleft", 
       title = "Leyenda", 
       legend = names(frecuencia), 
       fill = c(1:length(frecuencia)))
}
## [1] ---------------------------------------------------------------------

## [1] ---------------------------------------------------------------------