Entrenamiento formal + no formal
entrenamiento = 'entrenamiento'
etiqueta = 'Entrenamiento (formal y no formal) en bioética'
df[entrenamiento].value_counts(sort=False)
## No 79
## Sí 26
## Name: entrenamiento, dtype: int64
df[entrenamiento].value_counts(sort=False, normalize=True).round(2)
## No 0.75
## Sí 0.25
## Name: entrenamiento, dtype: float64
sns.countplot(x=entrenamiento, data=df, edgecolor='black')
plt.xlabel(etiqueta)
plt.ylabel('Núm. docentes')
plt.show()
## vs edad
var = 'edad' # Definición de la variable de interés
df.groupby(entrenamiento)[var].describe().round().transpose() # Tendencia central y dispersión
## entrenamiento No Sí
## count 79.0 26.0
## mean 38.0 42.0
## std 9.0 14.0
## min 23.0 25.0
## 25% 31.0 28.0
## 50% 37.0 44.0
## 75% 44.0 56.0
## max 62.0 67.0
scipy.stats.kruskal(*[data[var].values for name, data in df.groupby(entrenamiento)]) # Prueba de Kruskal-Wallis
## KruskalResult(statistic=0.5801745286470208, pvalue=0.44624391940836794)
sns.boxplot(x=entrenamiento, y=var, data =df, order=['No','Sí']) # Gráfico de cajas
plt.xlabel(etiqueta)
plt.ylabel('Edad, en años')
plt.show()
## vs sexo
var = 'sexo' # Definición de la variable de contraste
pd.crosstab(df[var], df[entrenamiento]) # Frecuencia absoluta
## entrenamiento No Sí
## sexo
## Hombre 21 3
## Mujer 58 23
pd.crosstab(df[var], df[entrenamiento], normalize='index').round(2) # Frecuencia relativa
## entrenamiento No Sí
## sexo
## Hombre 0.88 0.12
## Mujer 0.72 0.28
scipy.stats.chi2_contingency(pd.crosstab(df[entrenamiento], df[var])) # Prueba del chi-cuadrado
## (1.7300845910418698, 0.18840009485761022, 1, array([[18.05714286, 60.94285714],
## [ 5.94285714, 20.05714286]]))
sns.countplot(x=entrenamiento, hue=var, data=df, edgecolor='black') # Gráfico de barras
plt.xlabel(etiqueta)
plt.ylabel('Núm. docentes')
plt.legend(title='Sexo', loc='upper right')
plt.show()
## vs grado académico
var = 'grado' # Definición de la variable de contraste
pd.crosstab(df[var], df[entrenamiento]) # Frecuencia absoluta
## entrenamiento No Sí
## grado
## Licenciatura 21 3
## Grado Profesional 23 7
## Especialización 23 9
## Maestría 12 7
pd.crosstab(df[var], df[entrenamiento], normalize='index').round(2) # Frecuencia relativa
## entrenamiento No Sí
## grado
## Licenciatura 0.88 0.12
## Grado Profesional 0.77 0.23
## Especialización 0.72 0.28
## Maestría 0.63 0.37
scipy.stats.chi2_contingency(pd.crosstab(df[entrenamiento], df[var])) # Prueba del chi-cuadrado
## (3.6522886985599348, 0.3015412344375651, 3, array([[18.05714286, 22.57142857, 24.07619048, 14.2952381 ],
## [ 5.94285714, 7.42857143, 7.92380952, 4.7047619 ]]))
sns.countplot(x=entrenamiento, hue=var, data=df, edgecolor='black', order=['No','Sí']) # Gráfico de barras
plt.xlabel(etiqueta)
plt.ylabel('Núm. docentes')
plt.legend(title='Grado académico', loc='upper right')
plt.show()
## vs facultad
var = 'facultad' # Definición de la variable de contraste
pd.crosstab(df[var], df[entrenamiento]) # Frecuencia absoluta
## entrenamiento No Sí
## facultad
## Ciencias de la Salud 54 20
## Medicina 25 6
pd.crosstab(df[var], df[entrenamiento], normalize='index').round(2) # Frecuencia relativa
## entrenamiento No Sí
## facultad
## Ciencias de la Salud 0.73 0.27
## Medicina 0.81 0.19
scipy.stats.chi2_contingency(pd.crosstab(df[entrenamiento], df[var])) # Prueba del chi-cuadrado
## (0.33988293622327964, 0.5598968011370057, 1, array([[55.67619048, 23.32380952],
## [18.32380952, 7.67619048]]))
sns.countplot(x=entrenamiento, hue=var, data=df, edgecolor='black', order=['No','Sí']) # Gráfico de barras
plt.xlabel(etiqueta)
plt.ylabel('Núm. docentes')
plt.legend(title='Facultad', loc='upper right')
plt.show()
## vs carrera
var = 'carrera' # Definición de la variable de contraste
pd.crosstab(df[var], df[entrenamiento]) # Frecuencia absoluta
## entrenamiento No Sí
## carrera
## Bioquímica 14 4
## Enfermería 4 10
## Fisioterapia 15 4
## Medicina 14 3
## Nutrición 11 1
## Odontología 15 4
## Psicología 6 0
pd.crosstab(df[var], df[entrenamiento], normalize='index').round(2) # Frecuencia relativa
## entrenamiento No Sí
## carrera
## Bioquímica 0.78 0.22
## Enfermería 0.29 0.71
## Fisioterapia 0.79 0.21
## Medicina 0.82 0.18
## Nutrición 0.92 0.08
## Odontología 0.79 0.21
## Psicología 1.00 0.00
scipy.stats.chi2_contingency(pd.crosstab(df[entrenamiento], df[var])) # Prueba del chi-cuadrado
## (20.88312354358029, 0.00192545280423765, 6, array([[13.54285714, 10.53333333, 14.2952381 , 12.79047619, 9.02857143,
## 14.2952381 , 4.51428571],
## [ 4.45714286, 3.46666667, 4.7047619 , 4.20952381, 2.97142857,
## 4.7047619 , 1.48571429]]))
sns.countplot(x=entrenamiento, hue=var, data=df, edgecolor='black', order=['No','Sí']) # Gráfico de barras
plt.xlabel(etiqueta)
plt.ylabel('Núm. docentes')
plt.legend(title='Carrera', loc='upper right')
plt.show()
## vs experiencia docente
var = 'experiencia'
df.groupby(entrenamiento)[var].describe().round().transpose() # Tendencia central y dispersión
## entrenamiento No Sí
## count 79.0 26.0
## mean 8.0 11.0
## std 7.0 8.0
## min 1.0 1.0
## 25% 3.0 4.0
## 50% 5.0 8.0
## 75% 12.0 18.0
## max 35.0 28.0
scipy.stats.kruskal(*[data[var].values for name, data in df.groupby(entrenamiento)]) # Prueba de Kruskal-Wallis
## KruskalResult(statistic=1.7186296638096883, pvalue=0.18986953290504127)
sns.boxplot(x=entrenamiento, y=var, data =df, order=['No','Sí']) # Gráfico de cajas
plt.xlabel(etiqueta)
plt.ylabel('Experiencia docente, en años')
plt.show()