Resolução da prova de Computação Estatística - UNB


Introdução

Para responder as questões de 1 a 6, considere o banco de dados CO2, o qual contém informações sobre taxa de absorção de CO2 em plantas submetidas/não submetidas ao frio. O referido banco de dados está disponível no pacote base do R. Para acessá-lo, basta escrever CO2 no console do Rstudio.


Questão 1: Adicione uma nova coluna no banco de dados chamada uptake0 contendo o arredondamento da taxa de absorção do dióxido de carbono (variável uptake) para o inteiro mais próximo. Em seguida, ordene o banco da maior para a menor taxa de absorção de CO2. (Dica: Veja a função round).

# Carregamento dos dados:

dados <- CO2

# Carregamento do pacote necessário: 

library(tidyverse)

# Visão inicial dos dados:

head(dados)
##   Plant   Type  Treatment conc uptake
## 1   Qn1 Quebec nonchilled   95   16.0
## 2   Qn1 Quebec nonchilled  175   30.4
## 3   Qn1 Quebec nonchilled  250   34.8
## 4   Qn1 Quebec nonchilled  350   37.2
## 5   Qn1 Quebec nonchilled  500   35.3
## 6   Qn1 Quebec nonchilled  675   39.2
# Criando a coluna uptake0 arredondada e ordenar dados por uptake0 decrescente:

dados <- dados %>%
  mutate(uptake0 = round(uptake)) %>%
  arrange(desc(uptake0))

# Visualizando novamente os dados:

head(dados)
##   Plant   Type  Treatment conc uptake uptake0
## 1   Qn3 Quebec nonchilled 1000   45.5      46
## 2   Qn2 Quebec nonchilled 1000   44.3      44
## 3   Qn3 Quebec nonchilled  675   43.9      44
## 4   Qn3 Quebec nonchilled  500   42.9      43
## 5   Qn2 Quebec nonchilled  350   41.8      42
## 6   Qn3 Quebec nonchilled  350   42.1      42

Questão 2: Apresente as informações das plantas cuja respectiva variável uptake0 (que foi acrescida na questão 1) é múltipla de 10.

multp_10 <- dados %>%
  filter(uptake0 %% 10 == 0)

# Visualizando:

multp_10
##   Plant        Type  Treatment conc uptake uptake0
## 1   Qn1      Quebec nonchilled 1000   39.7      40
## 2   Qn3      Quebec nonchilled  250   40.3      40
## 3   Qc3      Quebec    chilled  675   39.6      40
## 4   Qn1      Quebec nonchilled  175   30.4      30
## 5   Qc1      Quebec    chilled  250   30.3      30
## 6   Mn1 Mississippi nonchilled  350   30.0      30
## 7   Mc1 Mississippi    chilled  500   19.5      20
## 8   Mc3 Mississippi    chilled 1000   19.9      20
## 9   Mc1 Mississippi    chilled   95   10.5      10

Questão 3: Faça um gráfico de dispersão da taxa de absorção de CO2 (variável uptake, eixo y) em função da concentração de CO2 no ambiente (variável conc, eixo x), acrescentando também a informação se houve ou não houve o frio aplicado (variável Treatment). De acordo com a análise do gráfico, há indícios de que o tratamento (o resfriamento) tenha tido algum efeito na taxa de absorção de CO2?

# Visualização através de um gráfico de dispersão: 

dados %>%
  ggplot(aes(x = conc, y = uptake, color = Treatment)) +
  geom_point(alpha= 0.8) + ggtitle("Relação entre a concentração de CO2 no ambiente e a taxa de absorção de CO2") + 
  xlab("Concentração de CO2 no ambiente") + ylab("Taxa de absorção de CO2")

Comentários: Conforme o gráfico, podemos observar que há uma diferença na taxa de absorção de CO2 entre as plantas que foram submetidas ao resfriamento (chilled) e aquelas que não foram (nonchilled). No geral, as plantas submetidas ao resfriamento tendem a apresentar uma menor taxa de absorção de CO2 em diferentes níveis de concentração de CO2 no ambiente. Essa tendência sugere que o tratamento de resfriamento pode ter um efeito negativo na eficiência de absorção de CO2 pelas plantas. No entanto, é importante realizar análises estatísticas adicionais para confirmar se essa diferença é estatisticamente significativa.


