| Ambos lados da revisão anteriorRevisão anteriorPróxima revisão | Revisão anterior |
| disciplinas:ce223:interna:solucoes2008 [2008/02/29 13:33] – wbonat | disciplinas:ce223:interna:solucoes2008 [2008/03/09 12:01] (atual) – henriqued |
|---|
| |
| === 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) |
| </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> | title("Função de Probabilidade da Binomial") |
| <code R> | </code> |
| curve(dnorm(x, mean=70, sd=10), xlim=c(-3,3)) | - 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> |
| </code> | 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 | |