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

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


só pra explicar, o "Chi square" é o sum(X2).



On Apr 13, 2012, at 2:46 PM, Vitor Aguiar wrote:

> 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/74bc17df/attachment.html>


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