Questão 4: Acrescente no gráfico da Questão 3 duas linhas suaves que descrevem o comportamento dos dados submetidos ao Tratamento (resfriados) e não submetidos (não resfriados). De acordo com a análise do gráfico, há indícios de que o tratamento (o resfriamento) tenha tido algum efeito na taxa de absorção de CO2? (ou seja, sua interpretação da Questão 3 foi alterada com essa análise?). (Dica: Veja a função geom_smooth).

# Nova visualização:

dados %>%
  ggplot(aes(x = conc, y = uptake, color = Treatment)) +
  geom_smooth(alpha= 0.4) + 
  geom_point(alpha= 0.8) + ggtitle("Relação entre a concentração de CO2 no ambiente e a taxa de absorção de CO2") + 
  xlab("Concentração de CO2 no ambiente") + ylab("Taxa de absorção de CO2")

Comentários: Com a adição das linhas suaves ao gráfico, a interpretação inicial permanece consistente. Observamos que as plantas submetidas ao resfriamento (‘chilled’) tendem a ter uma taxa de absorção de CO2 menor em comparação com as plantas que não foram submetidas ao resfriamento (‘nonchilled’).


Questão 5: No gráfico da Questão 4 (ou se preferir, da questão 3) altere a cor dos pontos para azul (plantas resfriadas) e verde (plantas não resfriadas).

# Alterando a variável Treatment para o tipo fator:

dados$Treatment <- as.factor(dados$Treatment)


# Alterando a visualização: 

dados %>%
  ggplot(aes(x = conc, y = uptake, color = Treatment)) +
  geom_smooth(alpha = 0.4) + 
  geom_point(alpha = 0.8) + 
  ggtitle("Relação entre a concentração de CO2 no ambiente e a taxa de absorção de CO2") + 
  xlab("Concentração de CO2 no ambiente") + 
  ylab("Taxa de absorção de CO2") + 
  scale_color_manual(values = c("chilled" = "blue", "nonchilled" = "green"))  


Questão 6: Calcule a taxa média de absorção de CO2 (variável uptake) para cada tratamento (plantas submetidas ao resfriamento e não submetidas ao resfriamento).

# Medidas resumo para a taxa de absorção de CO2 (variável uptake):

medidas_resumo_taxa_abs_co2 <- dados %>%
  group_by(Treatment) %>%
  summarise(media = mean(uptake),
            mediana = median(uptake),
            desvio_padrao = sd(uptake),
            maximo = max(uptake),
            minimo = min(uptake))

# Exibindo:

medidas_resumo_taxa_abs_co2
## # A tibble: 2 × 6
##   Treatment  media mediana desvio_padrao maximo minimo
##   <fct>      <dbl>   <dbl>         <dbl>  <dbl>  <dbl>
## 1 nonchilled  30.6    31.3          9.70   45.5   10.6
## 2 chilled     23.8    19.7         10.9    42.4    7.7
# Visualização através de boxplot:

dados %>%
  ggplot(aes(x = Treatment, y = uptake, fill = Treatment)) +
  geom_boxplot(alpha = 0.8, color = "black") +
  ggtitle("Distribuição da taxa de absorção de CO2 por tipo de tratamento") +
  xlab("Tratamento") + ylab("Taxa de absorção de co2") + 
  scale_fill_manual(name = "Status Tratamento",values = c("chilled" = "blue","nonchilled"="green"))

# Visualização através de um gráfico de densidade:

dados %>%
  ggplot(aes(x = uptake, fill = Treatment)) + 
  geom_density(color = "black", alpha = 0.8) + 
  ggtitle("Distribuição das taxas de absorção de co2 para cada tipo de tratamento") +
  scale_fill_manual(name = "Status tratamento", values = c("chilled" = "blue","nonchilled"="green")) + 
  facet_wrap(~Treatment)

