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

Vitor Aguiar vitor.aguiar em me.com
Sexta Abril 13 19:57:14 BRT 2012


Ótimo,

mas uma vez sem palavras Benilton.

Obrigado,
Vitor


On Apr 13, 2012, at 3:12 PM, Benilton Carvalho wrote:

> Eu vou apenas usar o primeiro marcador como exemplo.... (isso
> representa o "Minimo" de Codigo Minimo Reproduzivel). Vou tbm assumir
> o usual de teste qui-quadrado, no qual usa-se pvalor = P(Chi2 >
> valorObservado)
> 
> sx2 = 481252.8
> dfreedom = 276
> pvalor1 = pchisq(sx2, df=dfreedom, lower.tail=FALSE) ## vc vai obter zero
> pvalor2 = pchisq(sx2, df=dfreedom, lower.tail=FALSE, log.p=TRUE) ## vc
> vai obter -239469.2
> 
> em outras palavras, se zero nao te satisfaz como pvalor, entao
> e^{-239469.2} (exponencial, base neperiana) eh um valor "mais
> preciso".
> 
> b
> 
> 2012/4/13 Vitor Aguiar <vitor.aguiar em me.com>:
>> 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.
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> _______________________________________________
>> 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.




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