Se tenho dados positivos altamente distorcidos, geralmente tomo logs. Mas o que devo fazer com dados não negativos altamente distorcidos que incluem zeros? Eu vi duas transformações usadas:
- que possui o recurso puro que 0 mapeia para 0.
- que c é estimado ou definido como um valor positivo muito pequeno.
Existem outras abordagens? Existem boas razões para preferir uma abordagem a outras?
data-transformation
large-data
Rob Hyndman
fonte
fonte
Respostas:
Parece-me que a escolha mais apropriada de transformação depende do modelo e do contexto.
O ponto '0' pode surgir de várias razões diferentes, cada uma das quais pode ter que ser tratada de maneira diferente:
Na verdade, não estou oferecendo uma resposta, pois suspeito que não haja transformação universal e "correta" quando você tiver zeros.
fonte
Ninguém mencionou a transformação inversa do seno hiperbólico. Então, para completar, estou adicionando aqui.
Isto é uma alternativa para as transformações de Box-Cox e é definida por onde θ > 0 . Para qualquer valor de θ , zero é mapeado para zero. Há também uma versão de dois parâmetros que permite uma mudança, assim como na transformação BC de dois parâmetros.
A transformação IHS trabalha com dados definidos em toda a linha real, incluindo valores negativos e zeros. Para valores grandes de ele se comporta como uma transformação de log, independentemente do valor de θ (exceto 0). O caso limitante como θ → 0 fornece f ( y , θ ) → y .y θ θ → 0 f( y, θ ) → y
Parece-me que a transformação do IHS deve ser muito mais conhecida do que é.
fonte
Uma abordagem útil quando a variável é usada como fator independente na regressão é substituí-la por duas variáveis: uma é um indicador binário de se é zero e a outra é o valor da variável original ou sua re-expressão, como seu logaritmo. Essa técnica é discutida no livro de Hosmer & Lemeshow sobre regressão logística (e em outros lugares, tenho certeza). Gráficos de probabilidade truncados da parte positiva da variável original são úteis para identificar uma reexpressão apropriada. (Veja a análise em https://stats.stackexchange.com/a/30749/919 para exemplos.)
Quando a variável é dependente em um modelo linear, a regressão censurada (como Tobit ) pode ser útil, evitando novamente a necessidade de produzir um logaritmo iniciado. Essa técnica é comum entre economistas.
fonte
As transformações de log com turnos são casos especiais das transformações de Box-Cox :
Essa é a forma estendida para valores negativos, mas também aplicável a dados que contêm zeros. Box e Cox (1964) apresentam um algoritmo para encontrar valores apropriados para os 's usando a máxima verossimilhança. Isso lhe dá a transformação definitiva.λ
Um motivo para preferir as transformações de Box-Cox é que elas são desenvolvidas para garantir suposições para o modelo linear. Há algum trabalho feito para mostrar que, mesmo que seus dados não possam ser transformados em normalidade, o estimado ainda levará a uma distribuição simétrica.λ
Não sei ao certo como isso trata seus dados, pois pode ser que que é apenas a transformação de log que você mencionou, mas pode valer a pena estimar os λ solicitados para ver se outra transformação é apropriado.λ = ( 0 , 1 ) λ
Em R, a
boxcox.fit
função no pacotegeoR
calculará os parâmetros para você.fonte
lambda2=TRUE
nos argumentos paraboxcox.fit
. (Também atualizei a resposta.)boxcoxfit
.Estou presumindo que zero! = Falta de dados, pois essa é uma pergunta totalmente diferente.
Ao pensar em como lidar com zeros na regressão linear múltipla, costumo considerar quantos zeros realmente temos?
Apenas alguns zeros
Se eu tiver um único zero em um conjunto de dados razoavelmente grande, tenderá a:
Você pode tornar esse procedimento um pouco menos bruto e usar o método boxcox com os turnos descritos na resposta do ars.
Grande número de zeros
Se meu conjunto de dados contiver um grande número de zeros, isso sugere que a regressão linear simples não é a melhor ferramenta para o trabalho. Em vez disso, usaria algo como modelagem de mistura (como sugerido por Srikant e Robin).
fonte
Se você quer algo rápido e sujo, por que não usar a raiz quadrada?
fonte
Presumo que você tenha dados contínuos.
Se os dados incluem zeros, isso significa que você tem um pico no zero, o que pode ser devido a algum aspecto específico dos seus dados. Aparece, por exemplo, em energia eólica, vento abaixo de 2 m / s produz energia zero (é chamado de corte) e vento sobre (algo em torno de) 25 m / s também produz energia zero (por razões de segurança, é chamado corte) . Enquanto a distribuição da energia eólica produzida parece contínua, há um pico em zero.
Minha solução: neste caso, sugiro tratar os zeros separadamente, trabalhando com uma mistura do pico em zero e o modelo que você planejou usar para a parte da distribuição que é contínua (Lebesgue).
fonte
Comparando a resposta fornecida por @RobHyndman a uma transformação de log mais um estendida para valores negativos com o formulário:
fonte
Como o ajuste de dois parâmetros Box-Cox foi proposto, aqui estão alguns R para ajustar os dados de entrada, execute uma função arbitrária (por exemplo, previsão de séries temporais) e retorne a saída invertida:
fonte
Suponha que Y seja a quantia que cada americano gasta em um carro novo em um determinado ano (preço total de compra). Y aumentará em 0; não terá valores entre 0 e cerca de 12.000; e terá outros valores principalmente na adolescência, na faixa dos vinte e nos trinta anos. Os preditores seriam procuradores para o nível de necessidade e / ou interesse em fazer essa compra. Dificilmente seria necessário dizer que a necessidade ou o interesse é zero para indivíduos que não fizeram compras; nessas escalas, os não compradores estariam muito mais próximos dos compradores do que Y ou mesmo o log de Y sugeriria. Em um caso como esse, mas na área da saúde, descobri que as previsões mais precisas, julgadas pela validação cruzada de conjunto de teste / conjunto de treinamento, foram obtidas por, em ordem crescente,
Alguns irão recuar nessa categorização de uma variável dependente contínua. Porém, embora sacrifique algumas informações, categorizar parece ajudar a restaurar um importante aspecto subjacente da situação - novamente, que os "zeros" são muito mais semelhantes aos demais do que Y indicaria.
fonte
A transformação de energia da Yeo-Johnson discutida aqui tem excelentes propriedades projetadas para lidar com zeros e negativos, enquanto constrói os pontos fortes da transformação de energia da Box Cox. É para isso que normalmente vou quando estou lidando com zeros ou dados negativos.
Aqui está um resumo das transformações com prós / contras para ilustrar por que a Yeo-Johnson é preferível.
Registro
Prós: funciona bem com dados positivos.
Contras: Não manipula zeros.
Log Plus 1
Prós: O deslocamento mais 1 adiciona a capacidade de lidar com zeros, além de dados positivos.
Contras: falha com dados negativos
Raiz quadrada
Prós: usa uma transformação de energia que pode lidar com zeros e dados positivos.
Contras: falha com dados negativos
Box Cox
Código R:
Prós: permite transformações de energia em escala
Contras: sofre de problemas com zeros e negativos (ou seja, pode lidar apenas com dados positivos.
Yeo Johnson
Código R:
Prós: pode lidar com dados positivos, zero e negativos.
Contras: Nada que eu possa pensar. As propriedades são muito semelhantes ao Box-Cox, mas podem lidar com dados zero e negativos.
fonte
Para esclarecer como lidar com o logaritmo zero nos modelos de regressão, escrevemos um artigo pedagógico explicando a melhor solução e os erros comuns que as pessoas cometem na prática. Também lançamos uma nova solução para resolver esse problema.
Você pode encontrar o artigo clicando aqui: https://ssrn.com/abstract=3444996
Em nosso artigo, na verdade, fornecemos um exemplo em que a adição de constantes muito pequenas fornece o viés mais alto. Nós fornecemos derivar uma expressão do viés.
Na verdade, a Poisson Pseudo Maximum Likelihood (PPML) pode ser considerada uma boa solução para esse problema. É preciso considerar o seguinte processo:
Mostramos que esse estimador é imparcial e que pode ser simplesmente estimado com o GMM com qualquer software estatístico padrão. Por exemplo, pode ser estimado executando apenas uma linha de código com o Stata.
Esperamos que este artigo possa ajudar e gostaríamos de receber seus comentários.
Christophe Bellégo e Louis-Daniel Pape CREST - Ecole Polytechnique - ENSAE
fonte