## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.2     ✔ readr     2.1.4
## ✔ forcats   1.0.0     ✔ stringr   1.5.0
## ✔ ggplot2   3.4.2     ✔ tibble    3.2.1
## ✔ lubridate 1.9.2     ✔ tidyr     1.3.0
## ✔ purrr     1.0.1     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
## 
## Attaching package: 'modelr'
## 
## 
## The following object is masked from 'package:broom':
## 
##     bootstrap

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_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,…

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)
glance(modelo1)

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 múltipla foi utilizada para analisar a relação entre o número de docentes permanentes e a produção de artigos em programas de pós-graduação em Ciência da Computação no Brasil, com base em uma amostra representativa. Os resultados da regressão indicam que um modelo com o número de docentes permanentes como preditor explica aproximadamente 81.46% da variância na produção de artigos (R2 = 0.8146).

O valor ajustado de R2 (R2 ajustado) é de aproximadamente 81.20% (adj. R2 = 0.8119), levando em consideração o número de graus de liberdade e o tamanho da amostra. A estimativa do erro-padrão residual (sigma) é de aproximadamente 28.37407.

O teste estatístico associado ao modelo indica que a relação entre o número de docentes permanentes e a produção de artigos é altamente significativa (F = 311.9322, p < 0.001). Isso significa que a variação observada na produção de artigos é melhor explicada pela presença de docentes permanentes do que pelo acaso.

O valor de log-likelihood é de -346.7883, que representa a log-verossimilhança do modelo ajustado.

Esses resultados indicam que o modelo de regressão é estatisticamente significativo e possui uma boa capacidade de explicar a relação entre o número de docentes permanentes e a produção de artigos em programas de pós-graduação em Ciência da Computação no Brasil.

No contexto dos programas de pós-graduação em Ciência da Computação no Brasil, esses resultados sugerem que o número de docentes permanentes desempenha um papel fundamental na produtividade acadêmica. É essencial investir na contratação e manutenção de docentes qualificados para promover a pesquisa científica de qualidade e fortalecer a visibilidade dos programas de pós-graduaçã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?

A relação encontrada entre o número de docentes permanentes e a produção de artigos em programas de pós-graduação em Ciência da Computação no Brasil indica que há uma associação positiva e significativa entre essas variáveis. Isso significa que um aumento no número de docentes permanentes está associado a um aumento na produção de artigos pelos programas de pós-graduação.

Essa relação é relevante para entender os programas de pós-graduação no Brasil, pois destaca a importância de contar com um corpo docente robusto e experiente para impulsionar a produtividade acadêmica. Os docentes permanentes desempenham um papel crucial na orientação dos alunos, na condução de pesquisas e na geração de conhecimento na área de Ciência da Computação. Ao ter um maior número de docentes permanentes disponíveis, os programas de pós-graduação podem oferecer uma melhor supervisão aos alunos, promover um ambiente de pesquisa mais estimulante e proporcionar maior suporte acadêmico aos estudantes.

Existem alguns possíveis motivos para a relação encontrada ser forte. Primeiramente, os docentes permanentes geralmente possuem uma sólida formação acadêmica, vasta experiência em pesquisa e conhecimento especializado em suas áreas de atuação. Essa expertise pode contribuir para a orientação de pesquisas de alta qualidade e aumentar a probabilidade de os resultados serem publicados em forma de artigos científicos.

Além disso, os docentes permanentes costumam ter uma rede de contatos acadêmicos estabelecida, o que pode facilitar colaborações e parcerias com outros pesquisadores, tanto nacional quanto internacionalmente. Essas colaborações podem enriquecer os projetos de pesquisa, promover a troca de conhecimentos e recursos, e ampliar as oportunidades de publicação de artigos em revistas de renome.

A forte relação entre o número de docentes permanentes e a produção de artigos também pode ser atribuída ao fato de que esses docentes têm uma dedicação exclusiva aos programas de pós-graduação, podendo se concentrar integralmente na orientação dos alunos e na realização de pesquisas. Isso permite um acompanhamento mais próximo e uma maior disponibilidade de suporte acadêmico, o que pode resultar em uma maior eficiência e produtividade por parte dos estudantes.

Mais fatores

modelo2 = lm(producao ~ docentes + mestrados_pprof + doutorados_pprof + tem_doutorado, 
             data = cacc_md)

tidy(modelo2, conf.int = TRUE, conf.level = 0.95)
glance(modelo2)

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)
glance(modelo2)

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?


Com base nos dados fornecidos, o modelo de regressão múltipla demonstra um ajuste bastante satisfatório. O coeficiente de determinação (R²) ajustado para o modelo é de 0.8706642, o que indica que as variáveis “docentes”, “mestrados” e “doutorados” juntas explicam aproximadamente 87.07% da variância na produção do programa de pós-graduação em Ciência da Computação (CC) no Brasil.

Além disso, o valor do R² ajustado de 0.8650409 indica que o modelo possui um bom ajuste, considerando o número de variáveis incluídas e a quantidade de dados disponíveis. Quanto mais próximo o R² ajustado estiver de 1, melhor o modelo se ajusta aos dados.

