── Attaching core tidyverse packages ────────────────────────────────────────────────────────── tidyverse 2.0.0 ──
✔ dplyr 1.1.1 ✔ 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 ]8;;http://conflicted.r-lib.org/conflicted package]8;; to force all conflicts to become errors
Attaching package: ‘modelr’
The following object is masked from ‘package:broom’:
bootstrap
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", "UNIVERSIDADE FEDERAL DO PARÁ", "UNIVER…
$ Programa <chr> "INFORMÁTICA (12001015012P2)", "CIÊNCIA DA COMPUTAÇÃO (15001016047P9)", "CI…
$ Nível <int> 5, 4, 3, 3, 3, 5, 4, 3, 3, 3, 5, 3, 3, 3, 4, 6, 3, 3, 3, 3, 3, 3, 4, 3, 4, …
$ Sigla <chr> "UFAM", "UFPA", "UFMA", "UEMA", "FUFPI", "UFC", "UNIFOR", "UECE/Prof", "UEC…
$ `Tem doutorado` <chr> "Sim", "Sim", "Não", "Não", "Não", "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, 6.25, 2.75, 0.75, 2.25, 2.00, 4.2…
$ `Docentes permanentes` <dbl> 24.75, 14.00, 10.00, 14.00, 9.50, 20.75, 16.00, 15.75, 8.50, 9.00, 26.25, 8…
$ `Docentes visitantes` <dbl> 0.00, 0.00, 0.00, 0.00, 0.00, 0.75, 0.50, 1.00, 0.50, 0.00, 0.00, 0.00, 0.5…
$ `Resumos em conf` <int> 20, 23, 15, 5, 4, 10, 6, 136, 0, 24, 27, 4, 30, 20, 5, 14, 49, 63, 33, 3, 8…
$ `Resumos expandidos em conf` <int> 25, 24, 7, 10, 1, 68, 9, 13, 4, 6, 16, 5, 25, 29, 28, 81, 65, 38, 14, 6, 18…
$ `Artigos em conf` <int> 390, 284, 115, 73, 150, 269, 179, 0, 120, 92, 389, 60, 127, 322, 338, 763, …
$ Dissertacoes <int> 108, 77, 50, 25, 31, 75, 60, 129, 45, 3, 108, 12, 94, 108, 104, 433, 92, 26…
$ Teses <int> 14, 0, 0, 0, 0, 24, 5, 0, 0, 0, 29, 0, 0, 0, 40, 144, 0, 0, 0, 0, 0, 0, 20,…
$ periodicos_A1 <int> 15, 19, 5, 1, 7, 21, 21, 0, 3, 8, 44, 0, 6, 21, 20, 93, 70, 16, 16, 0, 22, …
$ periodicos_A2 <int> 19, 21, 11, 1, 4, 32, 13, 0, 9, 2, 23, 2, 6, 20, 15, 43, 23, 5, 5, 1, 12, 4…
$ periodicos_B1 <int> 19, 38, 7, 3, 6, 26, 16, 2, 6, 4, 32, 4, 2, 11, 29, 51, 29, 11, 8, 1, 14, 6…
$ periodicos_B2 <int> 1, 12, 2, 6, 0, 0, 11, 0, 0, 2, 1, 0, 0, 4, 1, 10, 6, 1, 2, 0, 1, 3, 2, 1, …
$ periodicos_B3 <int> 3, 16, 2, 2, 3, 16, 15, 0, 4, 6, 9, 0, 2, 6, 16, 20, 13, 9, 2, 0, 12, 0, 6,…
$ periodicos_B4 <int> 0, 4, 0, 3, 3, 0, 1, 3, 1, 6, 0, 0, 4, 5, 1, 3, 3, 5, 3, 0, 4, 2, 2, 2, 2, …
$ periodicos_B5 <int> 10, 16, 8, 4, 12, 4, 16, 2, 6, 2, 11, 0, 4, 16, 9, 29, 18, 16, 18, 0, 3, 15…
$ periodicos_C <int> 9, 34, 12, 5, 2, 3, 11, 9, 5, 10, 16, 1, 14, 28, 8, 19, 24, 23, 9, 0, 7, 26…
$ periodicos_NA <int> 7, 15, 8, 11, 12, 6, 19, 31, 7, 14, 19, 0, 27, 26, 18, 29, 19, 21, 25, 0, 7…
$ per_comaluno_A1 <int> 4, 1, 0, 0, 1, 7, 5, 0, 1, 0, 10, 0, 0, 2, 8, 63, 1, 1, 3, 0, 5, 0, 3, 1, 1…
$ per_comaluno_A2 <int> 5, 5, 5, 0, 2, 15, 3, 0, 3, 0, 3, 0, 0, 1, 11, 22, 0, 0, 0, 0, 2, 0, 13, 2,…
$ per_comaluno_B1 <int> 4, 2, 5, 2, 2, 14, 6, 0, 2, 0, 17, 0, 1, 5, 18, 37, 0, 1, 1, 0, 2, 0, 9, 0,…
$ per_comaluno_B2 <int> 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 0, 0, 0, 0, 1, 0, 1, 0, 0, …
$ per_comaluno_B3 <int> 2, 2, 0, 1, 0, 7, 9, 0, 2, 0, 4, 0, 0, 1, 10, 12, 0, 0, 0, 0, 2, 0, 6, 4, 0…
$ per_comaluno_B4 <int> 0, 0, 0, 0, 2, 0, 1, 0, 1, 3, 0, 0, 2, 0, 0, 2, 0, 2, 0, 0, 0, 1, 0, 1, 1, …
$ per_comaluno_B5 <int> 5, 0, 4, 0, 8, 3, 6, 0, 4, 0, 4, 0, 2, 5, 3, 17, 1, 4, 5, 0, 0, 5, 2, 0, 1,…
$ per_comaluno_C <int> 6, 5, 3, 1, 2, 3, 7, 1, 2, 4, 8, 0, 11, 3, 8, 13, 4, 5, 2, 0, 0, 13, 6, 1, …
$ per_comaluno_NA <int> 6, 14, 2, 2, 9, 3, 6, 4, 5, 1, 10, 0, 17, 6, 7, 17, 0, 3, 5, 0, 1, 8, 6, 1,…
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)
── Data Summary ────────────────────────
Values
Name cacc
Number of rows 73
Number of columns 8
_______________________
Column type frequency:
logical 1
numeric 7
________________________
Group variables None
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…
Regressão simples foi utilizada para analisar se docentes têm uma associação significativa com a produção de artigos (produção do programa). Os resultados de regressão indicam que um modelo com 1 preditor no formato produção do programa = -41.27 + 4,81 * docentes explica 81,46% da variança da variável de resposta (R² = 0,81458). A quantidade de docentes, tem uma relação significativa com o erro(b = [4,27;5,36], 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?
Com base na análise realizada, a relação encontrada entre o número de docentes e a produção de artigos nos programas de pós-graduação em ciência da computação no Brasil indica que um aumento no número de docentes está associado a um aumento na produção de artigos. Um palpite é que, isso sugere que os programas de pós-graduação que possuem um maior corpo docente tendem a ter uma maior produtividade acadêmica em termos de publicações de artigos.
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.00000, 0.00000, 0.00000, 0.00000, 0.0…
$ docentes <dbl> 8.25000, 8.25000, 8.25000, 27.91667, 27.91667, 27.91667, 47.58333, 47.58333, 47.58333, 67.250…
$ mestrados <int> 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 5…
$ doutorados <dbl> 0, 76, 152, 0, 76, 152, 0, 76, 152, 0, 76, 152, 0, 76, 152, 0, 76, 152, 0, 76, 152, 0, 76, 15…
$ pred <dbl> 3.199123, 79.257725, 155.316327, 72.026777, 148.085378, 224.143980, 140.854430, 216.913032, 2…
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 teses doutorado, o número de dissertações de mestrado e número de docentes 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:
explicam 87,06% da variância da variável de resposta (R2 = 0,8706). Portanto, podemos afirmar o seguinte:
O modelo indica que o número de docentes tem uma relação positiva e significativa com a produção de artigos na pós-graduação (b = [2,58; 4,41], IC com 95%). Para cada unidade adicional no número de docentes, espera-se um aumento de 3,5 na produção de artigos.
O número de teses de doutorado também apresenta uma relação positiva e significativa com a produção de artigos (b = [0,63; 1,37], IC com 95%). Para cada unidade adicional no número de teses de doutorado, espera-se um aumento de 1 na produção de artigos.
Além disso, os resultados indicam que não foi encontrada uma relação significativa entre o número de dissertações de mestrado e a produção de artigos (b = [-0,36; -0,032], IC com 95%). Isso sugere que o aumento no número de dissertações de mestrado não tem um efeito substancial na produção de artigos.
Logo, com base nos resultados da regressão múltipla, observamos que o número de docentes e de doutorados tem um efeito positivo e significativo na produção de artigos na pós-graduação. Além disso, o modelo 2, possui um R² maior (0,8706) em comparação com o modelo 1(R² =. 0,8145) , indicando que ele explica melhor a variação na produção de artigos. Esses resultados sugerem que investimentos no aumento do número de docentes e na formação de doutores podem contribuir para um aumento na produtividade científica da pós-graduação.
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?.
Utilizaremos o modelo de regressão linear múltipla, realizamos uma análise da produtividade em relação a quatro variáveis preditoras: tem_doutorado, doutorados_pprof, doutorados e doutorados.
modelo_prod = lm(produtividade ~ tem_doutorado + doutorados_pprof + doutorados + mestrados_pprof, data = cacc)
tidy(modelo_prod, conf.int = TRUE, conf.level = 0.95)
glance(modelo_prod)
Utilizando a regressão linear múltipla, investigamos a associação significativa entre as variáveis tem_doutorado, doutorados_pprof, mestrados_pprof e doutorados com a variável de resposta produtividade. Os resultados da regressão indicam que o modelo com os quatro preditores pode explicar 51,85% da variância na produtividade (R² = 0,5185).
A variável doutorados apresenta uma relação pouco significativa com a produtividade. O intervalo de confiança de 95% para o coeficiente é [-0,01; 0,02];
Observamos uma relação pouco significativa entre o número de doutorados_pprof e a produtividade. O intervalo de confiança de 95% para o coeficiente é [-0,37; 1,24];
A variável mestrados_pprof mostra uma relação pouco significativa com a produtividade. O intervalo de confiança de 95% para o coeficiente é [-0,12; 0,14].
O fator tem_doutorado demonstra uma relação mais significativa com a produtividade, mostrando que a presença de doutorado está associada a um aumento na produtividade. O intervalo de confiança de 95% para o coeficiente é [0,54; 1,74]. Mais especificamente, para cada unidade adicional na variável tem_doutorado, observamos um aumento estimado de 1,13 na produtividade. Essa relação significativa sugere que a presença de doutorado tem um impacto positivo na produtividade do curso de pós-graduação.