[R-br] arredondamento de números no R

Vitor Aguiar vitor.aguiar em me.com
Sexta Abril 13 18:46:16 BRT 2012


esses valores são altos. É um banco de dados com muitas variáveis.

Veja:

[1] "D3S1358"
Chi square 
  481252.8 
degrees of freedom 
               276 
p-value 
      1  
[1] "D5S818"
Chi square 
  7583.649 
degrees of freedom 
               105 
p-value 
      1 
[1] "D7S820"
Chi square 
  72249.05 
degrees of freedom 
               105 
p-value 
      1 
[1] "D8S1179"
Chi square 
  220352.7 
degrees of freedom 
               190 
p-value 
      1 
[1] "D13S317"
Chi square 
  622.7457 
degrees of freedom 
                78 
p-value 
      1  
[1] "D16S539"
Chi square 
  283297.9 
degrees of freedom 
               153 
p-value 
      1 
[1] "D18S51"
Chi square 
  11598.11 
degrees of freedom 
               820 
p-value 
      1 
[1] "D21S11"
Chi square 
  149753.1 
degrees of freedom 
               561 
p-value 
      1 
[1] "CSF1PO"
Chi square 
  2452.957 
degrees of freedom 
                91 
p-value 
      1 
[1] "FGA"
Chi square 
    416837 
degrees of freedom 
              1953 
p-value 
      1 
[1] "TH01"
Chi square 
  251881.9 
degrees of freedom 
               153 
p-value 
      1 
[1] "TPOX"
Chi square 
  412930.9 
degrees of freedom 
               136 
p-value 
      1 
[1] "vWA"
Chi square 
  12138.88 
degrees of freedom 
               171 
p-value 
      1 
[1] "PentaD"
Chi square 
  28528.19 
degrees of freedom 
               351 
p-value 
      1  
[1] "PentaE"
Chi square 
  129719.1 
degrees of freedom 
               465 
p-value 
      1 



On Apr 13, 2012, at 2:38 PM, Benilton Carvalho wrote:

> exemplo reproduzivel.........................................
> 
> bastaria vc dizer quais sao os valores de sum(X2) e os graus de liberdade...
> 
> b
> 
> 2012/4/13 Vitor Aguiar <vitor.aguiar em me.com>:
>> Sandro,
>> 
>> usando format com nsmall = 20, eu tenho um resultado de 1.000000000000000000.
>> Mas eu tenho certeza que esse número é na realidade alguma coisa menor que 1.
>> Eu não sei se isso ocorre pelo modo como o R mostra o número (com 22 casas) ou se é um problema em como os valores estão guardados no R. Eu estou usando os valores como "doubles" mas ainda assim parece não ser suficiente.
>> 
>> Benílton,
>> 
>> se eu colocar o log=TRUE o resultado do cálculo passa a ser 0 (zero), ao invés de 1. Assim, também não consigo nenhuma medida do que quero medir.
>> 
>> Tura,
>> usando
>>> pvalue = 2 * pchisq(sum(X2, na.rm = TRUE), dfreedom(X2),lower.tail=F)
>> 
>> o resultado ainda é 0 (zero). E se eu usar o format(x, nsmall = 20) nisso eu ainda tenho 0.00000000000000000.
>> 
>> 
>> A propósito, há alguma forma de guardar números no R com mais bits do que "as doubles"?
>> 
>> Obrigado a todos,
>> Vitor
>> 
>> 
>> 
>> 
>> On Apr 12, 2012, at 2:28 AM, Bernardo Rangel Tura wrote:
>> 
>>> On 04/11/2012 07:26 PM, Vitor Aguiar wrote:
>>>> Caros,
>>>> 
>>>> quero fazer o seguinte cálculo:
>>>> 
>>>> pvalue = 1 - pchisq(sum(X2, na.rm = TRUE), dfreedom(X2)) #dfreedom( ) é
>>>> uma função escrita por mim
>>>> 
>>>> mas usando os meus dados isso dá sempre 0 (zero), porque a parte do
>>>> pchisq( ) é um valor muito próximo de 1, então o R arredonda para 1,
>>>> ficando 1 - 1 = 0.
>>>> Mesmo que o verdadeiro valor desse cálculo seja algo muitíssimo pequeno,
>>>> como zero seguido de vários zeros e eventualmente algum outro número, eu
>>>> preciso saber qual é.
>>>> 
>>>> Como fazer isso?
>>>> 
>>>> Desde já agradeço a quem puder ajudar.
>>>> 
>>>> Vitor Aguiar
>>> 
>>> 
>>> Vitor,
>>> 
>>> Primeiro você ha de convir que 1-número muito pequeno = 1
>>> Mas acho que no seu caso é mais fácil de resolver
>>> Em vez de
>>> 
>>> pvalue = 1 - pchisq(sum(X2, na.rm = TRUE), dfreedom(X2))
>>> 
>>> use
>>> 
>>> pvalue = 2 * pchisq(sum(X2, na.rm = TRUE), dfreedom(X2),lower.tail=F)
>>> 
>>> 
>>> No primeiro você calcula 1 - P[X <= x] enquanto no segundo 2 * P[X > x].
>>> Desta forma o número muito pequeno deve aparecer, se persistir o problema (o que eu duvido) use a opção "log.p=T", se ainda assim não resolver (o que acredito ser inverossímil) manda um exemplo para a lista
>>> 
>>> []s
>>> Tura
>>> _______________________________________________
>>> 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.
> _______________________________________________
> 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.


-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20120413/c0e65046/attachment.html>


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