Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anteriorRevisão anterior
Próxima revisão
Revisão anterior
disciplinas:ce223:interna:solucoes2008 [2008/02/29 13:42] wbonatdisciplinas:ce223:interna:solucoes2008 [2008/03/09 12:01] (atual) henriqued
Linha 1: Linha 1:
 ====== Exercícios recomendados da CE-223 Estatística computacional, 2008 ====== ====== Exercícios recomendados da CE-223 Estatística computacional, 2008 ======
- 
  
  
Linha 6: Linha 5:
  
 === Aula 25/02 === === 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> +    Fazer um gráfico da função de probabilidade de uma v.a. <latex>X \sim Bin(n=10, p=0.03)</latex><code R> 
-      <code R> +x <- 0:10 
-      curve(pbinom(x, size=10, prob=0.03), xlim=c(0,3)) +fx <- dbinom(x, 10, 0.35) 
-      ## Outra forma - Wagner +plot(x, fx, type='h'
-      x <- 0:10 +title("Função de Probabilidade da Binomial"
-      fx <- dbinom(x, 10, 0.35) +</code> 
-      plot(x, fx, type='h'+    Fazer um gráfico da função de densidade de probabilidade de uma v.a. <latex>X \sim N(70, 10^2)</latex><code R> 
-      title("Função de Probabilidade da Binomial"+curve(dnorm(x, mean=70, sd=10), xlim=c(-3,3)) 
- +</code> 
-      </code> +
-    Fazer um gráfico da função de densidade de probabilidade de uma v.a. <latex>X \sim N(70, 10^2)</latex> +
-      <code R> +
-      curve(dnorm(x, mean=70, sd=10), xlim=c(-3,3)) +
-      </code> +
 === Aula 27/02 === === Aula 27/02 ===
-    Mostrar o comando para obter uma sequência dos múltiplos de 10 até 200. +    Mostrar o comando para obter uma sequência dos múltiplos de 10 até 200.<code R> 
-    <code R> +seq(10, 200, by=10) 
-    seq(10, 200, by=10) +</code> 
-    </code> +    Criar um vetor ''a1'' com os elementos ''(23, 45, 21, 29, 40, 22, 29, 37, 44, 37, 31, 33, 36)''<code R> 
-    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) 
-    <code R> +</code> 
-    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. <code R> 
-    </code> +a1[a1 > 30] 
-    Extrair os elementos de ''a1'' que sejam maiores que 30.  +</code> 
-    <code R> +    Extrair os elementos de ''a1'' que sejam menores que 25 ou maiores que 40. Guardar estes valores em um vetor ''a2'' <code R> 
-    a1[a1 > 30] +a2 <- a1[a1 < 25 | a1 > 40] 
-    </code> +</code> 
-    Extrair os elementos de ''a1'' que sejam menores que 25 ou maiores que 40. Guardar estes valores em um vetor ''a2'' +    Extrair os elementos de ''a1'' que sejam maiores que 30 e menores que 40. <code R> 
-    <code R> +a1[a1 > 30 & a1 < 40] 
-    a2 <- a1[a1 < 25 | a1 > 40] +</code> 
-    </code> +    Obter as posições dos elementos de ''a1'' que sejam menores que 30<code R> 
-    Extrair os elementos de ''a1'' que sejam maiores que 30 e menores que 40.  +which(a1[a1 < 30]) 
-    <code R> +</code> 
-    a1[a1 > 30 & a1 < 40] +    Obter a posição do maior elemento da ''a1''<code R> 
-    </code> +wihch.max(a1) 
-    Obter as posições dos elementos de ''a1'' que sejam menores que 30 +</code> 
-    <code R> +    Obter a posição do menor elemento da ''a1''<code R>
-    which(a1[a1 < 30]) +
-    </code> +
-    Obter a posição do maior elemento da ''a1'' +
-    <code R> +
-    wihch.max(a1) +
-    </code> +
-    Obter a posição do menor elemento da ''a1'' +
-    <code R>+
     which.min(a1)     which.min(a1)
-    </code> +</code> 
-    Criar um vetor ''a3'' com os elementos de ''a1'' para os quais o resto da divisão por 3 seja igual a 2. +    Criar um vetor ''a3'' com os elementos de ''a1'' para os quais o resto da divisão por 3 seja igual a 2.<code R> 
-    <code R> +a3 <- a1[a1 %% 3 == 2] 
-    a3 <- a1[a1 %% 3 == 2] +</code> 
-    </code> +    Extrair os elementos de ''a1'' que sejam múltiplos de 4<code R> 
-    Extrair os elementos de ''a1'' que sejam múltiplos de 4 +a1[a1 %% 4 == 0] 
-    <code R> +</code> 
-    a1[a1 %% 4 == 0] +    Substituir em ''a1'' os elementos iguais a 37 pelo valor 36<code R> 
-    </code> +a1[a1 == 37] <- 36 
-    Substituir em ''a1'' os elementos iguais a 37 pelo valor 36 +</code> 
-    <code R> +    Substituir em ''a1'' os elementos maiores que 40 pelo código de //valor perdido//  ''NA''<code R> 
-    a1[a1 == 37] <- 36 +a1[a1 > 40] <- NA    
-    </code> +</code> 
-    Substituir em ''a1'' os elementos maiores que 40 pelo código de //valor perdido//  ''NA'' +    Obter as posições de ''a1'' onde estão os valores perdidos<code R> 
-    <code R> +which(is.na(a1)) 
-    a1[a1 > 40] <- NA    +</code> 
-    </code> +    Crie um vetor chamado ''sexo'' com os comandos a seguir: <code R> 
-    Obter as posições de ''a1'' onde estão os valores perdidos +sexo <- c(1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1, 2) 
-    <code R> +sexo <- factor(sexo, lev=1:2, lab=c("M","F")) 
-    which(is.na(a1)) +</code> 
-    </code> +    Obter as posições em ''sexo'' que possuem o valor ''“M“''<code R> 
-    Crie um vetor chamado ''sexo'' com os comandos a seguir:  +which(sexo == "M"
-    <code R> +</code> 
-    sexo <- c(1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1, 2) +    Obter os valores de ''a1'' para os quais o valor correspondente em ''sexo'' é ''“M“''<code R> 
-    sexo <- factor(sexo, lev=1:2, lab=c("M","F")) +a1[which(sexo == "M")] 
-    </code> +</code> 
-    Obter as posições em ''sexo'' que possuem o valor ''“M“'' +    Obter os valores de ''a1'' para os quais o valor correspondente em ''sexo'' é ''“F“''<code R> 
-    <code R> +a1[which(sexo == "F")] 
-     which(sexo == "M"+</code> 
-    </code> +    Descrever o resultado de cada um dos comandos a seguir:<code R> 
-    Obter os valores de ''a1'' para os quais o valor correspondente em ''sexo'' é ''“M“'' +sort(a1)             # Ordena o vetor a1 em ordem crescente 
-    <code R> +order(a1)            # Retorna a ordem de cada elemento no vetor a1 
-     a1[which(sexo == "M")] +a1[order(a1)]        # Ordena o vetor a1 em ordem crescente 
-    <code> +sort(a1, dec = TRUE) # Ordena o vetor a1 em ordem decrescente 
-    Obter os valores de ''a1'' para os quais o valor correspondente em ''sexo'' é ''“F“'' +</code>   
-    <code R> +    Criar um objeto ''a1.ord'' com os elementos de ''a1'' em ordem crescente<code R> 
-     a1[which(sexo == "F")] +a1.ord <- sort(a1) 
-    </code> +</code> 
-    Descrever o resultado de cada um dos comandos a seguir: +    Ordenar os objetos de ''a1'' de forma a exibir primeiro todos os elementos correpondentes a ''“M“'' e depois os correspondentes a ''“F“''<code R> 
-    <code R> +a1[order(sexo)] 
-    sort(a1) # Ordena o vetor a1 em ordem crescente +</code> 
-    order(a1) # Retorna a ordem de cada elemento no vetor a1 +    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.<code R> 
-    a1[order(a1)] # Ordena o vetor a1 em ordem crescente +notas <- a1[order(sexo, a1)] 
-    sort(a1, dec = TRUE) # Ordena o vetor a1 em ordem decrescente +</code> 
-    </code>   +   - 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)''<code R> 
-    Criar um objeto ''a1.ord'' com os elementos de ''a1'' em ordem crescente +c(1:5, seq(10,50, by=5), seq(60,100, by=10), seq(200, 500, by=100)) 
-    <code R> +</code> 
-    a1.ord <- sort(a1) +
-    </code> +
-    Ordenar os objetos de ''a1'' de forma a exibir primeiro todos os elementos correpondentes a ''“M“'' e depois os correspondentes a ''“F“'' +
-    <code R> +
-    a1[order(sexo)] +
-    </code> +
-    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. +
-    <code R> +
-    notas <- a1[order(sexo, a1)] +
-  </code>+
 Arquivo .R uma segunda versão da resolução da lista. 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 }} {{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()''<code R>
 +choose(10, 4)
 +factorial(10)/(factorial(10-4) * factorial(4))
 +gamma(10 + 1)/(gamma((10 - 4) + 1) * gamma(4 + 1))</code>
 +  - 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()''<code R>
 +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)
 +</code>
 +  - Obtenha um gráfico de formas análogas às do exercício anterior para a distribuição ''t'' com 9 graus de liberdade. <code R>
 +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)
 +</code>
 +  - 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<code R>
 +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)))
 +</code>
 +
 +^  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 |

QR Code
QR Code disciplinas:ce223:interna:solucoes2008 (generated for current page)