POSFACE
Fuente:https://manometcurrent.com/
#Primeros pasos instalación de R Base y Rstudio.
https://cran.r-project.org/bin/windows/base/
Revisar que su Windows es de 32 o 64 bits.
R-4.1.1 for Windows c Download R 4.1.1 for Windows (86 megabytes, 32/64 bit)
Para determinar si mi PC es (86 megabytes, 32/64 bit) seleccione el botón Inicio y, a continuación, seleccione configuración> sistema> acerca de . Abrir información sobre la configuración. A la derecha, en Especificaciones del dispositivo, consulta Tipo de sistema.
Dependiendo del Window de su PC, 7,8 o 10, haga click en el siguiente link:
https://www.rstudio.com/products/rstudio/download/
##Repaso de Estadística para la Investigación Científica / Ciencia de Datos
#Tipos de Variables:
#Grupo de variables cualitativas
Dentro de estás variables encontramos las dicotómicas (HOMBRE/ MUJER) (EMPLEADO/ DESEMPLEADO) (ENFERMO/ NO ENFERMO). En ninguno de los casos hay alguna importancia en el orden.
#Grupo de variables cuantitativas
Intervalos, diferentes intervalos y cada uno tiene es precedente del anterior, el cero es siempre es un punto de referencia en R o en los reales a la n. Ejemplo, temperaturas.
Continuas (Razón) e incluso algunas discretas(No deben ser etiquetas), porcentajes, razones financieras, razones entre peso y altura, número de hijos, edad, muertes por cada 100,000 habitantes
##Principales características de la Ciencia
1.Replicable 2.Reproducible 3. Da respuesta a un planteamiento del problema:
Kerliger de la California State University (1988, p.22) Libro en español https://padron.entretemas.com.ve/INICC2018-2/lecturas/u2/kerlinger-investigacion.pdf
La ciencia siempre busca medir y responder una pregunta de investigación, pero esta medición debe ser replicable y reproducible.
Los problemas de investigación se formulan desde la perspectiva teórica o del vacio en el conocimiento o desde los datos empíricos, pero NUNCA SE FORMULA UNA PREGUNTA DE INVESTIGACIÓN DESDE LA CREENCIA Y PERCEPCIÓN DEL INVESTIGACDOR, porque la investigación se vuelve SUBJETIVA y el problema no es científico, sino MENTAL.
Ejemplo de problemas. ¿Cómo contengo el COVID-19?¿Cómo disminuyo el riesgo de que mi familia se contagie?¿Cómo puede mi empresa ser más productiva o competitiva?
En todos estos casos, la data empírica esta presente y es importante para formular un problema de investigación, por ejemplo, el incremento de los casos de COVID, la disminución de la producción o ventas de la empresa.
#¿Qué es ciencia, pseudociencia y tecnología y ¿cómo se diferencian?
Ejemplos de problemas de investigación
#¿Cuál es el impacto de la educación de los empleados y los años de experiencia en la rentabilidad de la empresa?
Variables: Dependiente : Y <-rentabilidad de la empresa
Variables independientes / covariables o variables explicativas:
x1: educación de los empleados
x2: ños de experiencia
Matemáticamente se puede formular esta pregunta de la siguiente manera:
Y = Bo + x1 + x2+ E
#¿cómo se evaluan estos modelos?
El modelo general con el estadístico F y su respectivo p valor que debe ser menor que 0.05.
Y cada variable con su estadístico t y su respectivo p valor que debe ser menor que 0.05.
#Análisis de los residuos
Previamente, se debe realizar análisis de normalidad y homocedasticidad y transformación de variables.
Otra pregunta de investigación para un análisis correlacional pero no es CAUSAL y que no es para doctorado, sino para tesis de maestría podría ser.
#¿Existe relación entre el nivel de educación años de experiencia y la rentabilidad de la empresa?
Esta pregunta no es causal y no se puede determinar ningún efecto o impacto y no existen variables dependientes.
#Variables independientes o covariables:
x1: educación de los empleados
x2: años de experiencia x3: rentabilidad de la empresa
Este tipo de pregunta se contesta o responde con correlaciones de Pearson, Spearman o Tau de Kendall pero con sus respectivos p valores.
#Dos tipos de estadística
Algunos ejemplos EDA:
1.1 La media, 1.2 La desviación estandar 1.3 La varianza. 1.4 Frecuencia 1.4 Histogramas, gráficos de densidad. 1.5 Boxplots 1.5 Correlaciones 1.6 Normalidad 1.7 Homocedasticidad. 1.8 Análisis de Clústers 1.9 Análisis Factorial 1.10 Dendogramas 1.11 entre otros
Algunos ejemplos:
Experimental y NO Experimental/ Paramétrica y No Paramétrica
1.Prueba de hipótesis binomial, hipergeométrica, multinomial, t student, normal, multinormal, entre otras. Modelos ANOVA, MANOVA, Kruskall Wallis Prueba de Friedman, Prueba McNemar, Prueba de la Mediana, entre otras.
Regresión simple, multivariada, logísticas, poisson,factoriales entre otras.
Series de tiempo estacionales y no estacionales, así como series de tiempo multivariables.
Otras en función a la complejidad de la pregunta de investigación.
[
Fuente: infodiagram.
#Repaso de Estadística Descriptiva
En el siguiente link está disponible la base de datos con la que trabajaremos. Kaggle es un sitio a nivel internacional donde se comparten base de datos para análisis estadísticos, Machine Learning u otros propósitos.
https://www.kaggle.com/babyoda/women-entrepreneurship-and-labor-force?select=Dataset3.csv
library(DT)
library(data.table)
base_de_datos<- fread("Dataset3.csv", header= T)
Viendo las primeros 5 filas con el comando head ()
head(base_de_datos)
No Country Level of development European Union Membership Currency
1: 4 Austria Developed Member Euro
2: 6 Belgium Developed Member Euro
3: 17 Estonia Developed Member Euro
4: 18 Finland Developed Member Euro
5: 19 France Developed Member Euro
6: 20 Germany Developed Member Euro
Women Entrepreneurship Index Entrepreneurship Index Inflation rate
1: 54.9 64.9 0.90
2: 63.6 65.5 0.60
3: 55.4 60.2 -0.88
4: 66.4 65.7 -0.20
5: 68.8 67.3 0.00
6: 63.6 67.4 0.50
Female Labor Force Participation Rate
1: 67.1
2: 58.0
3: 68.5
4: 67.7
5: 60.6
6: 69.9
#library(writexl)
#write_xlsx(base_de_datos_1, "C:/Users/ladylee/Desktop/base_unah.xlsx")
Ahora pasaremos ¿cuáles son los tipos de variables que tenemos con el comando str()
str(base_de_datos)
Classes 'data.table' and 'data.frame': 51 obs. of 9 variables:
$ No : int 4 6 17 18 19 20 22 28 30 34 ...
$ Country : chr "Austria" "Belgium" "Estonia" "Finland" ...
$ Level of development : chr "Developed" "Developed" "Developed" "Developed" ...
$ European Union Membership : chr "Member" "Member" "Member" "Member" ...
$ Currency : chr "Euro" "Euro" "Euro" "Euro" ...
$ Women Entrepreneurship Index : num 54.9 63.6 55.4 66.4 68.8 63.6 43 64.3 51.4 56.6 ...
$ Entrepreneurship Index : num 64.9 65.5 60.2 65.7 67.3 67.4 42 65.3 41.3 54.5 ...
$ Inflation rate : num 0.9 0.6 -0.88 -0.2 0 0.5 -1.7 -0.3 0 0.2 ...
$ Female Labor Force Participation Rate: num 67.1 58 68.5 67.7 60.6 69.9 42.5 59.4 47.2 66.4 ...
- attr(*, ".internal.selfref")=<externalptr>
En esta estructura de datos o tipos de datos, en los programas estadísticos las variables nominales deben ser definidas como factores y no como “Character” o Tipo de “Texto”, al menos útil para otros tipos de análisis de Machine Learning No Supervisado.
Entonces procederemos a transforma los valores de esta variable a nominal o etiquetas y no como letras o “Character”.
Factor w/ 51 levels "Algeria","Argentina",..: 4 5 16 17 18 19 21 25 26 29 ...
Ahora vemos que hay data de 51 países
base_de_datos$`Level of development`<- as.factor(base_de_datos$`Level of development`)
str(base_de_datos$`Level of development`)
Factor w/ 2 levels "Developed","Developing": 1 1 1 1 1 1 1 1 1 1 ...
unique(base_de_datos$Country)
[1] Austria Belgium
[3] Estonia Finland
[5] France Germany
[7] Greece Ireland
[9] Italy Latvia
[11] Lithuania Netherlands
[13] Slovakia Slovenia
[15] Spain Croatia
[17] Denmark Hungary
[19] Poland Sweden
[21] Australia Iceland
[23] Japan Norway
[25] Singapore Switzerland
[27] Taiwan Algeria
[29] Argentina Bolivia
[31] Bosnia and Herzegovina Brazil
[33] China Costa Rica
[35] Ecuador Egypt
[37] El Salvador Ghana
[39] India Jamaica
[41] Macedonia Malaysia
[43] Mexico Panama
[45] Peru Russia
[47] Saudi Arabia Thailand
[49] Tunisia Turkey
[51] Uruguay
51 Levels: Algeria Argentina Australia Austria Belgium ... Uruguay
# A tibble: 2 x 2
`Level of development` Total
<fct> <int>
1 Developed 27
2 Developing 24
Ahora revisar los valores faltantes o missing values.
En este caso, no tenemos valores faltantes.
#Podriamos buscar con valores booleaos TRUE or FALSE, missing values con la siguiente función por cada columna o una columna en particular.
is.na(base_de_datos)
La limpieza de datos, que es una de los roles más difícil antes de realizar análisis estadísticos. También incluye revisar si hay valores duplicados o si los outliers tienen un efecto en el modelo que estamos evaluando.
# obtener los valores no duplicados por No
#distinct(base_de_datos_1, No)
Vemos en que este dataset también podemos utilizar el comando unique () para ver si hay no países repetidos
#unique(base_de_datos_1$No)
#duplicated(base_de_datos_1)
No hay valores duplicados, pero en el caso que quisieramos elimiarlos del dataset, podemos utilizar el comando distinct ()
nrow(datos[duplicated(datos), ]) <- nos sirve para contar los duplicados y para seleccionar
datos[duplicated(datos),
#TODOS ESTOS PASOS Y COMANDOS NO SE PUEDEN OBVIAR PORQUE LOS RESULTADOS DE LA CIENCIA SON REPLICABLES Y REPRODUCIBLES, EN OTRAS PALABRAS, SUS PARES LO PUEDEN REVISAR Y CORROBORAR.
En ese sentido, debemos quitar los NAs o valores faltantes o en su defecto rellenar los valores faltantes con los promedios de los demás valores, simplemente con ceros (0)s.
Cuando una columna o variable tiene mas de 20% de NAs, debe eliminarse esa variable en el estudio.
sum(is.na(base_de datos)) / length(x)
[1] 0
[1] 0
TODAVIA ESTAMOS EN EL ANÁLISIS EXPLORATORIO Y DESCRIPTIVO
Revisemos las estadísticas descriptivas de la base de datos con summary
summary(base_de_datos)
No Country Level of development
Min. : 1.00 Algeria : 1 Developed :27
1st Qu.:14.50 Argentina: 1 Developing:24
Median :30.00 Australia: 1
Mean :29.98 Austria : 1
3rd Qu.:45.50 Belgium : 1
Max. :60.00 Bolivia : 1
(Other) :45
European Union Membership Currency
Length:51 Length:51
Class :character Class :character
Mode :character Mode :character
Women Entrepreneurship Index Entrepreneurship Index Inflation rate
Min. :25.30 Min. :24.80 Min. :-2.250
1st Qu.:36.35 1st Qu.:31.90 1st Qu.:-0.500
Median :44.50 Median :42.70 Median : 0.600
Mean :47.84 Mean :47.24 Mean : 2.588
3rd Qu.:59.15 3rd Qu.:65.40 3rd Qu.: 3.600
Max. :74.80 Max. :77.60 Max. :26.500
Female Labor Force Participation Rate
Min. :13.00
1st Qu.:55.80
Median :61.00
Mean :58.48
3rd Qu.:67.40
Max. :82.30
base_de_datos$`European Union Membership`<- as.factor(base_de_datos$`European Union Membership`)
base_de_datos$`Level of development`<- as.factor(base_de_datos$`Level of development`)
str(base_de_datos$`European Union Membership`)
Factor w/ 2 levels "Member","Not Member": 1 1 1 1 1 1 1 1 1 1 ...
str(base_de_datos$`Level of development`)
Factor w/ 2 levels "Developed","Developing": 1 1 1 1 1 1 1 1 1 1 ...
##Manipulación de datos
Cambio de nombre de las variables con la libreria o paquete Tidyverse.
names(base_de_datos)
[1] "No"
[2] "Country"
[3] "Level of development"
[4] "European Union Membership"
[5] "Currency"
[6] "Women Entrepreneurship Index"
[7] "Entrepreneurship Index"
[8] "Inflation rate"
[9] "Female Labor Force Participation Rate"
library (tidyverse)
base_de_datos_1<- as.data.table(base_de_datos) %>%
rename("Miembro_UE" = `European Union Membership`, "País" = Country, "Moneda" = "Currency")
head(base_de_datos_1)
No País Level of development Miembro_UE Moneda
1: 4 Austria Developed Member Euro
2: 6 Belgium Developed Member Euro
3: 17 Estonia Developed Member Euro
4: 18 Finland Developed Member Euro
5: 19 France Developed Member Euro
6: 20 Germany Developed Member Euro
Women Entrepreneurship Index Entrepreneurship Index Inflation rate
1: 54.9 64.9 0.90
2: 63.6 65.5 0.60
3: 55.4 60.2 -0.88
4: 66.4 65.7 -0.20
5: 68.8 67.3 0.00
6: 63.6 67.4 0.50
Female Labor Force Participation Rate
1: 67.1
2: 58.0
3: 68.5
4: 67.7
5: 60.6
6: 69.9
Sigamos con Manipulación y exploración de data
# A tibble: 51 x 10
# Groups: Miembro_UE, "Level of development" [2]
No País Level~1 Miemb~2 Moneda Women~3 Entre~4 Infla~5 Femal~6
<int> <fct> <fct> <fct> <chr> <dbl> <dbl> <dbl> <dbl>
1 4 Austr~ Develo~ Member Euro 54.9 64.9 0.9 67.1
2 6 Belgi~ Develo~ Member Euro 63.6 65.5 0.6 58
3 17 Eston~ Develo~ Member Euro 55.4 60.2 -0.88 68.5
4 18 Finla~ Develo~ Member Euro 66.4 65.7 -0.2 67.7
5 19 France Develo~ Member Euro 68.8 67.3 0 60.6
6 20 Germa~ Develo~ Member Euro 63.6 67.4 0.5 69.9
7 22 Greece Develo~ Member Euro 43 42 -1.7 42.5
8 28 Irela~ Develo~ Member Euro 64.3 65.3 -0.3 59.4
9 30 Italy Develo~ Member Euro 51.4 41.3 0 47.2
10 34 Latvia Develo~ Member Euro 56.6 54.5 0.2 66.4
# ... with 41 more rows, 1 more variable:
# `"Level of development"` <chr>, and abbreviated variable names
# 1: `Level of development`, 2: Miembro_UE,
# 3: `Women Entrepreneurship Index`, 4: `Entrepreneurship Index`,
# 5: `Inflation rate`, 6: `Female Labor Force Participation Rate`
# i Use `print(n = ...)` to see more rows, and `colnames()` to see all variable names
¿Cómo escribo/ guardo este resumen de agrupamiento para formato excel o csv, quite el númeral # en la siguiente línea de código?
#write.csv(base_de_datos_1, "C:/Users/Desktop/Dataset3.csv")
Calculemos o construyamos una nueva variable en el dataset siempre con la libreria Tidyverse, pero ahora con el comando mutate.
Pindex_mujer= Entrepreneurship Index /Women Entrepreneurship Index
No País Level of development Miembro_UE
1: 4 Austria Developed Member
2: 6 Belgium Developed Member
3: 17 Estonia Developed Member
4: 18 Finland Developed Member
5: 19 France Developed Member
6: 20 Germany Developed Member
7: 22 Greece Developed Member
8: 28 Ireland Developed Member
9: 30 Italy Developed Member
10: 34 Latvia Developed Member
11: 35 Lithuania Developed Member
12: 39 Netherlands Developed Member
13: 50 Slovakia Developed Member
14: 51 Slovenia Developed Member
15: 53 Spain Developed Member
16: 12 Croatia Developed Member
17: 13 Denmark Developed Member
18: 24 Hungary Developed Member
19: 44 Poland Developed Member
20: 54 Sweden Developed Member
21: 3 Australia Developed Not Member
22: 25 Iceland Developed Not Member
23: 32 Japan Developed Not Member
24: 40 Norway Developed Not Member
25: 49 Singapore Developed Not Member
26: 55 Switzerland Developed Not Member
27: 56 Taiwan Developed Not Member
28: 1 Algeria Developing Not Member
29: 2 Argentina Developing Not Member
30: 7 Bolivia Developing Not Member
31: 8 Bosnia and Herzegovina Developing Not Member
32: 9 Brazil Developing Not Member
33: 10 China Developing Not Member
34: 11 Costa Rica Developing Not Member
35: 14 Ecuador Developing Not Member
36: 15 Egypt Developing Not Member
37: 16 El Salvador Developing Not Member
38: 21 Ghana Developing Not Member
39: 26 India Developing Not Member
40: 31 Jamaica Developing Not Member
41: 36 Macedonia Developing Not Member
42: 37 Malaysia Developing Not Member
43: 38 Mexico Developing Not Member
44: 42 Panama Developing Not Member
45: 43 Peru Developing Not Member
46: 47 Russia Developing Not Member
47: 48 Saudi Arabia Developing Not Member
48: 57 Thailand Developing Not Member
49: 58 Tunisia Developing Not Member
50: 59 Turkey Developing Not Member
51: 60 Uruguay Developing Not Member
No País Level of development Miembro_UE
Moneda Women Entrepreneurship Index
1: Euro 54.9
2: Euro 63.6
3: Euro 55.4
4: Euro 66.4
5: Euro 68.8
6: Euro 63.6
7: Euro 43.0
8: Euro 64.3
9: Euro 51.4
10: Euro 56.6
11: Euro 58.5
12: Euro 69.3
13: Euro 54.8
14: Euro 55.9
15: Euro 52.5
16: National Currency 49.9
17: National Currency 69.7
18: National Currency 53.7
19: National Currency 57.7
20: National Currency 66.7
21: National Currency 74.8
22: National Currency 68.0
23: National Currency 40.0
24: National Currency 66.3
25: National Currency 59.8
26: National Currency 63.7
27: National Currency 53.4
28: National Currency 27.4
29: National Currency 35.7
30: National Currency 29.7
31: National Currency 31.6
32: National Currency 31.1
33: National Currency 38.3
34: National Currency 36.1
35: National Currency 32.3
36: National Currency 27.7
37: National Currency 29.9
38: National Currency 25.8
39: National Currency 25.3
40: National Currency 38.6
41: National Currency 41.2
42: National Currency 39.2
43: National Currency 42.8
44: National Currency 36.9
45: National Currency 43.6
46: National Currency 35.6
47: National Currency 37.0
48: National Currency 36.6
49: National Currency 30.7
50: National Currency 39.3
51: National Currency 44.5
Moneda Women Entrepreneurship Index
Entrepreneurship Index Inflation rate
1: 64.9 0.90
2: 65.5 0.60
3: 60.2 -0.88
4: 65.7 -0.20
5: 67.3 0.00
6: 67.4 0.50
7: 42.0 -1.70
8: 65.3 -0.30
9: 41.3 0.00
10: 54.5 0.20
11: 54.6 -0.90
12: 66.5 0.60
13: 45.4 -0.30
14: 53.1 -0.50
15: 49.6 -0.50
16: 40.6 -0.50
17: 71.4 0.50
18: 42.7 -0.10
19: 47.4 -0.90
20: 71.8 0.00
21: 77.6 1.50
22: 70.4 1.60
23: 49.5 0.80
24: 65.6 2.17
25: 68.1 -0.50
26: 68.6 -1.10
27: 69.1 -0.61
28: 30.2 4.80
29: 37.2 26.50
30: 28.0 4.10
31: 28.9 -1.00
32: 25.8 10.67
33: 36.4 1.40
34: 37.7 0.80
35: 28.2 -0.50
36: 28.1 11.00
37: 29.6 -2.25
38: 24.8 17.20
39: 25.3 5.90
40: 27.2 3.70
41: 37.1 3.70
42: 40.0 2.30
43: 30.7 2.70
44: 32.2 0.10
45: 30.9 3.50
46: 31.7 15.50
47: 49.6 1.20
48: 32.1 -0.90
49: 35.5 4.80
50: 54.6 7.70
51: 41.4 8.67
Entrepreneurship Index Inflation rate
Female Labor Force Participation Rate Pindex_mujer
1: 67.10 1.1821494
2: 58.00 1.0298742
3: 68.50 1.0866426
4: 67.70 0.9894578
5: 60.60 0.9781977
6: 69.90 1.0597484
7: 42.50 0.9767442
8: 59.40 1.0155521
9: 47.20 0.8035019
10: 66.40 0.9628975
11: 66.50 0.9333333
12: 69.20 0.9595960
13: 55.90 0.8284672
14: 61.00 0.9499106
15: 52.70 0.9447619
16: 60.40 0.8136273
17: 70.30 1.0243902
18: 57.80 0.7951583
19: 56.60 0.8214905
20: 74.00 1.0764618
21: 66.80 1.0374332
22: 82.30 1.0352941
23: 64.70 1.2375000
24: 69.20 0.9894419
25: 59.18 1.1387960
26: 74.70 1.0769231
27: 55.00 1.2940075
28: 18.00 1.1021898
29: 47.30 1.0420168
30: 69.40 0.9427609
31: 51.90 0.9145570
32: 55.90 0.8295820
33: 62.40 0.9503916
34: 59.40 1.0443213
35: 63.50 0.8730650
36: 64.60 1.0144404
37: 55.70 0.9899666
38: 60.80 0.9612403
39: 61.10 1.0000000
40: 37.70 0.7046632
41: 73.00 0.9004854
42: 58.50 1.0204082
43: 44.70 0.7172897
44: 67.90 0.8726287
45: 63.40 0.7087156
46: 65.20 0.8904494
47: 13.00 1.3405405
48: 62.00 0.8770492
49: 25.19 1.1563518
50: 30.40 1.3893130
51: 68.00 0.9303371
Female Labor Force Participation Rate Pindex_mujer
summary(base_de_datos_1)
No País Level of development Miembro_UE
Min. : 1.00 Algeria : 1 Developed :27 Member :20
1st Qu.:14.50 Argentina: 1 Developing:24 Not Member:31
Median :30.00 Australia: 1
Mean :29.98 Austria : 1
3rd Qu.:45.50 Belgium : 1
Max. :60.00 Bolivia : 1
(Other) :45
Moneda Women Entrepreneurship Index
Length:51 Min. :25.30
Class :character 1st Qu.:36.35
Mode :character Median :44.50
Mean :47.84
3rd Qu.:59.15
Max. :74.80
Entrepreneurship Index Inflation rate
Min. :24.80 Min. :-2.250
1st Qu.:31.90 1st Qu.:-0.500
Median :42.70 Median : 0.600
Mean :47.24 Mean : 2.588
3rd Qu.:65.40 3rd Qu.: 3.600
Max. :77.60 Max. :26.500
Female Labor Force Participation Rate
Min. :13.00
1st Qu.:55.80
Median :61.00
Mean :58.48
3rd Qu.:67.40
Max. :82.30
https://matemovil.com/distribucion-normal-ejercicios-resueltos/
En esta etapa ya pasamos por la LIMPIEZA DE DATOS Y COMPRESIÓN DE LAS VARIABLES ESTADÍSTICAS, ASI COMO SUS DEFINICIONES (CUALITATIVA O CUANTITATIVA)
#Graficos Interactivos
library(ggplot) library(plotly)
#BOXPLOTS o DIAGRAMAS CAJA Y BIGOTES
library(treemapify) library(treemap)
#Análisis Multivariable
En el entorno de programación R existen múltiples paquetes que implementan algoritmos de clustering y funciones para visualizar sus resultados. En este documento se emplean los siguientes:
stats: contiene las funciones dist() para calcular matrices de distancias,kmeans(), hclust(), cuttree() para crear los clusters y plot.hclust() para visualizar los resultados.
cluster, mclust: contienen múltiples algoritmos de clustering y métricas para evaluarlos.
factoextra: extensión basada en ggplot2 para crear visualizaciones de los resultados de clustering y su evaluación.
dendextend: extensión para la customización de dendrogramas.
País Women Entrepreneurship Index Entrepreneurship Index
1: 4 54.9 64.9
2: 5 63.6 65.5
3: 16 55.4 60.2
4: 17 66.4 65.7
5: 18 68.8 67.3
6: 19 63.6 67.4
Inflation rate
1: 0.90
2: 0.60
3: -0.88
4: -0.20
5: 0.00
6: 0.50
[1] 51 4
List of 9
$ cluster : int [1:102] 1 1 1 1 1 1 2 1 2 2 ...
$ centers : num [1:2, 1] 1.486 -0.457
..- attr(*, "dimnames")=List of 2
.. ..$ : chr [1:2] "1" "2"
.. ..$ : NULL
$ totss : num 100
$ withinss : num [1:2] 13.9 16.8
$ tot.withinss: num 30.7
$ betweenss : num 69.3
$ size : int [1:2] 24 78
$ iter : int 1
$ ifault : int 0
- attr(*, "class")= chr "kmeans"
rownames(base1)<-base_de_datos_1$País
fviz_cluster(k2, base1, ellipse.type = "norm", labelsize = 10)library(plotly)
rownames(base1)<-base_de_datos_1$País
km_clusters <- kmeans(x = base1, centers = 2, nstart = 50)
# Las funciones del paquete factoextra emplean el nombre de las filas del
# dataframe que contiene los datos como identificador de las observaciones.
# Esto permite añadir labels a los gráficos.
#fviz_cluster(object = km_clusters, data = base1, show.clust.cent = TRUE,
# ellipse.type = "euclid", star.plot = TRUE, repel = TRUE) +
#labs(title = "Resultados clustering K-means") +
#theme_bw() +
#theme(legend.position = "none")
#ggplotly(z)#Bajo método Elbow
fviz_nbclust(base, kmeans, method = "wss")
#Bajo el Average Silhouette Method
fviz_nbclust(base, kmeans, method = "silhouette")
Entrepreneurship Index Inflation rate Clúster
Austria 1.090512022 -0.31365178 1
Belgium 1.127564729 -0.36940724 1
Estonia 0.800265818 -0.64446749 1
Finland 1.139915632 -0.51808846 1
France 1.238722850 -0.48091815 1
Germany 1.244898301 -0.38799239 1
Greece -0.323666293 -0.79686574 2
Ireland 1.115213827 -0.53667361 1
Italy -0.366894451 -0.48091815 2
Latvia 0.448265102 -0.44374785 2
Lithuania 0.454440553 -0.64818452 2
Netherlands 1.189319241 -0.36940724 1
Slovakia -0.113700954 -0.53667361 2
Slovenia 0.361808786 -0.57384391 2
Spain 0.145667995 -0.57384391 2
Croatia -0.410122609 -0.57384391 2
Denmark 1.491916348 -0.38799239 1
Hungary -0.280438135 -0.49950330 2
Poland 0.009808069 -0.64818452 2
Sweden 1.516618152 -0.48091815 1
Australia 1.874794319 -0.20214086 1
Iceland 1.430161836 -0.18355571 1
Japan 0.139492544 -0.33223693 2
Norway 1.133740180 -0.07762034 1
Singapore 1.288126459 -0.57384391 1
Switzerland 1.319003715 -0.68535483 1
Taiwan 1.349880971 -0.59428758 1
Algeria -1.052369530 0.41116917 2
Argentina -0.620087949 4.44414725 2
Bolivia -1.188229455 0.28107310 2
Bosnia and Herzegovina -1.132650395 -0.66676967 2
Brazil -1.324089381 1.50211761 2
China -0.669491558 -0.22072602 2
Costa Rica -0.589210693 -0.33223693 2
Ecuador -1.175878553 -0.57384391 2
Egypt -1.182054004 1.56344862 2
El Salvador -1.089422237 -0.89908408 2
Ghana -1.385843892 2.71572807 2
India -1.354966637 0.61560584 2
Jamaica -1.237633065 0.20673249 2
Macedonia -0.626263400 0.20673249 2
Malaysia -0.447175316 -0.05345964 2
Mexico -1.021492274 0.02088097 2
Panama -0.928860507 -0.46233300 2
Peru -1.009141372 0.16956218 2
Russia -0.959737762 2.39978048 2
Saudi Arabia 0.145667995 -0.25789632 2
Thailand -0.935035958 -0.64818452 2
Tunisia -0.725070618 0.41116917 2
Turkey 0.454440553 0.95013859 2
Uruguay -0.360719000 1.13041457 2
Otro Método con las librerías mclust, fpc y dbscan
“Choosing the best model The Mclust package uses maximum likelihood to fit all these models, with different covariance matrix parameterizations, for a range of k components. The best model is selected using the Bayesian Information Criterion or BIC. A large BIC score indicates strong evidence for the corresponding model.” (Alboukadel Kassambara, 2017, p. 173)
“Two important parameters are required for DBSCAN: epsilon (“eps”) and minimum points (“MinPts”). The parameter eps defines the radius of neighborhood around a point x. It’s called called the ’-neighborhood of x. The parameter MinPts is the minimum number of neighbors within “eps” radius.”(Alboukadel Kassambara, 2017,p.180)
----------------------------------------------------
Gaussian finite mixture model fitted by EM algorithm
----------------------------------------------------
Mclust V (univariate, unequal variance) model with 2 components:
log-likelihood n df BIC ICL
-42.42879 51 5 -104.5167 -112.6898
Clustering table:
1 2
36 15
Otro Método con las librerías mclust, fpc y dbscan
[1] "V"
[1] 2
[,1] [,2]
[1,] 9.296744e-01 0.07032559
[2,] 9.457978e-01 0.05420225
[3,] 9.454535e-01 0.05454646
[4,] 9.585080e-01 0.04149203
[5,] 9.582105e-01 0.04178949
[6,] 9.493552e-01 0.05064482
[7,] 8.657213e-01 0.13427868
[8,] 9.580303e-01 0.04196971
[9,] 9.582105e-01 0.04178949
[10,] 9.561934e-01 0.04380658
[11,] 9.446349e-01 0.05536509
[12,] 9.457978e-01 0.05420225
[13,] 9.580303e-01 0.04196971
[14,] 9.557523e-01 0.04424766
[15,] 9.557523e-01 0.04424766
[16,] 9.557523e-01 0.04424766
[17,] 9.493552e-01 0.05064482
[18,] 9.585675e-01 0.04143253
[19,] 9.446349e-01 0.05536509
[20,] 9.582105e-01 0.04178949
[21,] 8.512431e-01 0.14875690
[22,] 8.275359e-01 0.17246408
[23,] 9.361167e-01 0.06388327
[24,] 5.902184e-01 0.40978161
[25,] 9.557523e-01 0.04424766
[26,] 9.343944e-01 0.06560563
[27,] 9.536689e-01 0.04633110
[28,] 6.880220e-05 0.99993120
[29,] 2.535170e-160 1.00000000
[30,] 1.964809e-03 0.99803519
class(k2)
[1] "kmeans"
integer(0)
library(factoextra)
db <- fpc::dbscan(base1, eps = 0.35, MinPts = 2)
print(db)
dbscan Pts=51 MinPts=2 eps=0.35
0 1 2 3
border 7 0 0 0
seed 0 37 5 2
total 7 37 5 2
# Cluster membership. Noise/outlier observations are coded as 0
db$cluster
[1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 2 3 1
[34] 1 2 3 2 0 0 1 1 1 1 2 1 0 1 2 1 0 0
predict.dbscan(db, data= base1, newdata= base1[39:45,])
[1] 0 1 1 1 1 2 1
En esta sección repasaremos la regresión lineal, evaluaremos el modelo global con el estadístico F y los estadístistcos t con sus respectivas hipótesis.
Call:
lm(formula = base_de_datos_1$`Women Entrepreneurship Index` ~
base_de_datos_1$`Female Labor Force Participation Rate` -
1, data = base_de_datos_1)
Residuals:
Min 1Q Median 3Q Max
-25.748 -11.457 5.369 11.661 26.614
Coefficients:
Estimate
base_de_datos_1$`Female Labor Force Participation Rate` 0.79896
Std. Error
base_de_datos_1$`Female Labor Force Participation Rate` 0.03196
t value
base_de_datos_1$`Female Labor Force Participation Rate` 25
Pr(>|t|)
base_de_datos_1$`Female Labor Force Participation Rate` <2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 13.71 on 50 degrees of freedom
Multiple R-squared: 0.9259, Adjusted R-squared: 0.9244
F-statistic: 624.8 on 1 and 50 DF, p-value: < 2.2e-16
plot(base_de_datos_1$`Women Entrepreneurship Index` ~ base_de_datos_1$`Female Labor Force Participation Rate` -1, data = base_de_datos_1)
abline(fit, col = "red")
Realizaremos un modelo de regresión con sus variables menos la media de las mismas.
Call:
lm(formula = y ~ x - 1, data = base_de_datos_1)
Residuals:
Min 1Q Median 3Q Max
-23.725 -11.734 3.014 9.585 23.186
Coefficients:
Estimate Std. Error t value Pr(>|t|)
x 0.4542 0.1306 3.478 0.00106 **
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 12.8 on 50 degrees of freedom
Multiple R-squared: 0.1948, Adjusted R-squared: 0.1787
F-statistic: 12.1 on 1 and 50 DF, p-value: 0.001055
Regresión Múltiple, sin el análisis de normalidad, multicolinealidad, heterocedasticidad, residuos, gráficos qq, entre otros
summary(fit3)
Call:
lm(formula = base_de_datos_1$`Women Entrepreneurship Index` ~
base_de_datos_1$`Entrepreneurship Index` + base_de_datos_1$`Inflation rate` -
1, data = base_de_datos_1)
Residuals:
Min 1Q Median 3Q Max
-15.145 -2.320 1.419 4.362 12.836
Coefficients:
Estimate Std. Error t value
base_de_datos_1$`Entrepreneurship Index` 0.98922 0.01954 50.624
base_de_datos_1$`Inflation rate` 0.05635 0.16459 0.342
Pr(>|t|)
base_de_datos_1$`Entrepreneurship Index` <2e-16 ***
base_de_datos_1$`Inflation rate` 0.734
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 6.642 on 49 degrees of freedom
Multiple R-squared: 0.983, Adjusted R-squared: 0.9823
F-statistic: 1413 on 2 and 49 DF, p-value: < 2.2e-16
datos.pre.post = data.frame(
Nombre = c('Luis', 'Javier', 'Pedro', 'Soledad', 'Manuel', 'Cecilia', 'Cristina', 'Angel', 'Manuela', 'José', 'Juan', 'Antonio', 'Carmen', 'Carlos ', 'Francisco', 'Miguel', 'Laura', 'Lucía', 'Paula', 'Dolores'),
Pre = c(18, 21, 16, 22, 19, 24, 17, 21, 23, 18, 14, 16, 16, 19, 18, 20, 12, 22, 15, 17),
Post = c(22, 25, 17, 24, 16, 29, 20, 23, 19, 20, 15, 15, 18, 26, 18, 24, 18, 25, 19, 16)
)
head(datos.pre.post)
Nombre Pre Post
1 Luis 18 22
2 Javier 21 25
3 Pedro 16 17
4 Soledad 22 24
5 Manuel 19 16
6 Cecilia 24 29
var.test(datos.pre.post$Pre,datos.pre.post$Post)
F test to compare two variances
data: datos.pre.post$Pre and datos.pre.post$Post
F = 0.60329, num df = 19, denom df = 19, p-value = 0.2795
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
0.238790 1.524186
sample estimates:
ratio of variances
0.6032913
##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