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
## [1] riesgo = 0.498
## [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.
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
## [1] riesgo = 0.805
## [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.
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
# 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
## 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 ...
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/")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
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 ...
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"
dfA 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"
dfGuardar 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().
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" ...
#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
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] ---------------------------------------------------------------------