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
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 vetora2
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 30which(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 dea1
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 4a1[a1 %% 4 == 0]
- Substituir em
a1
os elementos iguais a 37 pelo valor 36a1[a1 == 37] <- 36
- Substituir em
a1
os elementos maiores que 40 pelo código de valor perdidoNA
a1[a1 > 40] <- NA
- Obter as posições de
a1
onde estão os valores perdidoswhich(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 emsexo
é“M“
a1[which(sexo == "M")]
- Obter os valores de
a1
para 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.ord
com os elementos dea1
em ordem crescentea1.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 dea1
com valores correspondentes desexo
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. 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
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 argumentotype
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 |