db <- read.csv('ie_bpr_16pf.csv', sep = ';')
# Remove os indivíduos sem informações de idade
db <- db[!is.na(db$idade),]
# inveestiga qual as idade ideais para dividir os grupos por idade
idade <- data.frame(prop.table(table(db$idade)))
idade$cumulativo <- cumsum(idade$Freq)
idade <- sapply(idade, function(x) round(as.numeric(x), 2))
reactable(idade)
Os participantes serão dividios em três grupos, por idade:
db <- db %>%
mutate(
idade_grupos = case_when(
idade <= 22 ~ 1,
idade >= 23 & idade <= 29 ~ 2,
idade >= 30 ~ 3
)
)
reactable(db)
Agora, faremos a ANOVA, considerando idade e sexo como VI e os cinco grandes fatores como VD. Antes iremos corrigir o nome das colunas.
colnames(db)[4:8] <- c(
'fator_i',
'fator_ii',
'fator_iii',
'fator_iv',
'fator_v'
)
# Transforma em fator
db[,c('sexo', 'idade_grupos')] <- sapply(
db[,c('sexo', 'idade_grupos')],
factor
)
# Roda a ANOVA Fatorial (* a invés de +)
model_anova <- aov(fator_i ~ idade_grupos * sexo, data = db)
summary(model_anova)
## Df Sum Sq Mean Sq F value Pr(>F)
## idade_grupos 2 41.3 20.650 7.270 0.000984 ***
## sexo 1 0.8 0.761 0.268 0.605604
## idade_grupos:sexo 2 6.9 3.448 1.214 0.300064
## Residuals 143 406.2 2.841
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Os resultados sugerem que existe diferença significativa entre os grupos divididos por idade, mas não entre os sexos. Uma análise post hoc de Tuckey foi realizada para compreender se a diferença se dá entre todos os grupos ou se existem grupos cujas diferenças são maiores.
TukeyHSD(model_anova)
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = fator_i ~ idade_grupos * sexo, data = db)
##
## $idade_grupos
## diff lwr upr p adj
## 2-1 0.2571429 -0.569199 1.08348472 0.7419364
## 3-1 -0.9290094 -1.765039 -0.09297976 0.0253886
## 3-2 -1.1861523 -1.951096 -0.42120864 0.0009822
##
## $sexo
## diff lwr upr p adj
## 2-1 0.1391583 -0.4205941 0.6989108 0.6238833
##
## $`idade_grupos:sexo`
## diff lwr upr p adj
## 2:1-1:1 0.110000000 -1.3415481 1.5615481 0.9999297
## 3:1-1:1 -1.249612403 -2.6164034 0.1171786 0.0941831
## 1:2-1:1 -0.265151515 -1.8125070 1.2822039 0.9962849
## 2:2-1:1 0.112820513 -1.3800120 1.6056531 0.9999307
## 3:2-1:1 -0.323333333 -2.2435510 1.5968843 0.9965801
## 3:1-2:1 -1.359612403 -2.5177876 -0.2014372 0.0113934
## 1:2-2:1 -0.375151515 -1.7417388 0.9914358 0.9683200
## 2:2-2:1 0.002820513 -1.3017105 1.3073515 1.0000000
## 3:2-2:1 -0.433333333 -2.2111094 1.3444427 0.9811893
## 1:2-3:1 0.984460888 -0.2917393 2.2606611 0.2313652
## 2:2-3:1 1.362432916 0.1529177 2.5719481 0.0174845
## 3:2-3:1 0.926279070 -0.7829938 2.6355519 0.6225424
## 2:2-1:2 0.377972028 -1.0323890 1.7883330 0.9714506
## 3:2-1:2 -0.058181818 -1.9150084 1.7986447 0.9999991
## 3:2-2:2 -0.436153846 -2.2477954 1.3754877 0.9821997
Não foi possível encontrar diferença significativa entre as médias de adolescentes e jovens adultos (p > 0.05). Existe diferença significativa entre adolescentes e adultos e jovens adultos e adultos.
# Roda a ANOVA Fatorial (* a invés de +)
model_anova <- aov(fator_ii ~ idade_grupos * sexo, data = db)
summary(model_anova)
## Df Sum Sq Mean Sq F value Pr(>F)
## idade_grupos 2 11.6 5.819 1.327 0.268
## sexo 1 2.0 1.966 0.448 0.504
## idade_grupos:sexo 2 1.4 0.690 0.157 0.855
## Residuals 143 627.0 4.385
Os resultados sugerem que existe diferença significativa entre os grupos divididos.
# Roda a ANOVA Fatorial (* a invés de +)
model_anova <- aov(fator_iii ~ idade_grupos * sexo, data = db)
summary(model_anova)
## Df Sum Sq Mean Sq F value Pr(>F)
## idade_grupos 2 8.0 4.00 1.748 0.178
## sexo 1 41.6 41.55 18.162 3.66e-05 ***
## idade_grupos:sexo 2 0.1 0.05 0.021 0.979
## Residuals 143 327.2 2.29
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Os resultados sugerem que existe diferença significativa entre os sexos, mas não por idade.
# Roda a ANOVA Fatorial (* a invés de +)
model_anova <- aov(fator_iv ~ idade_grupos * sexo, data = db)
summary(model_anova)
## Df Sum Sq Mean Sq F value Pr(>F)
## idade_grupos 2 4.8 2.386 0.898 0.4099
## sexo 1 18.1 18.057 6.793 0.0101 *
## idade_grupos:sexo 2 4.5 2.250 0.847 0.4310
## Residuals 143 380.1 2.658
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Os resultados sugerem que existe diferença significativa entre sexos.
# Roda a ANOVA Fatorial (* a invés de +)
model_anova <- aov(fator_v ~ idade_grupos * sexo, data = db)
summary(model_anova)
## Df Sum Sq Mean Sq F value Pr(>F)
## idade_grupos 2 10.61 5.304 2.405 0.0939 .
## sexo 1 0.73 0.731 0.332 0.5656
## idade_grupos:sexo 2 0.75 0.376 0.171 0.8434
## Residuals 143 315.34 2.205
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Os resultados sugerem não existe diferença significativa entre os grupos.
model_ml <- lm(
av_des ~
# BPR-5
epn_ra + # Raciocínio Abstrato
epn_rv + # Raciocínio Verbal
epn_rm + # Raciocínio Mecânico
epn_re + # Raciocínio Espacial
epn_rn + # Raciocínio Numérico
# MSCEIT
experi + # Experencial (IEE)
etrateg # Estratégica (IES)
, data = db
)
summary(model_ml)
##
## Call:
## lm(formula = av_des ~ epn_ra + epn_rv + epn_rm + epn_re + epn_rn +
## experi + etrateg, data = db)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.25568 -0.47386 0.06521 0.56694 1.38537
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.015e+00 7.436e-01 2.709 0.00784 **
## epn_ra 4.436e-03 6.814e-03 0.651 0.51639
## epn_rv 3.414e-05 6.816e-03 0.005 0.99601
## epn_rm -2.141e-04 6.584e-03 -0.033 0.97412
## epn_re 7.264e-03 7.112e-03 1.021 0.30933
## epn_rn 4.711e-03 7.043e-03 0.669 0.50500
## experi -2.537e-03 1.486e-02 -0.171 0.86477
## etrateg 2.852e-02 1.506e-02 1.894 0.06085 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.73 on 108 degrees of freedom
## (33 observations deleted due to missingness)
## Multiple R-squared: 0.1317, Adjusted R-squared: 0.07547
## F-statistic: 2.341 on 7 and 108 DF, p-value: 0.02899
db$av_predito <- predict(model_ml, db[,c(9:13, 21:22)])
cor(
db$av_des[!is.na(db$av_predito) & !is.na(db$av_des)],
db$av_predito[!is.na(db$av_predito) & !is.na(db$av_des)]
)
## [1] 0.3629675
Correlação moderada entre o valor real e o predito.
ggplot(
db,
aes(
x = av_des,
y = av_predito
)
) +
geom_point()+
geom_smooth(
method = 'lm'
)