Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
| Próxima revisão | Revisão anterior | ||
| cursos:rbelem:dia3 [2010/05/27 11:58] – criada paulojus | cursos:rbelem:dia3 [2010/05/29 11:13] (atual) – paulojus | ||
|---|---|---|---|
| Linha 1: | Linha 1: | ||
| + | ===== Dia 3 ===== | ||
| + | |||
| <code R> | <code R> | ||
| - | ## comandos de list | + | ## listas |
| + | lis <- list(a = 1:10, b = matrix(1: | ||
| + | d = data.frame(x = 1:10), y = rnorm(10)) | ||
| + | lis | ||
| + | ## selecionando uma sublista | ||
| + | lis[1] | ||
| + | ## selecionando um elemento da list | ||
| + | lis[[1]] | ||
| + | ## note a diferença entre usar [ ] e [[ ]] ! | ||
| + | ## exemplo: regressão: resultados são dados em lista(s) | ||
| xydata <- data.frame(x = 1:20, | xydata <- data.frame(x = 1:20, | ||
| y = c(0.9, | y = c(0.9, | ||
| | | ||
| ) | ) | ||
| + | ## diferente formas de acessar as colunas de um data-frame: | ||
| with(xydata, | with(xydata, | ||
| attach(xydata) | attach(xydata) | ||
| plot(x,y) | plot(x,y) | ||
| detach(xydata) | detach(xydata) | ||
| - | |||
| plot(xydata$x, | plot(xydata$x, | ||
| Linha 24: | Linha 35: | ||
| names(regS) | names(regS) | ||
| + | ## estimativa de sigma pode ser calculada... | ||
| sqrt(sum(reg$residuals^2)/ | sqrt(sum(reg$residuals^2)/ | ||
| + | ## ou acessada do objeto de summary!! | ||
| regS$sigma | regS$sigma | ||
| + | ## apagando **tudo** (todos os objetos) da área de trabalho | ||
| + | rm(list(ls()) | ||
| + | ## Exemplo de Verossimilhança | ||
| ## | ## | ||
| dg <- c(9, 5, 2, 3, 0, 3, 2, 4, 14, 3, 4, 1, 0, 6, 1) | dg <- c(9, 5, 2, 3, 0, 3, 2, 4, 14, 3, 4, 1, 0, 6, 1) | ||
| + | ## função (ingênua) de verossimilhança para modelo geométrico | ||
| fp <- function(p) sum(log(p * (1-p)^dg)) | fp <- function(p) sum(log(p * (1-p)^dg)) | ||
| + | ## fazendo o gráfico da função: | ||
| ps <- seq(0.01, 0.99, length=100) | ps <- seq(0.01, 0.99, length=100) | ||
| lps <- sapply(ps, fp) | lps <- sapply(ps, fp) | ||
| plot(ps, lps , ty=" | plot(ps, lps , ty=" | ||
| + | ## encontrando o ponto de máximo (numericamente) | ||
| est <- optimize(fp, | est <- optimize(fp, | ||
| est | est | ||
| abline(v = est$max) | abline(v = est$max) | ||
| + | ## redefinindo a função escrevendo as contas de forma mais adequada | ||
| fp <- function(par) sapply(par, function(p) sum(log(p) + dg*log(1-p))) | fp <- function(par) sapply(par, function(p) sum(log(p) + dg*log(1-p))) | ||
| plot(ps, fp(ps), ty=" | plot(ps, fp(ps), ty=" | ||
| + | ## reescrevendo novamente usando a função já disponível no R | ||
| + | fp <- function(par) sapply(par, function(p) sum(dgeom(dg, | ||
| + | plot(ps, fp(ps), ty=" | ||
| + | |||
| + | ## a tornando a função mais genérica para receber qualquer vetor de dados | ||
| + | fp <- function(par, | ||
| + | plot(ps, fp(ps, dados=dg), ty=" | ||
| - | fp <- fp(par) sapply(par, function(p) dgeom(dg, prob=p, log=T)) | + | ## acrescentando elementos no gráfico |
| + | plot(ps, | ||
| + | title(eval(substitute(expression(paste(" | ||
| </ | </ | ||