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