====== 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 |