library(readr) # Carregar a Biblioteca

library(readxl) # Carregar a Biblioteca

library(rmarkdown)

Exercício 1

Considere o conjunto de dados constante na folha Filhos do ficheiro Excel com o nome Apresentacao.xlsx

Apresentacao = read_excel("Apresentacao1.xlsx")  # Renomiei a Base de Dados porque já existe uma do quiz anterior com o mesmo nome

paged_table(Apresentacao) # Visualizar a Base de Dados Importado
  1. Tome os dados completos relativos `as variaveis Altura e Peso (16 indiv´ıduos).
  • Calcule a mediana e a variancia da Altura e do Peso.

Calculando as Medianas

Mediana.Altura = median(Apresentacao$Altura, na.rm = T); Mediana.Preso = median(Apresentacao$Peso, na.rm = T)
# na.rm = T - Permite remover ou desconsiderar valores em falta/omisso no cálculo

Calculando as Variâncias

Var.Altura = var(Apresentacao$Altura, na.rm = T); Var.Preso = var(Apresentacao$Peso, na.rm = T)
# na.rm = T - Permite remover ou desconsiderar valores em falta/omisso no cálculo

Apresentando os resultados dos cálculos acima em forma de linhas, de forma a facilitar a leitura.

rbind(Mediana.Altura, Mediana.Preso, Var.Altura, Var.Preso)
##                    [,1]
## Mediana.Altura  170.000
## Mediana.Preso    72.500
## Var.Altura     1617.572
## Var.Preso       103.050
  • Calcule a mediana e a variancia da Altura e do Peso restrito aos indiv´ıduos que tˆem filho.

Calculando as Variâncias

Mediana.Altura1 = median(Apresentacao$Altura & Apresentacao$Filhos == "Sim", na.rm = T)
Mediana.Preso1 = median(Apresentacao$Peso & Apresentacao$Filhos == "Sim", na.rm = T)
# na.rm = T - Permite remover ou desconsiderar valores em falta/omisso no cálculo

Calculando as Medianas

Var.Altura1 = median(Apresentacao$Altura & Apresentacao$Filhos == "Sim", na.rm = T)
Var.Preso1 = median(Apresentacao$Peso & Apresentacao$Filhos == "Sim", na.rm = T)
# na.rm = T - Permite remover ou desconsiderar valores em falta/omisso no cálculo

Apresentando os resultados dos cálculos acima em forma de linhas, de forma a facilitar a leitura.

rbind(Mediana.Altura1, Mediana.Preso1, Var.Altura1, Var.Preso1)
##                 [,1]
## Mediana.Altura1    1
## Mediana.Preso1     1
## Var.Altura1        1
## Var.Preso1         1
  1. Obtenha duas caixas de bigodes para a variável Peso com vista a comparar o peso dos indivíduos que tem filhos dos que não tem filhos.

Nesse gráfico coloque um título (”Comparação de Peso”), coloque título no eixo dos yy (” Peso”), e coloque título no eixo dos xx (”Tem filhos?”)

boxplot(Apresentacao$Peso ~ Apresentacao$Filhos,  # Gera Gráficos de peso disttinguindo-os em função de Filhos 
  main = "Comparação de Peso",   # Atribui título do gráfico
  col = c("lightgreen", "lightpink"), # Diferencia os gráficos
  xlab = "Tem filhos?",           # Título eixo x
  ylab = "Peso"                  # Título eixo y
)

  1. Admita que a variável Peso tem distribuição normal com média 71Kg e desvio padrão igual a 10Kg. Calcule as seguintes probabilidades:
  • Prob (Peso = 71)
mu <- 71 # Média
sigma <- 10 # Desvio-Padrão

# Sendo a Distribuição Normal, um distribuição de probabilidade para va contínua, então o cálculo de probabilidade para um valor exacto é mesmo que:

Prob71 = 0

Prob71 # visualizar o resultado
## [1] 0
  • Prob (Peso >= 68)
mu = 71 # Média
sigma = 10 # Desvio-Padrão

Prob68 = 1 - pnorm(68, mean = mu, sd = sigma)

Prob68 # visualizar o resultado
## [1] 0.6179114

Exercício 2

Suponha que se recolhe durante 3 meses dados relativos a tartugaras Tatô que desovam em Morro Peixe. Os seguintes dados correspondem ao numero de embriões mortos (que não produziram tartatura viva) por ninho de ovos em 45 ninhos registados naqueles 3 meses:

# Número de embriões mortos por ninho
embr.mortos = c(0, 1, 2, 3, 4, 6)

# Número de ninhos com cada quantidade de embriões mortos
n.ninhos = c(7, 13, 16, 5, 3, 1)

# Criar um data frame
dados = data.frame(embr.mortos, n.ninhos)
dados
##   embr.mortos n.ninhos
## 1           0        7
## 2           1       13
## 3           2       16
## 4           3        5
## 5           4        3
## 6           6        1
  • Represente a amostra graficamente através de um gráfico de barras.
barplot(n.ninhos,
  names.arg = embr.mortos, # O Eixo do x deve estar identificadas
  main = "Número de embriões mortos por ninho",  # Título do gráfico
  xlab = "Número de embriões mortos", # Título eixo x
  ylab = "Número de ninhos", # Título eixo y
  col = "lightgreen", # Cor das barras
  ylim = c(0,20) # Ajeitar a altura ou intervalor dos eixos de y
)

  • Calcule o coeficiente de assimetria e comente o valor tendo em conta o que observa no gráfico anterior
library(moments) # Carregar pacote para ambiente de trabalho

skewness(n.ninhos)
## [1] 0.4351634

Graficamente, observa-se causa extendida a direita, traduzindo-se num comprotamente de uma distribuição assimétrica a direita. Após o cálculo do coeficiente de assimetria, é possível confirmar a ideia de que a distribuição dos dados apresenta uma assimetria a direita, ou positiva.

Exercício 3

Vamos gerar dados simulados de uma distribuição binomial. Para controlar o processo de geração de dados escreva na consola do RStudio o número da semente (SEMENTE) que se encontra associado ao seu nome no ficheiro: Apresentacao:

set.seed(SEMENTE)

Caso o seu nome não se encontre no ficheiro Apresentacao, tome: set.seed(123)

  1. Gere uma amostra de tamanho 30 de uma binomial B(n=5, p=0.3) e calcule a média dessa amostra
set.seed(29) # Wadiley Nascimento

# Gerar uma amostra de 30 observações de uma binomial B(n=5, p=0.3)
Amostr.Binom = rbinom(n = 30, size = 5, prob = 0.3)

# Ver a amostra gerada
table(Amostr.Binom) # Visualização em tabela (valor gerado - Freq do mesmo)
## Amostr.Binom
##  0  1  2  3  4 
##  5 10  9  3  3

Calcular a média da amostra

Media = mean(Amostr.Binom)

Media # Visualizar a média calculada
## [1] 1.633333
  1. Repita a alínea anterior 100 vezes usando o ciclo ”for”, de modo a obter 100 valores de média.
Media = numeric(100) # Cria um vectou para armazenar os dados/médias solicitadas

for(i in 1:100){ # Repetir 100 vezes
  
  Amostr.Binom1 = rbinom(n = 30, size = 5, prob = 0.3) # Dados ou Cenário da alínea anterior
  
  Media[i] = mean(Amostr.Binom1) # Calcular e armazenar no vetor criado
}

Media # Visualizar 
##   [1] 1.400000 1.133333 1.400000 1.333333 1.133333 1.566667 1.500000 1.866667
##   [9] 1.466667 1.566667 1.366667 1.533333 1.366667 1.466667 1.500000 1.633333
##  [17] 1.666667 1.600000 1.266667 1.466667 1.300000 1.100000 1.733333 1.666667
##  [25] 1.266667 1.400000 1.700000 1.433333 1.533333 1.500000 1.666667 1.666667
##  [33] 1.833333 1.433333 1.233333 1.366667 1.333333 1.033333 1.566667 1.800000
##  [41] 1.666667 1.400000 1.266667 1.366667 1.400000 1.633333 1.466667 1.333333
##  [49] 1.133333 1.600000 1.700000 1.533333 1.733333 1.700000 1.700000 1.400000
##  [57] 1.733333 1.533333 1.700000 1.566667 1.166667 1.533333 1.233333 1.633333
##  [65] 1.500000 1.433333 1.300000 1.366667 1.366667 1.200000 1.833333 1.433333
##  [73] 1.533333 1.466667 1.500000 1.666667 1.433333 1.500000 1.733333 1.133333
##  [81] 1.700000 1.200000 1.900000 1.733333 1.200000 1.633333 1.566667 1.400000
##  [89] 1.400000 1.333333 1.666667 1.333333 1.433333 1.466667 1.233333 1.166667
##  [97] 1.500000 1.200000 1.500000 1.466667
  1. Construa um histograma com os 100 valores médios gerados.
# Histograma das médias
hist(Media, main = "Histograma das 100 médias", xlab = "Média da amostra",
     ylab = "Frequência",  col = "lightgreen", ylim = c(0,20))

  1. Construa um QQplot da normal com esses 100 valores médios gerados para avaliar a adequação do modelo normal a esses 100 valores.
# QQ-plot para avaliar a normalidade
qqnorm(Media, main = "QQ-Plot das Médias", pch = 19, # Preenchimento dos círculos
       xlab = "", ylab = "", # Eliminar os títulos dos eixos
       col = "blue" # Definir uma côr para o gráfico
       )

# Adicionando a linha, de forma a assemelhar aos gráficos deste tipo, gerado no Excel ou SPSS
qqline(Media, col = "red", 
       lwd = 4, # Expressura da linha
       )