Entrenamiento formal
entrenamiento = 'formal'
etiqueta = 'Entrenamiento formal en bioética'
df[entrenamiento].value_counts(sort=False)
## No 103
## Especialización 1
## Maestría 1
## Name: formal, dtype: int64
df[entrenamiento].value_counts(sort=False, normalize=True).round(2)
## No 0.98
## Especialización 0.01
## Maestría 0.01
## Name: formal, 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
## formal No Especialización Maestría
## count 103.0 1.0 1.0
## mean 39.0 32.0 27.0
## std 11.0 NaN NaN
## min 23.0 32.0 27.0
## 25% 30.0 32.0 27.0
## 50% 38.0 32.0 27.0
## 75% 46.0 32.0 27.0
## max 67.0 32.0 27.0
scipy.stats.kruskal(*[data[var].values for name, data in df.groupby(entrenamiento)]) # Prueba de Kruskal-Wallis
## KruskalResult(statistic=1.908886438035436, pvalue=0.38502646029474485)
sns.boxplot(x=entrenamiento, y=var, data =df) # 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
## formal No Especialización Maestría
## sexo
## Hombre 23 1 0
## Mujer 80 0 1
pd.crosstab(df[var], df[entrenamiento], normalize='index').round(2) # Frecuencia relativa
## formal No Especialización Maestría
## sexo
## Hombre 0.96 0.04 0.00
## Mujer 0.99 0.00 0.01
scipy.stats.chi2_contingency(pd.crosstab(df[entrenamiento], df[var])) # Prueba del chi-cuadrado
## (3.687522473930241, 0.15822119811342458, 2, array([[23.54285714, 79.45714286],
## [ 0.22857143, 0.77142857],
## [ 0.22857143, 0.77142857]]))
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
## formal No Especialización Maestría
## grado
## Licenciatura 24 0 0
## Grado Profesional 29 0 1
## Especialización 32 0 0
## Maestría 18 1 0
pd.crosstab(df[var], df[entrenamiento], normalize='index').round(2) # Frecuencia relativa
## formal No Especialización Maestría
## grado
## Licenciatura 1.00 0.00 0.00
## Grado Profesional 0.97 0.00 0.03
## Especialización 1.00 0.00 0.00
## Maestría 0.95 0.05 0.00
scipy.stats.chi2_contingency(pd.crosstab(df[entrenamiento], df[var])) # Prueba del chi-cuadrado
## (7.075114971895759, 0.3139564744956458, 6, array([[23.54285714, 29.42857143, 31.39047619, 18.63809524],
## [ 0.22857143, 0.28571429, 0.3047619 , 0.18095238],
## [ 0.22857143, 0.28571429, 0.3047619 , 0.18095238]]))
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='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
## formal No Especialización Maestría
## facultad
## Ciencias de la Salud 73 0 1
## Medicina 30 1 0
pd.crosstab(df[var], df[entrenamiento], normalize='index').round(2) # Frecuencia relativa
## formal No Especialización Maestría
## facultad
## Ciencias de la Salud 0.99 0.00 0.01
## Medicina 0.97 0.03 0.00
scipy.stats.chi2_contingency(pd.crosstab(df[entrenamiento], df[var])) # Prueba del chi-cuadrado
## (2.8138410881912286, 0.24489627042876436, 2, array([[72.59047619, 30.40952381],
## [ 0.7047619 , 0.2952381 ],
## [ 0.7047619 , 0.2952381 ]]))
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='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
## formal No Especialización Maestría
## carrera
## Bioquímica 18 0 0
## Enfermería 14 0 0
## Fisioterapia 19 0 0
## Medicina 16 1 0
## Nutrición 12 0 0
## Odontología 18 0 1
## Psicología 6 0 0
pd.crosstab(df[var], df[entrenamiento], normalize='index').round(2) # Frecuencia relativa
## formal No Especialización Maestría
## carrera
## Bioquímica 1.00 0.00 0.00
## Enfermería 1.00 0.00 0.00
## Fisioterapia 1.00 0.00 0.00
## Medicina 0.94 0.06 0.00
## Nutrición 1.00 0.00 0.00
## Odontología 0.95 0.00 0.05
## Psicología 1.00 0.00 0.00
scipy.stats.chi2_contingency(pd.crosstab(df[entrenamiento], df[var])) # Prueba del chi-cuadrado
## (9.777570711473144, 0.6354670626616614, 12, array([[17.65714286, 13.73333333, 18.63809524, 16.67619048, 11.77142857,
## 18.63809524, 5.88571429],
## [ 0.17142857, 0.13333333, 0.18095238, 0.16190476, 0.11428571,
## 0.18095238, 0.05714286],
## [ 0.17142857, 0.13333333, 0.18095238, 0.16190476, 0.11428571,
## 0.18095238, 0.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='Carrera', loc='upper right')
plt.show()
## vs experiencia docente
var = 'experiencia'
df.groupby(entrenamiento)[var].describe().round().transpose() # Tendencia central y dispersión
## formal No Especialización Maestría
## count 103.0 1.0 1.0
## mean 9.0 6.0 2.0
## std 7.0 NaN NaN
## min 1.0 6.0 2.0
## 25% 3.0 6.0 2.0
## 50% 6.0 6.0 2.0
## 75% 15.0 6.0 2.0
## max 35.0 6.0 2.0
scipy.stats.kruskal(*[data[var].values for name, data in df.groupby(entrenamiento)]) # Prueba de Kruskal-Wallis
## KruskalResult(statistic=1.8873846389533904, pvalue=0.38918817207787687)
sns.boxplot(x=entrenamiento, y=var, data =df) # Gráfico de cajas
plt.xlabel(etiqueta)
plt.ylabel('Experiencia docente, en años')
plt.show()