Não foi possível enviar o arquivo. Será algum problema com as permissões?
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] paulojus criada |
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:12, nc=4), c = "Oi Pessoal", | ||
+ | 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,5.1,2.4,8.1,4.2,7.1,5.6,7.6,5.9,7.7, | y = c(0.9,5.1,2.4,8.1,4.2,7.1,5.6,7.6,5.9,7.7, | ||
11.8,6.9,9.3,10.9,8.4,11.6,13.0,13.8,13.1,9.3) | 11.8,6.9,9.3,10.9,8.4,11.6,13.0,13.8,13.1,9.3) | ||
) | ) | ||
+ | ## diferente formas de acessar as colunas de um data-frame: | ||
with(xydata, plot(x,y)) | with(xydata, plot(x,y)) | ||
attach(xydata) | attach(xydata) | ||
plot(x,y) | plot(x,y) | ||
detach(xydata) | detach(xydata) | ||
- | |||
plot(xydata$x, xydata$y) | plot(xydata$x, xydata$y) | ||
Linha 24: | Linha 35: | ||
names(regS) | names(regS) | ||
+ | ## estimativa de sigma pode ser calculada... | ||
sqrt(sum(reg$residuals^2)/reg$df.res) | sqrt(sum(reg$residuals^2)/reg$df.res) | ||
+ | ## 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="l") | plot(ps, lps , ty="l") | ||
+ | ## encontrando o ponto de máximo (numericamente) | ||
est <- optimize(fp, c(0, 1), maximum=T) | est <- optimize(fp, c(0, 1), maximum=T) | ||
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="l") | plot(ps, fp(ps), ty="l") | ||
+ | ## reescrevendo novamente usando a função já disponível no R | ||
+ | fp <- function(par) sapply(par, function(p) sum(dgeom(dg, prob=p, log=T))) | ||
+ | plot(ps, fp(ps), ty="l") | ||
+ | |||
+ | ## a tornando a função mais genérica para receber qualquer vetor de dados | ||
+ | fp <- function(par, dados) sapply(par, function(p) sum(dgeom(dados, prob=p, log=T))) | ||
+ | plot(ps, fp(ps, dados=dg), ty="l") | ||
- | fp <- fp(par) sapply(par, function(p) dgeom(dg, prob=p, log=T)) | + | ## acrescentando elementos no gráfico |
+ | plot(ps, fp(ps, dados=dg), ty="l", xlab="p", ylab="l(p)") | ||
+ | title(eval(substitute(expression(paste("log-verossimilhança do parâmetro da Geométrica\n", hat(p) == a)), list(a=est$max)))) | ||
</code> | </code> |