A CAPES é um órgão do MEC que tem a atribuição de acompanhar a pós-graduação na universidade brasileira. Uma das formas que ela encontrou de fazer isso e pela qual ela é bastante criticada é através de uma avaliação quantitativa a cada x anos (era 3, mudou para 4).
Usaremos dados da penúltima avaliação da CAPES:
cacc_tudo = read_projectdata()
glimpse(cacc_tudo)
## Rows: 73
## Columns: 31
## $ Instituição <chr> "UNIVERSIDADE FEDERAL DO AMAZONAS", "UNIV…
## $ Programa <chr> "INFORMÁTICA (12001015012P2)", "CIÊNCIA D…
## $ Nível <int> 5, 4, 3, 3, 3, 5, 4, 3, 3, 3, 5, 3, 3, 3,…
## $ Sigla <chr> "UFAM", "UFPA", "UFMA", "UEMA", "FUFPI", …
## $ `Tem doutorado` <chr> "Sim", "Sim", "Não", "Não", "Não", "Sim",…
## $ `Docentes colaboradores` <dbl> 0.25, 5.50, 3.00, 6.25, 1.75, 2.00, 1.00,…
## $ `Docentes permanentes` <dbl> 24.75, 14.00, 10.00, 14.00, 9.50, 20.75, …
## $ `Docentes visitantes` <dbl> 0.00, 0.00, 0.00, 0.00, 0.00, 0.75, 0.50,…
## $ `Resumos em conf` <int> 20, 23, 15, 5, 4, 10, 6, 136, 0, 24, 27, …
## $ `Resumos expandidos em conf` <int> 25, 24, 7, 10, 1, 68, 9, 13, 4, 6, 16, 5,…
## $ `Artigos em conf` <int> 390, 284, 115, 73, 150, 269, 179, 0, 120,…
## $ Dissertacoes <int> 108, 77, 50, 25, 31, 75, 60, 129, 45, 3, …
## $ Teses <int> 14, 0, 0, 0, 0, 24, 5, 0, 0, 0, 29, 0, 0,…
## $ periodicos_A1 <int> 15, 19, 5, 1, 7, 21, 21, 0, 3, 8, 44, 0, …
## $ periodicos_A2 <int> 19, 21, 11, 1, 4, 32, 13, 0, 9, 2, 23, 2,…
## $ periodicos_B1 <int> 19, 38, 7, 3, 6, 26, 16, 2, 6, 4, 32, 4, …
## $ periodicos_B2 <int> 1, 12, 2, 6, 0, 0, 11, 0, 0, 2, 1, 0, 0, …
## $ periodicos_B3 <int> 3, 16, 2, 2, 3, 16, 15, 0, 4, 6, 9, 0, 2,…
## $ periodicos_B4 <int> 0, 4, 0, 3, 3, 0, 1, 3, 1, 6, 0, 0, 4, 5,…
## $ periodicos_B5 <int> 10, 16, 8, 4, 12, 4, 16, 2, 6, 2, 11, 0, …
## $ periodicos_C <int> 9, 34, 12, 5, 2, 3, 11, 9, 5, 10, 16, 1, …
## $ periodicos_NA <int> 7, 15, 8, 11, 12, 6, 19, 31, 7, 14, 19, 0…
## $ per_comaluno_A1 <int> 4, 1, 0, 0, 1, 7, 5, 0, 1, 0, 10, 0, 0, 2…
## $ per_comaluno_A2 <int> 5, 5, 5, 0, 2, 15, 3, 0, 3, 0, 3, 0, 0, 1…
## $ per_comaluno_B1 <int> 4, 2, 5, 2, 2, 14, 6, 0, 2, 0, 17, 0, 1, …
## $ per_comaluno_B2 <int> 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,…
## $ per_comaluno_B3 <int> 2, 2, 0, 1, 0, 7, 9, 0, 2, 0, 4, 0, 0, 1,…
## $ per_comaluno_B4 <int> 0, 0, 0, 0, 2, 0, 1, 0, 1, 3, 0, 0, 2, 0,…
## $ per_comaluno_B5 <int> 5, 0, 4, 0, 8, 3, 6, 0, 4, 0, 4, 0, 2, 5,…
## $ per_comaluno_C <int> 6, 5, 3, 1, 2, 3, 7, 1, 2, 4, 8, 0, 11, 3…
## $ per_comaluno_NA <int> 6, 14, 2, 2, 9, 3, 6, 4, 5, 1, 10, 0, 17,…
Uma das maneiras de avaliar a produção dos docentes que a CAPES utiliza é quantificando a produção de artigos pelos docentes. Os artigos são categorizados em extratos ordenados (A1 é o mais alto), e separados entre artigos em conferências e periódicos. Usaremos para esse lab a produção em periódicos avaliados com A1, A2 e B1.
cacc = cacc_tudo %>%
transmute(
docentes = `Docentes permanentes`,
producao = (periodicos_A1 + periodicos_A2 + periodicos_B1),
produtividade = producao / docentes,
mestrados = Dissertacoes,
doutorados = Teses,
tem_doutorado = tolower(`Tem doutorado`) == "sim",
mestrados_pprof = mestrados / docentes,
doutorados_pprof = doutorados / docentes
)
cacc_md = cacc %>%
filter(tem_doutorado)
skimr::skim(cacc)
| Name | cacc |
| Number of rows | 73 |
| Number of columns | 8 |
| _______________________ | |
| Column type frequency: | |
| logical | 1 |
| numeric | 7 |
| ________________________ | |
| Group variables | None |
Variable type: logical
| skim_variable | n_missing | complete_rate | mean | count |
|---|---|---|---|---|
| tem_doutorado | 0 | 1 | 0.47 | FAL: 39, TRU: 34 |
Variable type: numeric
| skim_variable | n_missing | complete_rate | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|
| docentes | 0 | 1 | 20.63 | 12.27 | 8.25 | 11.25 | 16.75 | 25.75 | 67.25 | ▇▃▁▁▁ |
| producao | 0 | 1 | 58.03 | 65.44 | 0.00 | 18.00 | 42.00 | 67.00 | 355.00 | ▇▂▁▁▁ |
| produtividade | 0 | 1 | 2.36 | 1.37 | 0.00 | 1.40 | 2.27 | 3.20 | 5.66 | ▆▇▇▅▂ |
| mestrados | 0 | 1 | 75.79 | 63.23 | 0.00 | 39.00 | 58.00 | 103.00 | 433.00 | ▇▃▁▁▁ |
| doutorados | 0 | 1 | 14.96 | 30.98 | 0.00 | 0.00 | 0.00 | 14.00 | 152.00 | ▇▁▁▁▁ |
| mestrados_pprof | 0 | 1 | 3.66 | 1.81 | 0.00 | 2.57 | 3.58 | 4.88 | 8.19 | ▂▇▇▃▂ |
| doutorados_pprof | 0 | 1 | 0.43 | 0.73 | 0.00 | 0.00 | 0.00 | 0.57 | 2.69 | ▇▁▁▁▁ |
cacc %>%
ggplot(aes(x = docentes)) +
geom_histogram(bins = 15, fill = paleta[1])
cacc %>%
ggplot(aes(x = producao)) +
geom_histogram(bins = 15, fill = paleta[2])
cacc %>%
ggplot(aes(x = produtividade)) +
geom_histogram(bins = 15, fill = paleta[3])
Se quisermos modelar o efeito do tamanho do programa em termos de docentes (permanentes) na quantidade de artigos publicados, podemos usar regressão.
Importante: sempre queremos ver os dados antes de fazermos qualquer modelo ou sumário:
cacc %>%
ggplot(aes(x = docentes, y = producao)) +
geom_point()
Parece que existe uma relação. Vamos criar um modelo então:
modelo1 = lm(producao ~ docentes, data = cacc)
tidy(modelo1, conf.int = TRUE, conf.level = 0.95)
## # A tibble: 2 × 7
## term estimate std.error statistic p.value conf.low conf.high
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 (Intercept) -41.3 6.53 -6.32 2.01e- 8 -54.3 -28.3
## 2 docentes 4.81 0.273 17.7 1.09e-27 4.27 5.36
glance(modelo1)
## # A tibble: 1 × 12
## r.squared adj.r.squared sigma statistic p.value df logLik AIC BIC
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 0.815 0.812 28.4 312. 1.09e-27 1 -347. 700. 706.
## # … with 3 more variables: deviance <dbl>, df.residual <int>, nobs <int>
Para visualizar o modelo:
cacc_augmented = cacc %>%
add_predictions(modelo1)
cacc_augmented %>%
ggplot(aes(x = docentes)) +
geom_line(aes(y = pred), colour = "brown") +
geom_point(aes(y = producao)) +
labs(y = "Produção do programa")
Se considerarmos que temos apenas uma amostra de todos os programas de pós em CC no Brasil, o que podemos inferir a partir desse modelo sobre a relação entre número de docentes permanentes e produção de artigos em programas de pós?
Normalmente reportaríamos o resultado da seguinte maneira, substituindo VarIndepX e todos os x’s e y’s pelos nomes e valores de fato:
Regressão múltipla foi utilizada para analisar se VarIndep1 e VarIndep2 tem uma associação significativa com VarDep. Os resultados da regressão indicam que um modelo com os 2 preditores no formato VarDep = XXX.VarIndep1 + YYY.VarIndep2 explicam XX,XX% da variância da variável de resposta (R2 = XX,XX). VarIndep1, medida como/em [unidade ou o que é o 0 e o que é 1] tem uma relação significativa com o erro (b = [yy,yy; zz,zz], IC com 95%), assim como VarIndep2 medida como [unidade ou o que é o 0 e o que é 1] (b = [yy,yy; zz,zz], IC com 95%). O aumento de 1 unidade de VarIndep1 produz uma mudança de xxx em VarDep, enquanto um aumento…
Produza aqui a sua versão desse texto, portanto:
Regressão simples foi utilizada para analisar se o número de docentes permanentes tem uma associação com a produção de artigos em programas de pós. Os resultados da regressão indicam que um modelo com o formato produção = -41,27 + 4,81.docentes explica-se 81,45% da variância da variável de resposta (R2 = 0,8145). O número de docentes tem uma relação grande com a produção (b = [4,27; 5,37], IC com 95%). O aumento de 1 unidade de docentes produz uma mudança de 4,81 na produção dos artigos.
Dito isso, o que significa a relação que você encontrou na prática para entendermos os programas de pós graduação no Brasil? E algum palpite de por que a relação que encontramos é forte?
Sendo assim o número de docentes num programa de pós graduação parece ser bastante ligado à produção de artigos. Um palpite é porque quanto mais professores no corpo docente, mais pessoas qualificadas para produzir artigos e também mais orientadores de mestrado e doutorado haverá. Como o mestrado e o doutorado são programas que são fortemente incentivados à escrita de artigos, os orientadores participam juntos de tais escritas.
modelo2 = lm(producao ~ docentes + mestrados_pprof + doutorados_pprof + tem_doutorado,
data = cacc_md)
tidy(modelo2, conf.int = TRUE, conf.level = 0.95)
## # A tibble: 5 × 7
## term estimate std.error statistic p.value conf.low conf.high
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 (Intercept) -39.5 17.7 -2.23 3.35e-2 -75.7 -3.29
## 2 docentes 4.39 0.539 8.14 4.38e-9 3.29 5.49
## 3 mestrados_pprof 0.0318 3.49 0.00913 9.93e-1 -7.09 7.15
## 4 doutorados_pprof 16.1 8.80 1.83 7.72e-2 -1.87 34.1
## 5 tem_doutoradoTRUE NA NA NA NA NA NA
glance(modelo2)
## # A tibble: 1 × 12
## r.squared adj.r.squared sigma statistic p.value df logLik AIC BIC
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 0.816 0.798 34.1 44.4 3.75e-11 3 -166. 342. 350.
## # … with 3 more variables: deviance <dbl>, df.residual <int>, nobs <int>
E se considerarmos também o número de alunos?
modelo2 = lm(producao ~ docentes + mestrados + doutorados, data = cacc)
tidy(modelo2, conf.int = TRUE, conf.level = 0.95)
## # A tibble: 4 × 7
## term estimate std.error statistic p.value conf.low conf.high
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 (Intercept) -14.4 7.45 -1.93 5.81e- 2 -29.2 0.504
## 2 docentes 3.50 0.460 7.61 1.02e-10 2.58 4.42
## 3 mestrados -0.195 0.0816 -2.39 1.96e- 2 -0.358 -0.0322
## 4 doutorados 1.00 0.183 5.47 6.87e- 7 0.636 1.37
glance(modelo2)
## # A tibble: 1 × 12
## r.squared adj.r.squared sigma statistic p.value df logLik AIC BIC
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 0.871 0.865 24.0 155. 1.42e-30 3 -334. 677. 689.
## # … with 3 more variables: deviance <dbl>, df.residual <int>, nobs <int>
Visualizar o modelo com muitas variáveis independentes fica mais difícil
para_plotar_modelo = cacc %>%
data_grid(producao = seq_range(producao, 10), # Crie um vetor de 10 valores no range
docentes = seq_range(docentes, 4),
# mestrados = seq_range(mestrados, 3),
mestrados = median(mestrados),
doutorados = seq_range(doutorados, 3)) %>%
add_predictions(modelo2)
glimpse(para_plotar_modelo)
## Rows: 120
## Columns: 5
## $ producao <dbl> 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.000…
## $ docentes <dbl> 8.25000, 8.25000, 8.25000, 27.91667, 27.91667, 27.91667, 47…
## $ mestrados <int> 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,…
## $ doutorados <dbl> 0, 76, 152, 0, 76, 152, 0, 76, 152, 0, 76, 152, 0, 76, 152,…
## $ pred <dbl> 3.199123, 79.257725, 155.316327, 72.026777, 148.085378, 224…
para_plotar_modelo %>%
ggplot(aes(x = docentes, y = pred)) +
geom_line(aes(group = doutorados, colour = doutorados)) +
geom_point(data = cacc, aes(y = producao, colour = doutorados))
Considerando agora esses três fatores, o que podemos dizer sobre como cada um deles se relaciona com a produção de um programa de pós em CC? E sobre o modelo? Ele explica mais que o modelo 1?
EXPLICAÇÃO: Regressão múltipla foi utilizada para analisar se o número de docentes permanentes, o número de teses doutorado e o número de dissertações de mestrado tem uma associação com produção de artigos na pós graduação. Os resultados da regressão indicam que um modelo com os 3 preditores no formato produção = -14,37 + 3,5.docentes + 1.doutorados - 0,19.mestrados explicam 86,5% da variância da variável de resposta (R2 = 0,865). O número de docentes permanentes, medido em unidades tem uma relação grande com a produção (b = [2,58; 4,41], IC com 95%), há uma relação positiva com o número de teses de alunos de doutorado medido (b = [0,63; 1,37], IC com 95%) e a relação irrelevante do número de dissertações de mestrado medido ( b = [-0,36, -0,03], IC com 95%). O aumento de 1 unidade dos docentes permanentes produz uma mudança de 3,5 na produção de artigos, um aumento de 1 unidade nos testes do doutorado produz uma mudança de 1 e o mesmo aumento nos dissertações de mestrado produz uma mudança de -0,19 na produção de artigos. Sendo um modelo com mais profundidade que o modelo1 é mais claro o entedimento da influência do número de docentes, mestrados e doutorados na produção. É possível perceber que o número de doutorandos tem mais peso que o número de mestrandos, mas no mundo real não é possível ter doutorados num programa sem mestrados. Além disso essa relação pode dar base à teoria de que em geral doutorandos passam mais tempo (o dobro que os mestrandos) produzindo artigos.
Diferente de medirmos produção (total produzido), é medirmos produtividade (produzido / utilizado). Abaixo focaremos nessa análise. Para isso crie um modelo que investiga como um conjunto de fatores que você julga que são relevantes se relacionam com a produtividade dos programas. Crie um modelo que avalie como pelo menos 3 fatores se relacionam com a produtividade de um programa. Pode reutilizar fatores que já definimos e analizamos para produção. Mas cuidado para não incluir fatores que sejam função linear de outros já incluídos (ex: incluir A, B e um tercero C=A+B)
Produza abaixo o modelo e um texto que comente (i) o modelo, tal como os que fizemos antes, e (ii) as implicações - o que aprendemos sobre como funcionam programas de pós no brasil?.
Inicialmente, vamos analisar a correlação entre a produtividade e os demais fatores candidatos a comporem o modelo. O fator produção não foi escolhido por possuir relação direta com a produtividade.
Podemos tentar visualizar uma relação entre estas variáveis, assim como calcular a correlação entre estes fatores e a produtividade.
v1 <- cacc %>%
ggplot(aes(x = produtividade, y = docentes)) +
geom_point()
v2 <- cacc %>%
ggplot(aes(x = produtividade, y = mestrados)) +
geom_point()
v3 <- cacc %>%
ggplot(aes(x = produtividade, y = doutorados)) +
geom_point()
v4 <- cacc %>%
ggplot(aes(x = produtividade, y = tem_doutorado)) +
geom_point()
v5 <- cacc %>%
ggplot(aes(x = produtividade, y = mestrados_pprof)) +
geom_point()
v6 <- cacc %>%
ggplot(aes(x = produtividade, y = doutorados_pprof)) +
geom_point()
grid.arrange(v1, v2, v3, v4, v5, v6)
cor(cacc$produtividade, cacc$docentes)
## [1] 0.5569155
cor(cacc$produtividade, cacc$mestrados)
## [1] 0.43947
cor(cacc$produtividade, cacc$doutorados)
## [1] 0.5935663
cor(cacc$produtividade, cacc$tem_doutorado)
## [1] 0.648426
cor(cacc$produtividade, cacc$mestrados_pprof)
## [1] 0.05179488
cor(cacc$produtividade, cacc$doutorados_pprof)
## [1] 0.6453018
Como podemos observar, existe possívelmente uma correlação moderada entre produtividade e docentes, mestrados, doutorados, tem_doutorado e doutorado_pprof. Sendo assim, vamos utilizar estes fatores para compor o modelo multivariado.
modelo_produtividade = lm(produtividade ~ docentes + mestrados + doutorados + tem_doutorado + doutorados_pprof, data = cacc)
tidy(modelo_produtividade, conf.int = TRUE, conf.level = 0.95)
## # A tibble: 6 × 7
## term estimate std.error statistic p.value conf.low conf.high
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 (Intercept) 1.42 0.333 4.26 0.0000643 0.756 2.09
## 2 docentes 0.0169 0.0207 0.817 0.417 -0.0244 0.0582
## 3 mestrados -0.00245 0.00340 -0.719 0.475 -0.00924 0.00434
## 4 doutorados 0.00549 0.0137 0.400 0.691 -0.0219 0.0329
## 5 tem_doutoradoTRUE 1.05 0.331 3.18 0.00225 0.390 1.71
## 6 doutorados_pprof 0.487 0.452 1.08 0.285 -0.414 1.39
glance(modelo_produtividade)
## # A tibble: 1 × 12
## r.squared adj.r.squared sigma statistic p.value df logLik AIC BIC
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 0.525 0.489 0.981 14.8 9.08e-10 5 -99.0 212. 228.
## # … with 3 more variables: deviance <dbl>, df.residual <int>, nobs <int>
Detalhamento: Regressão múltipla foi utilizada para analisar se docentes, doutorados, tem_doutorado (TRUE caso o progra tenha doutorado, FALSE cc.) e doutorados_pprof (doutorados por docentes) têm uma associação significativa com Produtividade. Os resultados da regressão indicam que um modelo com os 5 preditores no formato
produtividade = 1.42 + 0.02 ∗ docentes − 0.002 ∗ mestrados + 0.005 ∗ doutorados + 1.05 ∗ tem_doutorado + 0.49 ∗ doutorados_pprof
explicam 52,49% da variância da variável de resposta (\(R^{2} = 0.5249\)). O número de docentes, assim como o número de mestrados e de doutorados, tem uma relação baixa com a produtividade: (b = [-0,024; 0,058], IC com 95%) para docentes, (b = [-0,009; 0,004], IC com 95%) para mestrados e (b = [-0,022; 0,033], IC com 95%) para doutorados. No entanto, a variável tem_doutorado tem uma relação bem mais significativa com a produtividade (b = [0.39; 1.71], IC com 95%). Quanto a variável doutorados_pprof, vemos que esta possui uma relação um pouco maior com a produtividade se comparada com o número de docentes e de alunos (mestrados e doutorado), aproximadamente (b = [-0,41; 1.39], IC com 95%). Com estes detalhes, podemos inferir que o curso de pós-graduação possuir doutorado aumenta consideravelmente a produtividade (o aumento de 1 unidade em tem_doutorado implica em uma mudança de 1.05 na produtividade), sendo um impacto maior que os demais preditores (docentes, mestrados, doutorados e doutorados_pprof).
Como adicional, agora sabendo que tem_doutorado possui certo impacto na produtividade, podemos criar um modelo com os fatores producao e docentes de maneira a observar como estes 3 preditores explicam a variância da variável resposta, no caso, produtividade. Ainda mais porque a produtividade é dada em função destes dois últimos.
modelo_produtividade2 = lm(produtividade ~ producao + docentes + tem_doutorado, data = cacc)
tidy(modelo_produtividade2, conf.int = TRUE, conf.level = 0.95)
## # A tibble: 4 × 7
## term estimate std.error statistic p.value conf.low conf.high
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 (Intercept) 2.28 0.172 13.3 1.06e-20 1.94 2.63
## 2 producao 0.0291 0.00253 11.5 1.01e-17 0.0241 0.0342
## 3 docentes -0.0995 0.0133 -7.48 1.78e-10 -0.126 -0.0730
## 4 tem_doutoradoTRUE 0.951 0.170 5.58 4.36e- 7 0.611 1.29
glance(modelo_produtividade2)
## # A tibble: 1 × 12
## r.squared adj.r.squared sigma statistic p.value df logLik AIC BIC
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 0.821 0.813 0.593 106. 1.01e-25 3 -63.4 137. 148.
## # … with 3 more variables: deviance <dbl>, df.residual <int>, nobs <int>
Como observado, utilizando estas 3 variáveis como preditoras no formato
produtividade = 2.284 + 0.0291 ∗ producao − 0.0995 ∗ docentes + 0.951 ∗ tem_doutorado
há uma explicação de 82.1% da variância da variável de resposta (\(R^{2} = 0.8210\)), ainda com o fator tem_doutorado sendo o de maior significância.