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] – criada paulojuscursos: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)