O valor de sigma, que representa o desvio padrão residual estimado, é de 24.03905. Esse valor indica a dispersão média dos resíduos do modelo em relação à linha de regressão. Quanto menor o valor de sigma, mais próximos os pontos de dados estão da linha de regressão e melhor é o ajuste do modelo.

O valor do teste estatístico, com um p-value de 1.416348e-30, indica que o modelo é estatisticamente significativo. Isso significa que há evidências suficientes para rejeitar a hipótese nula de que as variáveis independentes não têm efeito sobre a produção do programa de pós-graduação em CC.

Os resultados do modelo também fornecem informações sobre a qualidade geral do ajuste. O valor do log-likelihood é de -333.6422, e quanto mais próximo esse valor estiver de zero, melhor o ajuste do modelo aos dados. O valor do AIC (677.2845) e do BIC (688.7368) são critérios de informação que ajudam a selecionar o modelo mais adequado. Nesse caso, valores menores indicam um melhor ajuste do modelo. A deviance (39873.45) e o número de graus de liberdade residual (69) são medidas adicionais do ajuste do modelo.

Em resumo, o modelo de regressão múltipla com as variáveis “docentes”, “mestrados” e “doutorados” apresenta um bom ajuste para explicar a produção do programa de pós-graduação em CC no Brasil. Essas variáveis em conjunto são capazes de explicar uma porcentagem substancial da variabilidade observada na produção, e o modelo como um todo é estatisticamente significativo.


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)

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?.

Modelo de regressão linear

modelo3 <- lm(produtividade ~ docentes + producao + mestrados_pprof + doutorados_pprof + tem_doutorado, data = cacc)
summary(modelo3)$coef
##                       Estimate  Std. Error     t value     Pr(>|t|)
## (Intercept)        2.250030732 0.232441531  9.67998584 2.354003e-14
## docentes          -0.099397357 0.013518067 -7.35292658 3.525043e-10
## producao           0.029174226 0.002755085 10.58922812 5.991613e-16
## mestrados_pprof    0.008447109 0.039332666  0.21476064 8.306063e-01
## doutorados_pprof  -0.010399197 0.158682757 -0.06553451 9.479436e-01
## tem_doutoradoTRUE  0.956709221 0.186596480  5.12715578 2.703292e-06
tidy(modelo3, conf.int = TRUE, conf.level = 0.95)
glance(modelo3)

No código acima, construímos um modelo de regressão linear utilizando as variáveis explicativas docentes, producao, mestrados_pprof, doutorados_pprof e tem_doutorado para prever a produtividade dos programas de pós-graduação em CC. O sumário do modelo apresenta os coeficientes estimados para cada variável.

Com base nos resultados do modelo, podemos inferir a relação entre as variáveis explicativas e a produtividade dos programas. Por exemplo, se o coeficiente estimado para docentes for positivo, indica que um aumento no número de docentes permanentes está associado a um aumento na produtividade. O mesmo raciocínio pode ser aplicado às demais variáveis.

O modelo de regressão linear utilizado para analisar a produtividade dos programas de pós-graduação em Ciência da Computação no Brasil apresenta um R² ajustado de 0.808, o que indica que cerca de 80.8% da variabilidade da produtividade pode ser explicada pelas variáveis incluídas no modelo.

Os resultados também indicam que o modelo é estatisticamente significativo, com um valor de p muito baixo (1.052079e-23). Isso sugere que pelo menos uma das variáveis explicativas possui uma relação significativa com a produtividade dos programas.

O valor do coeficiente de determinação ajustado (0.808) indica que o modelo tem um bom poder de explicação da variação na produtividade dos programas. Isso significa que as variáveis incluídas no modelo conseguem explicar, em grande parte, as diferenças observadas na produtividade entre os programas de pós-graduação em Ciência da Computação.

Ao considerar os valores dos coeficientes estimados para cada variável, podemos tirar algumas conclusões sobre como os fatores impactam a produtividade dos programas:

  • O número de docentes permanentes (docentes) apresenta um coeficiente estimado de -0.099, com um valor p muito baixo (3.525043e-10). Isso sugere que um aumento no número de docentes permanentes está associado a uma redução na produtividade dos programas.

  • A produção de artigos em conferências relevantes (producao) tem um coeficiente estimado de 0.029, com um valor p muito baixo (5.991613e-16). Isso indica que um aumento na produção de artigos em conferências está relacionado a um aumento na produtividade dos programas.

  • A presença de um programa de doutorado (tem_doutoradoTRUE) é significativa, com um coeficiente estimado de 0.957 e um valor p muito baixo (2.703292e-06). Isso sugere que programas que oferecem programa de doutorado apresentam uma produtividade maior em relação aos programas que não oferecem esse nível.

  • As variáveis mestrados_pprof e doutorados_pprof, que representam a proporção de dissertações de mestrado e teses de doutorado em relação ao número de docentes, não apresentam uma relação significativa com a produtividade dos programas.

Em resumo, com base nesses resultados, podemos concluir que o número de docentes permanentes, a produção de artigos em conferências relevantes e a presença de um programa de doutorado são fatores que influenciam a produtividade dos programas de pós-graduação em Ciência da Computação no Brasil. Aumentar o número de docentes e incentivar a produção de artigos em conferências podem contribuir para o aumento da produtividade, enquanto oferecer um programa de doutorado também desempenha um papel importante nesse sentido.