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. <latex>X \sim Bin(n=10, p=0.03)</latex>
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. <latex>X \sim N(70, 10^2)</latex>
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
a1com 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
a1que sejam maiores que 30.a1[a1 > 30]
- Extrair os elementos de
a1que sejam menores que 25 ou maiores que 40. Guardar estes valores em um vetora2a2 <- a1[a1 < 25 | a1 > 40]
- Extrair os elementos de
a1que sejam maiores que 30 e menores que 40.a1[a1 > 30 & a1 < 40]
- Obter as posições dos elementos de
a1que sejam menores que 30which(a1[a1 < 30])
- Obter a posição do maior elemento da
a1wihch.max(a1)
- Obter a posição do menor elemento da
a1which.min(a1)
- Criar um vetor
a3com os elementos dea1para os quais o resto da divisão por 3 seja igual a 2.a3 <- a1[a1 %% 3 == 2]
- Extrair os elementos de
a1que sejam múltiplos de 4a1[a1 %% 4 == 0]
- Substituir em
a1os elementos iguais a 37 pelo valor 36a1[a1 == 37] <- 36
- Substituir em
a1os elementos maiores que 40 pelo código de valor perdidoNAa1[a1 > 40] <- NA
- Obter as posições de
a1onde estão os valores perdidoswhich(is.na(a1))
- Crie um vetor chamado
sexocom 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
sexoque possuem o valor“M“which(sexo == "M")
- Obter os valores de
a1para os quais o valor correspondente emsexoé“M“a1[which(sexo == "M")]
- Obter os valores de
a1para os quais o valor correspondente emsexoé“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.ordcom os elementos dea1em ordem crescentea1.ord <- sort(a1)
- Ordenar os objetos de
a1de forma a exibir primeiro todos os elementos correpondentes a“M“e depois os correspondentes a“F“a1[order(sexo)]
- Criar um objeto chamado
notasque possua os elementos dea1com valores correspondentes desexosendo“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. 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 <latex>\chi^2</latex>, 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
tcom 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 argumentotypecom 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 |