Ferramentas do usuário

Ferramentas do site


roteiros:veror

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
roteiros:veror [2013/10/21 16:04] – criada adalardoroteiros:veror [2024/01/12 10:40] (atual) – edição externa 127.0.0.1
Linha 10: Linha 10:
 ii) Representar graficamente a superfície de verosimilhança.\\ ii) Representar graficamente a superfície de verosimilhança.\\
  
-1) **Construa uma base de dados fictícia**. __Dicas de comandos__: ''rbind''.\\ +1) **Construa uma base de dados fictícia**. __Dicas de comandos__: ''sample'', ''rbinom'' ,''rbind''.\\ 
   * Esta base de dados pode ser compreendida como uma matriz [i,j], com número i de linhas e j de colunas.\\   * Esta base de dados pode ser compreendida como uma matriz [i,j], com número i de linhas e j de colunas.\\
   * Como tratam-se de dados de presença e ausência, vamos representar as ausências por zeros, e as presenças por um.\\   * Como tratam-se de dados de presença e ausência, vamos representar as ausências por zeros, e as presenças por um.\\
Linha 40: Linha 40:
 8) Adicione no gráfico o **ponto de coordenadas (__psi__,__p__)**, correspondentes aos valores dos parâmetros psi e p que maximizam a ocorrência dos dados. __Dicas de comandos__: ''abline''.\\ 8) Adicione no gráfico o **ponto de coordenadas (__psi__,__p__)**, correspondentes aos valores dos parâmetros psi e p que maximizam a ocorrência dos dados. __Dicas de comandos__: ''abline''.\\
  
 +
 +===== Uma solução =====
 +
 +<code>
 +#################################
 +## criando os dados          ####
 +## com parâmetros conhecidos ####
 +#################################
 +## Alexandre Adalardo de Oliveira
 +## 21 de outubro de 2013
 +# processo de interesse: ocorrência
 +# prob de ocorrenciam psi=0.7
 +ocorre<-sample(c(1,0),10, prob=c(0.7, 0.3), replace=TRUE)
 +#ou 
 +#ocorre<-rbinom(10,1, 0.7)
 +##########################
 +## processo de observação
 +#########################
 +# prob de detecção p=0.4
 +########################
 +# 10 sessões de amostra em cada localidade
 +observa= sample(c(1,0), 100, prob= c(0.4, 0.6), replace=TRUE)
 +detecta<-matrix(observa, ncol=10)
 +## conectando os dois processos
 +detecta[ocorre==0, ]<-0
 +amostra<-detecta
 +############################
 +## nome das colunas e linhas
 +rownames(amostra)<-paste("local", 1:10, "")
 +colnames(amostra)<-paste("tempo", 1:10, "")
 +###############################
 +## Calculando as probabilidade
 +## para diferentes parâmetros
 +###############################
 +nocor<-apply(amostra, 1, sum) ## ocorrência em cada localidade
 +nt<- dim(amostra)[2] ## número de visitas a cada localidade 
 +## sequencia de valores de psi e p
 +seqpsi<-seqp<-seq(0.05,0.955, 0.05)
 +## criando uma matrix para guardar os resultados
 +resulta<-matrix(NA, ncol=length(seqp), nrow=length(seqpsi), dimnames=list(seqpsi,seqp))
 +## um função para o cálculo de verossimilhança para valores de p e psi
 +verosim<-function(psi, p, nocor,nt)
 +{
 + n0 = nocor==0
 + res<-psi * p ^ nocor * (1-p)^(nt-nocor)
 + res[n0]<-psi * (1-p)^nt + (1-psi)
 +return(res)
 +}
 +#############################################################
 +## calculando a Verossimilhança para a sequência de valores
 +## de p e psi
 +#############################################################
 +for (i in 1:(length(seqpsi)))
 +{
 +psi<-seqpsi[i]
 + for (j in 1:(length(seqp)))
 + {
 + p<-seqp[j]
 + resulta[i,j]<- -1*sum(log(verosim(psi, p, nocor, nt)))
 + }
 +}
 +#######################################################
 +## encontrando a estimativa de Maxima Verossimilhança 
 +## ou minima -LogVerossimilhança
 +#######################################################
 +indmin<-arrayInd(which.min(resulta), dim(resulta))
 +psiEst<-dimnames(resulta)[[1]][[indmin[1]]]
 +pEst<-dimnames(resulta)[[2]][[indmin[2]]]
 +psiEst; pEst
 +######################################################
 +## O gráfico da superfície de Verossimilhança
 +contour(resulta, xlab="Ocorrência (psi)", ylab="Detecção (p)", nlevels=20)
 +abline(v=as.numeric(psiEst), col="red", lty=2)
 +abline(h=as.numeric(pEst), col="red", lty=2)
 +########################################################
 +# Um conjunto de dados que não conhecemos os parâmetros
 +########################################################
 +## dados de Ploeophana em 10 árvores
 +####################################
 +ploe<-rbind(c( 0, 0, 0, 0, 0, 0),
 +c( 0, 0, 0, 0, 0, 1),
 +c( 0, 0, 0, 0, 0, 0),
 +c( 0, 0, 0, 0, 0, 0),
 +c( 0, 0, 0, 0, 0, 1),
 +c( 0, 1, 1, 0, 0, 0),
 +c( 0, 1, 1, 1, 0, 0),
 +c( 0, 0, 0, 0, 0, 0),
 +c( 0, 0, 0, 1, 0, 0),
 +c( 1, 0, 1, 0, 1, 0),
 +c( 1, 1, 1, 1, 1, 1))
 +#####################################################################
 +# calcule os parâmetros e faça o gráfico da função de verossimilhança
 +#####################################################################
 +</code>
roteiros/veror.1382371478.txt.gz · Última modificação: 2024/01/12 10:39 (edição externa)