Dados da CAPES sobre avaliação da pós-graduação

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_csv(here::here("data/cacc.csv"))
## Rows: 73 Columns: 31
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr  (4): Instituição, Programa, Sigla, Tem doutorado
## dbl (27): Nível, Docentes colaboradores, Docentes permanentes, Docentes visi...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
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                        <dbl> 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`            <dbl> 20, 23, 15, 5, 4, 10, 6, 136, 0, 24, 27, …
## $ `Resumos expandidos em conf` <dbl> 25, 24, 7, 10, 1, 68, 9, 13, 4, 6, 16, 5,…
## $ `Artigos em conf`            <dbl> 390, 284, 115, 73, 150, 269, 179, 0, 120,…
## $ Dissertacoes                 <dbl> 108, 77, 50, 25, 31, 75, 60, 129, 45, 3, …
## $ Teses                        <dbl> 14, 0, 0, 0, 0, 24, 5, 0, 0, 0, 29, 0, 0,…
## $ periodicos_A1                <dbl> 15, 19, 5, 1, 7, 21, 21, 0, 3, 8, 44, 0, …
## $ periodicos_A2                <dbl> 19, 21, 11, 1, 4, 32, 13, 0, 9, 2, 23, 2,…
## $ periodicos_B1                <dbl> 19, 38, 7, 3, 6, 26, 16, 2, 6, 4, 32, 4, …
## $ periodicos_B2                <dbl> 1, 12, 2, 6, 0, 0, 11, 0, 0, 2, 1, 0, 0, …
## $ periodicos_B3                <dbl> 3, 16, 2, 2, 3, 16, 15, 0, 4, 6, 9, 0, 2,…
## $ periodicos_B4                <dbl> 0, 4, 0, 3, 3, 0, 1, 3, 1, 6, 0, 0, 4, 5,…
## $ periodicos_B5                <dbl> 10, 16, 8, 4, 12, 4, 16, 2, 6, 2, 11, 0, …
## $ periodicos_C                 <dbl> 9, 34, 12, 5, 2, 3, 11, 9, 5, 10, 16, 1, …
## $ periodicos_NA                <dbl> 7, 15, 8, 11, 12, 6, 19, 31, 7, 14, 19, 0…
## $ per_comaluno_A1              <dbl> 4, 1, 0, 0, 1, 7, 5, 0, 1, 0, 10, 0, 0, 2…
## $ per_comaluno_A2              <dbl> 5, 5, 5, 0, 2, 15, 3, 0, 3, 0, 3, 0, 0, 1…
## $ per_comaluno_B1              <dbl> 4, 2, 5, 2, 2, 14, 6, 0, 2, 0, 17, 0, 1, …
## $ per_comaluno_B2              <dbl> 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,…
## $ per_comaluno_B3              <dbl> 2, 2, 0, 1, 0, 7, 9, 0, 2, 0, 4, 0, 0, 1,…
## $ per_comaluno_B4              <dbl> 0, 0, 0, 0, 2, 0, 1, 0, 1, 3, 0, 0, 2, 0,…
## $ per_comaluno_B5              <dbl> 5, 0, 4, 0, 8, 3, 6, 0, 4, 0, 4, 0, 2, 5,…
## $ per_comaluno_C               <dbl> 6, 5, 3, 1, 2, 3, 7, 1, 2, 4, 8, 0, 11, 3…
## $ per_comaluno_NA              <dbl> 6, 14, 2, 2, 9, 3, 6, 4, 5, 1, 10, 0, 17,…

Produção e produtividade de artigos

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)

EDA

skimr::skim(cacc)
Data summary
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.
## # ℹ 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 tem uma associação significativa com produção. Os resultados da regressão indicam que um modelo com os 2 preditores no formato produção = -41.27 + 4.81*docentes explicam 81,46% da variância da variável de resposta (R2 = 0,8146). Número de docentes, medida em unidade tem uma relação significativa com o erro (b = [4,26; 5,35], IC com 95%). O aumento de 1 unidade de número de docentes produz uma mudança de 4,81x em produção.


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?


Analisando os resultados podemos ver que existe uma correlação positiva forte entre o número de docentes por programa de pós-graduação (PPG) e a quantidade de artigos publicados. Essa associação é plausível, uma vez que o aumento no número de docentes tende a resultar em um maior número de estudantes de mestrado e/ou doutorado engajados em pesquisas, o que, por sua vez, leva a uma maior produção de artigos.


Mais fatores

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.
## # ℹ 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.
## # ℹ 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  <dbl> 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?


docentes + mestrandos_pprof + doutorandos_pprof

Regressão múltipla foi utilizada para analisar se o número de docentes, mestrandos_pprof e doutorandos_pprof tem uma associação significativa com produção. Os resultados da regressão indicam que um modelo com os 3 preditores no formato produção = -39.47 + 4.38 * docentes + 0.03 * mestrandos_pprof + 16.11 * doutorandos explicam 81,62% da variância da variável de resposta (R2 = 0,8162). Docentes, medida em unidade, tem uma relação significativa com o erro (b = [3.29; 5.49], IC com 95%), assim como mestrados_pprof, medida em unidade, (b = [-7.09; 7.15], IC com 95%) e doutorados_pprof, medida em unidade, (b = [-1.87; 34.08], IC com 95%). O aumento de 1 unidade de docentes produz uma mudança de 4.38x em produção, enquanto um aumento de 1 unidade de mestrandos_pprof provoca uma redução de 0.03x em produção e, por fim, um aumento de 1 unidade de doutorandos_pprof produz um aumento de 16x em produção.

docentes + mestrandos + doutorandos

Regressão múltipla foi utilizada para analisar se o número de docentes, mestrandos e doutorandos tem uma associação significativa com produção. Os resultados da regressão indicam que um modelo com os 3 preditores no formato produção = -14.37 + 3.5 * docentes -0.19 * mestrandos + 1 * doutorandos explicam 87,06% da variância da variável de resposta (R2 = 0,8706). Docentes, medida em unidade, tem uma relação significativa com o erro (b = [2.58; 4.41], IC com 95%), assim como mestrandos, medida em unidade, (b = [-0.357; -0.032], IC com 95%) e doutorandos, medida em unidade, (b = [0.63; 1.36], IC com 95%). O aumento de 1 unidade de docentes produz uma mudança de 3,5x em produção, enquanto um aumento de 1 unidade de mestrandos provoca uma redução de 0,19x em produção e, por fim, um aumento de 1 unidade de doutorandos produz um aumento de 1x em produção.


Em resumo, o modelo “produção ~ docentes + mestrandos + doutorandos” demonstrou ser mais eficaz na explicação da variável produção em comparação com outros modelos. Esse modelo explicou 87,06% da variação observada na produção, em contraste com os outros modelos que explicaram 81,62% e 81,46%, respectivamente.

Analisando os resultados podemos o aumento no número de docentes e doutorandos tem um impacto positivo na quantidade de publicações. Por outro lado, um aumento no número de mestrandos está associado a um impacto negativo na produção de artigos. Isso pode ser explicado pelo fato de que os doutorandos, devido ao seu tempo maior de dedicação à pesquisa, tendem a ter uma produção científica mais elevada.


Agora produtividade

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)

Meu modelo

cacc = cacc %>%
    mutate(tem_doutorado = as.numeric(tem_doutorado))

meu_modelo = lm(produtividade ~ tem_doutorado + mestrados_pprof + doutorados_pprof, data = cacc)

tidy(meu_modelo, 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)        1.47      0.281      5.24  0.00000169    0.912     2.03 
## 2 tem_doutorado      1.10      0.297      3.71  0.000418      0.508     1.69 
## 3 mestrados_pprof    0.0180    0.0638     0.281 0.779        -0.109     0.145
## 4 doutorados_pprof   0.730     0.204      3.58  0.000642      0.323     1.14
glance(meu_modelo)
## # 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.513         0.492 0.978      24.3 7.85e-11     3  -99.9  210.  221.
## # ℹ 3 more variables: deviance <dbl>, df.residual <int>, nobs <int>

Regressão múltipla foi utilizada para analisar se o número de docentes, mestrandos e doutorandos tem uma associação significativa com produtividade. Os resultados da regressão indicam que um modelo com os 3 preditores no formato produtividade = 1.47 + 1.09 * tem_doutorado - 0.017 * mestrados_pprof + 0.73 * doutorados_pprof explicam 51,33% da variância da variável de resposta (R2 = 0.5133). tem_doutorando (binária, onde 1=True e 0=False) tem uma relação significativa com o erro (b = [0.50; 1.69], IC com 95%), assim como doutorado_pprof, medida em unidade, (b = [0.32; 1.13], IC com 95%), enquanto mestrados_pprof, medida em unidade, (b = [-0.109; 0.145], IC com 95%) não apresenta tal relação. O aumento de 1 unidade de tem_doutorado produz uma mudança de 1.09x em produtividade, enquanto um aumento de 1 unidade de mestrados_pprof provoca uma redução de 0.017x em produtividade e, por fim, um aumento de 1 unidade de doutorados_pprof produz um aumento de 0.73x em produtividade.


Analisando os resultados obtidos, podemos perceber que a presença de doutorandos e doutorandos profissionais desempenha um papel significativo na produtividade dos programas de pós-graduação no Brasil. Por outro lado, a presença de mestrandos nos programas de pós-graduação não demonstra uma influência estatisticamente significativa na produtividade.


Com base em todas as análises realizadas, podemos perceber a importância de investir em programas de doutorado e estimular a participação de estudantes nesses programas acadêmicos. Afinal, os resultados destacam o papel fundamental do número de docentes e da presença de doutorandos/doutores no funcionamento dos programas de pós-graduação no Brasil. dessa forma, evidenciando a importancia de ampliar o número de docentes e fortalecer os programas de doutorado a fim de impulsionar a produção e a produtividade acadêmica nos programas de pós-graduação no país.