voglio tracciare la densità della variabile il cui intervallo è la seguente:Trasformare densità variabile su scala logaritmica con R
Min. :-1214813.0
1st Qu.: 1.0
Median : 40.0
Mean : 303.2
3rd Qu.: 166.0
Max. : 1623990.0
La trama lineare dei risultati di densità in una colonna alta nel range [0,1000] con due code molto lunghe verso l'infinito positivo e l'infinito negativo. Quindi, mi piacerebbe trasformare la variabile in una scala di registro, in modo che io possa vedere cosa sta succedendo attorno alla media. Per esempio, sto pensando a qualcosa di simile:
log_values = c(-log10(-values[values<0]), log10(values[values>0]))
che si traduce in:
Min. 1st Qu. Median Mean 3rd Qu. Max.
-6.085 0.699 1.708 1.286 2.272 6.211
Il problema principale di questo è il fatto che esso non include i valori 0
. Ovviamente, posso spostare tutti i valori da 0
con values[values>=0]+1
, ma ciò introdurrebbe una certa distorsione nei dati.
Quale sarebbe un modo accettato e scientificamente valido per trasformare questa variabile nella scala del registro?
Come sulla creazione di due lotti? Uno per l'intera gamma, il secondo con solo la sezione centrale. – Andrie
Sì, ci ho pensato, ma mi stavo chiedendo se c'è una trasformazione intelligente :-) – Mulone
Potresti usare 'segno (valori) * log10 (abs (valori))' per ottenere ciò che hai costruito sopra, ma poi tutti i valori zero diventerà '-Inf'. – James