Não foi possível enviar o arquivo. Será algum problema com as permissões?
Diferenças

Diferenças

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

Link para esta página de comparações

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(parsapply(parfunction(p) dgeom(dgprob=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>​

QR Code
QR Code cursos:rbelem:dia3 (generated for current page)