##Haga Click Aqui para ver Certificado Machine Learning MIT https://www.credential.net/4dd365ea-ea5a-46a2-a72e-539e70545c6e
##Haga Click Aqui para ver Certificado Columbia Python for Managers https://certificates.emeritus.org/0a2e1de7-add2-4710-ad49-417d1dadfb61#gs.4a92hv ##Contacto: rchang@unah.edu.hn
Algunos Dashboards elaborados son: Para Bolsa de Valores https://rchang.shinyapps.io/rchang-stock-exchange/
Para el Estado del Clima https://rchang.shinyapps.io/rchang-app_clima_ho/
Para Machine Learning https://rchang.shinyapps.io/rchang-app/
Para Empresariales e Industriales https://rchang.shinyapps.io/rchang-app_final_emp/
Para Dashboards con log in https://rchang.shinyapps.io/clase_3-shiny-2/_w_ae4e775f/_w_f249a9a1/?page=sign_in
y para Sistemas de Información Geográfica
#La ciencia de datos de acuerdo con Oracle
#La ciencia de datos combina múltiples campos que incluyen estadísticas, métodos científicos y análisis de datos para extraer el valor de los datos.
#Los practicantes de la ciencia de datos se llaman científicos de datos y combinan una variedad de conocimientos para analizar los datos recopilados de la web, de teléfonos inteligentes, de clientes, sensores y otras fuentes.
#Bits $ Bricks plantean la pregunta ¿Qué significa hacer ciencia de datos? Ya dijimos que la ciencia de datos se trata de emplear técnicas de programación para analizar datos. Pero no es sólo eso; la ciencia de datos aplicada requiere el desarrollo de habilidades en cuatro áreas:
#Programación. Según la definición que hemos aceptado, todo científico de datos utiliza la programación para explicar a las computadoras lo que necesita de ellas. Al hacerlo, emplea el “pensamiento computacional”: la habilidad de reducir una tarea compleja a una serie de pasos que pueden resolverse con código interpretado por una computadora. Aclaremos por si hiciera falta que no todos los problemas son solubles por medios computacionales, pero muchos lo son, al menos en parte. El científico de datos pone en práctica algunas técnicas de programación (o muchas, según el grado de especialización) para resolver problemas que sería impráctico abordar de otro modo.
#Estadística. ¡Inescapable! También poderosa, a veces anti-intuitiva, cuando tenemos suerte reveladora. La estadística es muchas cosas, pero -a pesar de su mala fama- aburrida jamás. Sólo es cuestión de amigarse con ella. Vamos a necesitarla para extraer conocimiento de los datos. Es sorprendente lo mucho que puede lograrse con sólo unos rudimentos (media, mediana, desvío estándar y cuartiles) y de allí en más sólo es cuestión de profundizar paso a paso.
#Comunicación. Un científico de datos combina habilidades “duras” con otras que requieren empatizar con los demás: las que se relacionan con la comunicación y la colaboración interdisciplinaria. Encontrar la forma de explicar procesos complejos, de llevar las revelaciones de un modelo estadístico a términos que tengan sentido para un público amplio, crear visualizaciones que permitan a terceros “leer” los datos y sacar conclusiones por su cuenta. Parte de hacer ciencia de datos es saber cómo discutir los datos usados y los resultados obtenidos con un interlocutores muy diversos: audiencia general, funcionarios públicos, colegas, especialistas de otras disciplinas, etcétera.
#Conocimiento de dominio. El conocimiento de dominio es la experiencia acumulada en un campo particular de actividad humana: agricultura, relaciones públicas, física cuántica, crianza de niños. Complementa de forma imprescindible a las habilidades analíticas. El conocimiento de dominio no sólo ayuda a discernir si las respuestas obtenidas mediante un sofisticado análisis estadístico tienen sentido. También es necesario para saber cuáles son las preguntas que deberíamos estar haciendo.
#Dentro del paquete Lock5Data se encuentra también el dataframe NutritionStudy #que contiene datos de un estudio de nutriciónn realizado en 315 individuos.
#Se desea determinar si existen diferencias significativas en el nivel medio de colesterol #entre fumadores y no fumadores.
tt7<-t.test(Cholesterol ~ Smoke,data=nutrition)
tt7
##
## Welch Two Sample t-test
##
## data: Cholesterol by Smoke
## t = -1.4761, df = 52.949, p-value = 0.1458
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -82.14912 12.49724
## sample estimates:
## mean in group No mean in group Yes
## 237.7066 272.5326
##El siguiente es un ejemplo de un Histograma común y corriente que se puede generar en cualquier software como Ms Excel, SPSS, Stata, pero los siguientes Histogramas presentan una mejor visualización para la ciencia de datos.
hist(nutrition$Cholesterol)
##El siguiente es un ejemplo de un gráfico QQ normal cómun y corriente para analizar la normalidad de las variables y los outlyers.
qqnorm(nutrition$Cholesterol)
qqline(nutrition$Cholesterol,col= 2, lty=2)
#Comprueba que la variable Cholesterol no es normal en ninguno de los dos grupos.
#Construye la variable lChol=log(Cholesterol) y comprueba #que ahora sà que se cumple la hipótesis de normalidad. Asimismo, agregue a esta nueva variable al dataframe con la función cbind.
shapiro.test(nutrition$Cholesterol[nutrition$ Smoke=="No"])
##
## Shapiro-Wilk normality test
##
## data: nutrition$Cholesterol[nutrition$Smoke == "No"]
## W = 0.89311, p-value = 6.255e-13
shapiro.test(nutrition$Cholesterol[nutrition$ Smoke=="Yes"])
##
## Shapiro-Wilk normality test
##
## data: nutrition$Cholesterol[nutrition$Smoke == "Yes"]
## W = 0.91114, p-value = 0.002774
lChol=log(nutrition$Cholesterol)
nutrition<-cbind(nutrition,lChol)
Elabore un histograma que viene por defecto en R.
hist(lChol)
##El siguiente histograma pertenece a la ciencia de datos donde se comparan dos frecuencias de un grupo categórico que por lo general en Ms Excel o SPSS no se puede realizar. La ciencia de datos provee herramientas poderosas de exploración de datos y mejorar la formulación de hipotesis.
## Realice un histograma con la variable lChol pero con las frecuencias de los fumadores y no fumadores
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.0.5
ggplot(data = nutrition,
mapping = aes(x = Cholesterol,
fill = Smoke)) +
geom_histogram(bins = 9,
position = 'identity',
alpha = 0.8) +
labs(title = 'Colesterol por las personas fumadoras y no fumadoras',
fill = 'Colesterol',
x = "Colesterol",
y = 'Frecuencia de Casos',
subtitle = 'Histograma de Frecuencia',
caption = 'BAse de datos de R "nutrition"')
#Elabore un histograma con las variables Edad (Age) y Gender(Género).
library(ggplot2)
ggplot(data = nutrition,
mapping = aes(x = Age,
fill = Gender)) +
geom_histogram(bins = 9,
position = 'identity',
alpha = 0.8) +
labs(title = 'Personas en el estudio por años y género',
fill = 'Colesterol',
x = "Años",
y = 'Frecuencia de Casos',
subtitle = 'Histograma de Frecuencia',
caption = 'BAse de datos de R "nutrition"')
##Elabore un histograma con las variables Colesterol y VitaminUse (Uso de Vitaminas).
library(ggplot2)
ggplot(data = nutrition,
mapping = aes(x = Cholesterol,
fill = VitaminUse)) +
geom_histogram(bins = 9,
position = 'identity',
alpha = 0.8) +
labs(title = 'Personas en el estudio por nivel de colesterol y uso de vitaminas',
fill = 'Colesterol',
x = "Colesterol",
y = 'Frecuencia de Casos',
subtitle = 'Histograma de Frecuencia',
caption = 'BAse de datos de R "nutrition"')
#Elabore un gráfico de dispersión con ggplot2 con facetas y líneas de dispersión
ggplot(nutrition, aes(x = Cholesterol, y = Fat)) +
geom_point() + geom_smooth() + facet_grid(Smoke ~ Gender)
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
##geom_point() es un lienzo o capa, una característica que tiene ggplot2 es que las capas pueden superponerse.
##Existen muchos tipos de capas. Los más usuales son geom_point, geom_line, geom_histogram, geom_bar y geom_boxplot.
##geom_smoth añade al gráfico una curva suavizada (con sus intervalos de confianza en gris).
Cálcule el total de casos de las personas fumadores y no fumadoras en la base de datos.
Smoke_1<-table(nutrition$Smoke)
Smoke_1
##
## No Yes
## 272 43
##Elabore una tabla cruzada entre los fumadores y no fumadores (“variable Smoke”) y la variable Colesterol el total de casos de las personas fumadores y no fumadoras en la base de datos.
Smoke_2<-table(nutrition$Smoke, nutrition$Cholesterol)
Smoke_2
##
## 37.7 46.3 55.4 59.2 59.7 66.5 69.4 71.8 72.7 75.8 77.5 78.3 79.8 81.1 84
## No 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1
## Yes 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
##
## 87.3 87.5 87.9 89 89.9 91.7 97.2 97.4 97.5 98.3 98.8 99.2 99.3 99.6 100.6
## No 1 2 1 1 1 1 1 0 0 1 1 1 1 1 1
## Yes 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0
##
## 102 102.8 104.8 105.7 108.6 110.8 111.5 112.8 113.9 114 116 117 118.5
## No 1 1 1 0 1 1 1 1 1 1 1 1 0
## Yes 0 0 0 1 0 0 0 0 0 0 0 0 1
##
## 118.8 119.7 120.7 121.2 122.5 124.7 127.6 127.9 130.7 131.9 133.6 133.9
## No 1 1 1 1 1 1 0 1 1 1 1 1
## Yes 0 0 0 0 0 0 1 0 0 0 0 0
##
## 135.6 135.8 137.4 138.8 139.2 139.5 141.1 141.2 142 143.5 144.1 145.3
## No 1 1 1 1 1 1 2 1 1 1 1 0
## Yes 0 0 0 0 0 0 0 0 0 0 0 1
##
## 145.7 147.3 148.4 149.9 150.5 151 152.8 154.6 154.9 155.1 155.3 155.8
## No 0 2 1 1 1 1 1 1 1 1 1 1
## Yes 1 0 0 0 0 0 0 0 0 0 0 0
##
## 156.1 157.5 158.3 160.3 160.5 160.9 162.6 163.7 164.5 164.6 165.5 168
## No 0 1 1 1 1 1 1 0 1 1 1 1
## Yes 1 0 0 0 0 0 0 1 0 0 0 0
##
## 168.5 169.9 170 170.1 170.3 170.8 171.2 171.9 173.3 173.4 173.5 174.1
## No 1 1 1 1 1 1 1 1 1 0 1 1
## Yes 0 0 0 0 0 0 0 0 0 1 0 0
##
## 174.9 175.2 175.6 176.1 176.3 177.3 178.4 178.6 179.4 180.1 180.3 180.6
## No 1 1 1 1 1 1 1 0 1 1 1 1
## Yes 0 1 0 0 0 0 0 1 0 0 0 0
##
## 180.7 182.5 182.7 182.8 183.3 183.4 184.2 185.9 186.5 188 188.9 189.5
## No 1 1 0 1 1 0 1 1 1 1 1 2
## Yes 0 0 1 0 0 1 0 0 0 0 0 0
##
## 190.3 190.5 191.7 192.1 192.8 193.4 195 195.1 195.2 195.6 195.8 196 196.1
## No 1 1 1 2 1 1 0 1 1 1 1 1 1
## Yes 0 0 0 0 0 0 1 0 0 0 0 0 0
##
## 196.9 197.2 200.2 200.5 200.9 201.3 201.6 202.2 205.3 205.9 206.1 206.3
## No 1 1 1 1 1 1 1 1 1 1 0 1
## Yes 0 0 0 0 0 0 0 0 0 0 1 0
##
## 208.7 208.8 211.6 211.7 214.1 214.8 215.4 216.2 216.3 216.7 220 223.2
## No 1 0 0 2 1 1 1 0 1 1 1 1
## Yes 0 1 1 0 0 0 0 1 0 0 0 0
##
## 224.7 225.9 226 226.5 228.3 228.5 228.8 231.2 232.3 233.6 239 239.2 239.8
## No 2 1 1 2 1 1 1 1 1 1 0 0 1
## Yes 0 0 0 0 0 0 0 0 0 0 1 1 0
##
## 239.9 240.3 242.6 244.8 247 247.2 247.9 248 248.4 249.3 249.5 252.4 253.1
## No 1 1 1 1 1 1 1 0 1 1 0 1 0
## Yes 0 0 0 0 0 0 0 1 0 0 1 0 1
##
## 253.2 254.9 255.1 255.8 256.7 256.8 257.7 257.9 260 260.7 263.5 263.8
## No 1 1 1 1 1 1 1 1 1 0 0 1
## Yes 0 0 0 0 0 0 0 0 0 1 1 0
##
## 265.8 265.9 267.5 268.2 269.2 271.2 271.8 271.9 272.7 277.1 280.1 281.1
## No 1 1 1 1 1 1 1 1 1 0 0 1
## Yes 0 0 0 0 0 0 0 0 0 1 1 0
##
## 281.9 283.3 283.7 284.3 284.8 286.7 288 296.8 299.1 300.9 305.7 306.5
## No 1 1 1 1 1 1 1 1 1 1 1 1
## Yes 0 0 0 0 0 0 0 0 0 0 0 0
##
## 308.8 308.9 310.1 314.9 324.5 325.2 326.7 328.1 329.8 331.9 332.4 332.6
## No 1 1 1 1 1 1 0 1 0 1 1 2
## Yes 0 0 0 0 0 0 1 0 1 0 0 0
##
## 334.2 336.9 340.1 341 341.7 343 344.3 347.9 349.1 349.6 353.4 359.1 361.5
## No 1 0 1 1 1 1 1 1 1 0 1 1 1
## Yes 0 1 0 0 0 0 0 0 0 1 0 0 0
##
## 362.4 362.6 363.1 364.6 365 370 374.3 378.8 379.5 380.7 381.3 381.8 383.6
## No 1 2 1 1 1 0 1 0 1 1 1 1 1
## Yes 0 0 0 0 0 1 0 1 0 0 0 0 0
##
## 389.4 396.5 399.3 408 415.8 416 417.6 420 425.5 428.1 429.5 431 432.3
## No 1 1 1 1 1 1 1 1 1 1 1 0 1
## Yes 0 0 0 0 0 0 0 0 0 0 0 1 0
##
## 432.4 436.8 440.3 440.6 444.7 447.6 452.8 456.9 461.1 466.3 469.2 469.3
## No 0 0 1 1 1 1 1 1 0 1 1 1
## Yes 1 1 0 0 0 0 0 0 1 0 0 0
##
## 487.8 500.3 511.6 512.3 516.5 518 549.1 550.5 574.2 603 689.4 718.8 747.5
## No 1 1 1 1 0 1 1 0 1 0 1 0 1
## Yes 0 0 0 0 1 0 0 1 0 1 0 1 0
##
## 814.7 900.7
## No 1 1
## Yes 0 0
Cálcule el promedio de colesterol por fumadores y no fumadores de la base de datos.
# primero convertimos Smoke a variable numérica
M<-ifelse(nutrition$Smoke == "Yes",1,0)
M
## [1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0
## [38] 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1
## [75] 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0
## [112] 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0
## [149] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0
## [186] 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1
## [223] 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## [260] 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1
## [297] 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0
prom<-tapply(nutrition$Cholesterol,M,mean)
prom
## 0 1
## 237.7066 272.5326
##Elabore un gráfico de barras comparativo entre las variable entre las variables fumadores y no fumadores y género con la función Barplot que viene por defecto en R.
barplot(table(nutrition$Smoke, nutrition$Gender, exclude = NA),col=topo.colors(2),beside = T)
#Elabore un gráfico de barras comparativo entre las variable entre las variables fumadores y no fumadores y género con la libreria ggplot2.
ggplot(nutrition, aes(Smoke, fill= Gender)) + geom_bar(aes(y = (..count..)/sum(..count..)), position = "dodge")+ ylab("Porcentaje")
#Elabore un gráfico de QQPLOT o de normalidad de la variable lchol
qqnorm(lChol)
qqline(lChol,col= 2, lty=2)
# Realice la prueba de normalidad de la variable calculada lChol
shapiro.test(lChol[nutrition$ Smoke=="No"])
##
## Shapiro-Wilk normality test
##
## data: lChol[nutrition$Smoke == "No"]
## W = 0.99489, p-value = 0.5022
shapiro.test(lChol[nutrition$ Smoke=="Yes"])
##
## Shapiro-Wilk normality test
##
## data: lChol[nutrition$Smoke == "Yes"]
## W = 0.99016, p-value = 0.9697
Prueba de Hipótesis #Realiza el test de comparación de medias con la variable lChol.
tt8<-t.test(lChol ~ Smoke,data=nutrition)
tt8
##
## Welch Two Sample t-test
##
## data: lChol by Smoke
## t = -1.6284, df = 56.505, p-value = 0.109
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -0.31303945 0.03228143
## sample estimates:
## mean in group No mean in group Yes
## 5.334745 5.475124
sdif_1<- tapply(nutrition\(lChol,nutrition\)Smoke, sd) sdif_1
power.t.test(n=315, delta= -0.140379, sd= 0.006866, sig.level=0.05,power=NULL, alternative= c("two.sided"))
##
## Two-sample t test power calculation
##
## n = 315
## delta = 0.140379
## sd = 0.006866
## sig.level = 0.05
## power = 1
## alternative = two.sided
##
## NOTE: n is number in *each* group