[R-br] Problema ao truncar PDF

Cristiano Strieder cstrieder em gmail.com
Quinta Junho 16 03:01:43 BRT 2011


Obrigado pelas respostas mais uma vez. Particularmente acho melhor
incluir o parâmetro trunc na dricker.t().

Ao invés da dricker, estou agora aplicando a mesma idéia a função
dpoig. Novamente estou com problema, Error in f * g : non-numeric
argument to binary operator.

Seque código:

dpoix <- function(y, frac=0.05, rate=1/1000, log=FALSE) {
	  b <- y*log(frac)
	  m <- log(rate)
	  n <- (y+1)*log(rate+frac)
    if(log)b+m-n else exp(b+m-n)
}

ppoix <- function(y, frac=0.05, rate=1/1000) {
   r <- exp(-y*log(rate+frac))*(rate*exp(y*log(rate+frac) -
rate*exp(y*log(frac))))
   s <- (rate+frac)*log(rate+frac) - log(frac)*rate - frac*log(frac)
   r/s
  }

dpoix.t <- function(y, frac=0.05, rate=1/1000, trunc) {
    p.trunc <- ppoix(trunc)
    dpoix(y)/(1-p.trunc)
  }

dpoix(10)
dpoix.t(10,trunc=0)

dricker =  function (x,b,...) {b^2*x*exp(-b*x)}
pricker = function (x, b,...){exp(-b*x)*(exp(b*x)-b*x-1)} # CDF
dricker.t = function (x, b, trunc, ...){
  p.trunc = pricker(trunc,b)
	dricker(x,b)/(1 - p.trunc)
}
dricker(x=10, b=0.1)
dricker.t(x=10, b=0.1, trunc=0)

Alguma sugestão?


2011/6/15 Benilton Carvalho <beniltoncarvalho em gmail.com>:
> pelo jeito o autor da pagina nao testou o codigo... ou, se testou,
> tinha uma variavel (trunc) no ambiente que foi herdada pela funcao na
> chamada.
>
> a funcao dricker.t precisa da seguinte linha antes de p.trunc
>
> trunc = list(...)[['trunc']]
>
> b
>
> 2011/6/16 Cristiano Strieder <cstrieder em gmail.com>:
>> Obrigado pelas respostas srs, mas acho q ainda n compreendi como
>> solucionar o problema. Mesmo se eu passar o trunc na chamada da
>> função, como abaixo, ainda retorna o erro, Error in -b * x :
>> non-numeric argument to binary operator.
>>
>> Estou me basendo neste material,
>> http://ecologia.ib.usp.br/let/doku.php?id=tutoriais:pdf.
>>
>> dricker =  function (x,b,...) {b^2*x*exp(-b*x)}
>> pricker = function (x, b,...){exp(-b*x)*(exp(b*x)-b*x-1)} # CDF
>> dricker.t = function (x, b, ...){
>>  p.trunc = pricker(trunc,b)
>>  dricker(x,b)/(1 - p.trunc)
>> }
>> dricker.t(x=10, b=0.1, trunc=1)
>>
>>
>> 2011/6/15 Paulo Justiniano <paulojus em leg.ufpr.br>:
>>> veja trecho marcado
>>> a variavel "trunc" nao eh definida em lugar algum
>>> e portanto a funcao nao sabe de onde ler trunc
>>>
>>> note que seu codigo pode estar lendo variaveis do GlobalEnv
>>>
>>> On Wed, 15 Jun 2011, Cristiano Strieder wrote:
>>>
>>>> Olá,
>>>>
>>>> estou com problemas no seguinte código:
>>>>
>>>> dricker =  function (x,b,...) {b^2*x*exp(-b*x)}
>>>> pricker = function (x, b,...){exp(-b*x)*(exp(b*x)-b*x-1)} # CDF
>>>> dricker.t = function (x, b,...){
>>>>  p.trunc = pricker(trunc,b)
>>>
>>>                     ^^^^^
>>>>
>>>>        dricker(x,b)/(1 - p.trunc)}
>>>> dricker.t(10, b=0.1)
>>>>
>>>
>>>
>>>
>>>
>>>> Error in -b * x : non-numeric argument to binary operator
>>>>
>>>> Alguma sugestão?
>>>>
>>>> Obrigado.
>>>>
>>>> --
>>>> Cristiano Strieder
>>>> São José dos Campos - SP
>>>> _______________________________________________
>>>> R-br mailing list
>>>> R-br em listas.c3sl.ufpr.br
>>>> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>>>> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça
>>>> código mínimo reproduzível.
>>>
>>> _______________________________________________
>>> R-br mailing list
>>> R-br em listas.c3sl.ufpr.br
>>> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>>> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código
>>> mínimo reproduzível.
>>>
>>
>>
>>
>> --
>> Cristiano Strieder
>> São José dos Campos - SP
>> _______________________________________________
>> R-br mailing list
>> R-br em listas.c3sl.ufpr.br
>> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
>>
>
>
>
> --
> Successful people ask better questions, and as a result, they get
> better answers. (Tony Robbins)
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
>



-- 
Cristiano Strieder
São José dos Campos - SP


Mais detalhes sobre a lista de discussão R-br