====== Exercícios recomendados da CE-223 Estatística computacional, 2008 ======
==== Semana 1 ====
=== Aula 25/02 ===
- Fazer um gráfico da função de probabilidade de uma v.a. X \sim Bin(n=10, p=0.03)
x <- 0:10
fx <- dbinom(x, 10, 0.35)
plot(x, fx, type='h')
title("Função de Probabilidade da Binomial")
- Fazer um gráfico da função de densidade de probabilidade de uma v.a. X \sim N(70, 10^2)
curve(dnorm(x, mean=70, sd=10), xlim=c(-3,3))
=== Aula 27/02 ===
- Mostrar o comando para obter uma sequência dos múltiplos de 10 até 200.
seq(10, 200, by=10)
- Criar um vetor ''a1'' com os elementos ''(23, 45, 21, 29, 40, 22, 29, 37, 44, 37, 31, 33, 36)''
a1 <- c(23, 45, 21, 29, 40, 22, 29, 37, 44, 37, 31, 33, 36)
- Extrair os elementos de ''a1'' que sejam maiores que 30.
a1[a1 > 30]
- Extrair os elementos de ''a1'' que sejam menores que 25 ou maiores que 40. Guardar estes valores em um vetor ''a2''
a2 <- a1[a1 < 25 | a1 > 40]
- Extrair os elementos de ''a1'' que sejam maiores que 30 e menores que 40.
a1[a1 > 30 & a1 < 40]
- Obter as posições dos elementos de ''a1'' que sejam menores que 30
which(a1[a1 < 30])
- Obter a posição do maior elemento da ''a1''
wihch.max(a1)
- Obter a posição do menor elemento da ''a1''
which.min(a1)
- Criar um vetor ''a3'' com os elementos de ''a1'' para os quais o resto da divisão por 3 seja igual a 2.
a3 <- a1[a1 %% 3 == 2]
- Extrair os elementos de ''a1'' que sejam múltiplos de 4
a1[a1 %% 4 == 0]
- Substituir em ''a1'' os elementos iguais a 37 pelo valor 36
a1[a1 == 37] <- 36
- Substituir em ''a1'' os elementos maiores que 40 pelo código de //valor perdido// ''NA''
a1[a1 > 40] <- NA
- Obter as posições de ''a1'' onde estão os valores perdidos
which(is.na(a1))
- Crie um vetor chamado ''sexo'' com os comandos a seguir:
sexo <- c(1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1, 2)
sexo <- factor(sexo, lev=1:2, lab=c("M","F"))
- Obter as posições em ''sexo'' que possuem o valor ''“M“''
which(sexo == "M")
- Obter os valores de ''a1'' para os quais o valor correspondente em ''sexo'' é ''“M“''
a1[which(sexo == "M")]
- Obter os valores de ''a1'' para os quais o valor correspondente em ''sexo'' é ''“F“''
a1[which(sexo == "F")]
- Descrever o resultado de cada um dos comandos a seguir:
sort(a1) # Ordena o vetor a1 em ordem crescente
order(a1) # Retorna a ordem de cada elemento no vetor a1
a1[order(a1)] # Ordena o vetor a1 em ordem crescente
sort(a1, dec = TRUE) # Ordena o vetor a1 em ordem decrescente
- Criar um objeto ''a1.ord'' com os elementos de ''a1'' em ordem crescente
a1.ord <- sort(a1)
- Ordenar os objetos de ''a1'' de forma a exibir primeiro todos os elementos correpondentes a ''“M“'' e depois os correspondentes a ''“F“''
a1[order(sexo)]
- Criar um objeto chamado ''notas'' que possua os elementos de ''a1'' com valores correspondentes de ''sexo'' sendo ''“M“'' ordenados de forma crescente, seguidos pelos correspondentes a ''“F“'' também ordenados de forma crescente. Em outras palavras, o objeto notas deverá ter as notas dos homes ordenadas seguidas pelas das mulheres também ordenadas.
notas <- a1[order(sexo, a1)]
- Criar um vetor com os seguinte elementos: ''(1, 2, 3, 4, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 60, 70, 80, 90, 100, 200, 300, 400, 500)''
c(1:5, seq(10,50, by=5), seq(60,100, by=10), seq(200, 500, by=100))
Arquivo .R uma segunda versão da resolução da lista.
{{disciplinas:ce223:interna:lista1.r| Versão 2 lista 1 por Wagner 29/02/2008 }}
=== Aula ? ===
- Obtenha usando o R o resultado da combinação de 10 elementos tomados 4 a 4 de três formas diferentes:
* usando a função ''choose()''
* usando a função ''factorial()''
* usando a função ''gamma()''
choose(10, 4)
factorial(10)/(factorial(10-4) * factorial(4))
gamma(10 + 1)/(gamma((10 - 4) + 1) * gamma(4 + 1))
- Obtenha um gráfico da função de densidade de probabilidade da distribuição \chi^2, três graus de liberdade, de duas formas diferentes:
* utilizando operações algébricas com a expressão da f.d.p.
* utilizando a função ''dchisq()''
fChisq <- function(x, k=3)
1/(gamma(k/2)) * ((1/2) ^ (k/2)) * x^((k/2) - 1) * exp(-(1/2) * x)
plot(fChisq, 0:10, xlim=c(0,10))
curve(dchisq(x, 3), xlim=c(0, 10)
- Obtenha um gráfico de formas análogas às do exercício anterior para a distribuição ''t'' com 9 graus de liberdade.
ft <- function(x, k = 9)
(gamma((k + 1) / 2)/gamma(k / 2)) * (1 / sqrt(k * pi)) * (1/(1 + ((x^2) / k))^((k + 1)/2))
plot(ft, 0:10)
curve(dt(x, 9), 0:10)
- Considere o exercício da distribuição binomial da primeira aula do curso e discutido na aula desta semana. Experimente utilizar o comando ''plot()'' com o uso do argumento ''type'' com cada uma das opções: ''type = “p“'', ''type = “l“'', ''type = “b“'', ''type = “c“'', ''type = “o“'', ''type = “h“'', ''type = “s“'', ''type = “S“'', ''type = “n“''. Verifique os resultados produzidos e:
* descreva o tipo de gráfico produzido com cada opção
* discuta exemplos de situações onde o uso de cada um destes tipos de gráficos seria adequado
fBin <- function(x, n, p)
choose(n, x) * (p^x) * (1 - p)^(n - x)
x <- 0:10
fx <- fBin(x, 10, 0.03)
plot(x, fx, type='p')
plot(x, fx, type='l')
plot(x, fx, type='b')
#Versão alternativa
par(mfrow=c(3,3)) #Dividir a tela Gráfica
sapply(c("p", "l", "b", "c", "o", "h", "s", "S", "n"),
function(.x)plot(x, fx, type=.x, main=sprintf("Tipo: %s", .x)))
^ Tipo ^ Forma ^ Exemplo |
| p | Pontos | Verificar Distribuição dos Pontos |
| l | linhas | Verificar Tendencia da Série |
| b | Ambos, linhas e pontos | Verificar a Tendencia e localizar as observações |
| c | Como o Tipo b, mas apenas com as linhas | |
| o | Como o tipo b, mas com as linhas sobre os pontos | |
| h | Com linhas verticais, similares à um histograma | Verificar a Frequencia |
| s | Por etapas, similares a uma escada, começando a etapa horizontalmente | |
| S | como o anterior, mas começando verticalmente | |
| n | Não plota o gráfico | Útil para 'pegar' os parametros gráficos e ajustar a janela aos pontos |