Comentários: As medidas resumo e os gráficos confirmam a hipótese inicial de que o resfriamento tem um impacto negativo na taxa de absorção de CO2. As plantas que não foram submetidas ao resfriamento apresentam valores médios e medianos mais elevados de absorção de CO2 em comparação com as plantas resfriadas.

Medidas Resumo: Média e Mediana: O grupo “nonchilled” (não resfriado) apresenta uma média de absorção de CO2 de 30,6, consideravelmente superior à média do grupo “chilled” (23,8). A mediana também é maior no grupo “nonchilled” (31,3 contra 19,7), reforçando que, em geral, as plantas que não foram resfriadas têm um desempenho superior na absorção de CO2.

Valores Máximos e Mínimos: O grupo “nonchilled” também apresenta um valor máximo mais elevado (45,5) comparado ao grupo “chilled” (42,4). Embora a diferença não seja muito grande, ela contribui para a interpretação de que as plantas não resfriadas tendem a absorver mais CO2, mesmo nos valores mais altos.

Visualização (Boxplot): No boxplot, a mediana do grupo “nonchilled” é visivelmente mais alta, confirmando a tendência das plantas não resfriadas de terem maior absorção de CO2. O intervalo interquartil (IQR) do grupo “nonchilled” também está deslocado para valores mais altos, o que significa que a maioria das observações de absorção de CO2 nesse grupo está concentrada em níveis mais elevados.

Visualização (Gráfico de Densidade): O gráfico de densidade reforça essas conclusões. O grupo “nonchilled” apresenta um pico de densidade em torno de 30-35, enquanto o grupo “chilled” tem um pico em torno de 20. Isso sugere que as plantas não resfriadas têm uma maior concentração de observações em níveis mais altos de absorção de CO2, enquanto o grupo resfriado está mais concentrado em níveis mais baixos.

Conclusão Final: Os dados mostram de maneira clara que o resfriamento reduz a eficiência das plantas em absorver CO2. Tanto as medidas resumo quanto as visualizações (boxplot e gráfico de densidade) indicam que as plantas não submetidas ao resfriamento apresentam uma absorção de CO2 consistentemente maior. A mediana, a média e as distribuições demonstram que o resfriamento tem um efeito negativo significativo na taxa de absorção de CO2.


As questões 7 e 8 não se referem ao banco de dados CO2

Questão 7: Crie um dataframe com 3 linhas e 4 colunas contendo as informações (inventadas) da temperatura média no mês de Julho em 3 cidades da sua escolha. A primeira coluna apresenta o nome da cidade, e as demais colunas contêm a temperatura média pela manhã, pela tarde e pela noite.

# Criando o dataframe:
dataframe_1 <- data.frame(
  cidade = c("konoha", "castelo_infinito", "shibuya"),
  temperatura_manha = c(28, 19, 17),
  temperatura_tarde = c(33, 22, 20),
  temperatura_noite = c(26, 17, 14)
)

# Exibindo as primeiras linhas:
dataframe_1
##             cidade temperatura_manha temperatura_tarde temperatura_noite
## 1           konoha                28                33                26
## 2 castelo_infinito                19                22                17
## 3          shibuya                17                20                14

Questão 8: Transforme o dataframe da Questão 7 para apresentar a mesma informação em apenas 3 colunas: Cidade, Turno e Temperatura.

# Criando um dataframe extra apenas para renomear as variáveis:
dataframe_2 <- dataframe_1

# Renomeando:
names(dataframe_2) <- c("Cidade", "Manha", "Tarde", "Noite")

# Alterando o dataframe para o formato solicitado:
dataframe_3 <- pivot_longer(data = dataframe_2, cols = c(Manha, Tarde, Noite), names_to = "Turno", values_to = "Temperatura")

# Exibindo:
dataframe_3
## # A tibble: 9 × 3
##   Cidade           Turno Temperatura
##   <chr>            <chr>       <dbl>
## 1 konoha           Manha          28
## 2 konoha           Tarde          33
## 3 konoha           Noite          26
## 4 castelo_infinito Manha          19
## 5 castelo_infinito Tarde          22
## 6 castelo_infinito Noite          17
## 7 shibuya          Manha          17
## 8 shibuya          Tarde          20
## 9 shibuya          Noite          14