Ejercicio 1

Para realizar el ejercicio, lo primero es comenzar un nuevo R Script con el nombre “ejercicio1” y guardarlo en un directorio o carpeta “cursoR” [File > New File > R Script, o Ctrl+Shift+N; File > Save, o Ctrl+S ].

Lo segundo, es decirle a R en qué directorio estamos trabajando [Session > Set Working Directory > To Source File Location].

Lo tercero, es bajar los datos que vamos a usar y guardarlos en la carpeta “cursoR”, los datos están en este link

Listo.


El objetivo del ejercicio es cargar un set de datos experimentales y preprocesarlos para luego hacer análisis más avanzados. Los datos provienen de un estudio que busca evaluar relación ente características de personalidad y tamaño de la firma, basado en una muestra de estudiantes de Facultad De Psicología. Los datos muestran los puntajes de cuestionarios y escalas de:

Y la medida del áera de la firma (Sign.Area) y el área de la aclaración de la firma (Name.Area)

Con el set de datos provistos, y usando los conceptos y funciones presentados en la guía de la sesión 1, completar las siguientes tareas:

  1. Encontrar el número de participantes usando una sola línea de código

  2. Encontrar la cantidad de datos faltantes para cada variable

  3. Eliminar a los participantes con áreas de aclaración de la firma outliers (mayores a la media más 3 desvíos estándar). Indicar cuántos son.

  4. Calcular el ratio área de la firma / área de aclaración para hombres y para mujeres.

  5. Calcular la correlación entre el ratio área de la firma / área de aclaración de la firma y el puntaje de narcisismo para hombres y mujeres. Tip: usar la función cor.

[Atención con valores NA, pueden dar problemas]


Para cargar los datos en el entorno de trabajo (environment) de R Studio usar el siguiente comando:

load("datosLimpios.RData")

A continuación se presenta un conjunto de soluciones posibles, el mismo problema puede resolverse de más de una manera:

#El número de participantes es el número de filas

nrow(datosLimpios)
## [1] 330
summary(datosLimpios)
##  Sex          Age          NPI16TOTAL       GSESTOTAL        ADTOTAL     
##  M:142   Min.   :17.00   Min.   : 0.000   Min.   :20.00   Min.   : 7.00  
##  F:188   1st Qu.:19.00   1st Qu.: 1.000   1st Qu.:25.00   1st Qu.:12.00  
##          Median :21.00   Median : 3.000   Median :26.00   Median :15.00  
##          Mean   :23.75   Mean   : 3.233   Mean   :26.66   Mean   :15.75  
##          3rd Qu.:25.00   3rd Qu.: 5.000   3rd Qu.:28.00   3rd Qu.:19.00  
##          Max.   :52.00   Max.   :12.000   Max.   :35.00   Max.   :31.00  
##                                           NA's   :20      NA's   :15     
##     SDTOTAL        Sign.Area        Name.Area     
##  Min.   :13.00   Min.   : 7.832   Min.   : 9.903  
##  1st Qu.:25.00   1st Qu.:18.155   1st Qu.:15.347  
##  Median :29.00   Median :22.061   Median :17.683  
##  Mean   :28.39   Mean   :23.894   Mean   :20.005  
##  3rd Qu.:32.00   3rd Qu.:28.012   3rd Qu.:21.723  
##  Max.   :40.00   Max.   :49.809   Max.   :94.018  
##  NA's   :20      NA's   :6
# calculo los límites de outliers
mediaName=mean(datosLimpios$Name.Area) #la media
desvName=sd(datosLimpios$Name.Area) #el desvío
outUp=mediaName+3*desvName #guardo el umbral en una variable

# encuentro los no outliers
temp=datosLimpios$Name.Area<=outUp
# me quedo con los que no son outliers
# y lo guardo en una variable temporal, por las dudas
temp1=datosLimpios[temp,] 

#chequeo que haya todo esté bien
summary(temp1) 
##  Sex          Age          NPI16TOTAL       GSESTOTAL        ADTOTAL     
##  M:136   Min.   :17.00   Min.   : 0.000   Min.   :20.00   Min.   : 7.00  
##  F:187   1st Qu.:19.00   1st Qu.: 1.000   1st Qu.:25.00   1st Qu.:11.75  
##          Median :21.00   Median : 3.000   Median :26.00   Median :15.00  
##          Mean   :23.77   Mean   : 3.254   Mean   :26.67   Mean   :15.71  
##          3rd Qu.:25.00   3rd Qu.: 5.000   3rd Qu.:28.00   3rd Qu.:19.00  
##          Max.   :52.00   Max.   :12.000   Max.   :35.00   Max.   :31.00  
##                                           NA's   :20      NA's   :15     
##     SDTOTAL        Sign.Area        Name.Area     
##  Min.   :13.00   Min.   : 7.832   Min.   : 9.903  
##  1st Qu.:25.00   1st Qu.:18.155   1st Qu.:15.291  
##  Median :29.00   Median :22.000   Median :17.627  
##  Mean   :28.38   Mean   :23.777   Mean   :19.002  
##  3rd Qu.:32.00   3rd Qu.:27.739   3rd Qu.:21.431  
##  Max.   :40.00   Max.   :49.809   Max.   :46.328  
##  NA's   :20      NA's   :2
# si ok
datosLimpios=temp1
nrow(datosLimpios) #Eran 330, ahora son 323, eliminé 7 sujetos
## [1] 323
# separar el dataframe para hombres y mujeres 
men=datosLimpios[datosLimpios$Sex=="M",]
women=datosLimpios[datosLimpios$Sex=="F",]

# me quedo solo con los casos que tiene ambos valores (firma y nombre)
temp=complete.cases(men[,c(7,8)])
men=men[temp,] # eliminé 2 participantes

temp=complete.cases(women[,c(7,8)])
women=women[temp,] # no tiré nninguna


ratioMen=mean(men$Sign.Area)/mean(men$Name.Area)
ratioWomen=mean(women$Sign.Area)/mean(women$Name.Area)
cor(men$Sign.Area,men$NPI16TOTAL)
## [1] -0.0967168
cor(women$Sign.Area,women$NPI16TOTAL)
## [1] 0.2307823

Referencias:

Mailhos, Alvaro, Abraham P. Buunk, and Cabana, Álvaro. “Signature size signals sociable dominance and narcissism.” Journal of Research in Personality (2016).