Existe uma transformação semelhante a Box-Cox para variáveis independentes? Ou seja, uma transformação que otimiza a variável para que ela se ajuste de forma mais razoável a um modelo linear?y~f(x)
Em caso afirmativo, existe uma função para executar isso R
?
r
regression
data-transformation
normality-assumption
Tal Galili
fonte
fonte
R
e, pensando nisso por um momento, não sei exatamente como alguém faria isso. Quais critérios você otimizaria para garantir a transformação "mais linear"? é tentador, mas, como visto na minha resposta aqui , sozinho não pode ser usado para ver se a suposição de linearidade de um modelo é satisfeita. Você tinha alguns critérios em mente?Respostas:
John Tukey defendeu seu " método dos três pontos " para encontrar re-expressões de variáveis para linearizar relacionamentos.
Ilustrarei com um exercício de seu livro, Análise Exploratória de Dados . Estes são dados de pressão de vapor de mercúrio de um experimento em que a temperatura foi variada e a pressão de vapor foi medida.
A relação é fortemente não linear: veja o painel esquerdo na ilustração.
Por ser um exercício exploratório , esperamos que seja interativo. Solicita-se ao analista que comece identificando três pontos "típicos" no gráfico : um próximo a cada extremidade e um no meio. Fiz isso aqui e os marquei em vermelho. (Quando fiz esse exercício há muito tempo, usei um conjunto diferente de pontos, mas cheguei aos mesmos resultados.)
No método dos três pontos, procura-se - por força bruta ou não - uma transformação Box-Cox que, quando aplicada a uma das coordenadas - y ou x - (a) coloca os pontos típicos aproximadamente em um linha e (b) usa um poder "legal", geralmente escolhido entre uma "escada" de poderes que pode ser interpretável pelo analista.
Por razões que se tornarão aparentes mais tarde, estendi a família Box-Cox, permitindo um "deslocamento" para que as transformações ocorram na forma
R
Quando o método de três pontos é aplicado aos valores de pressão (y) no conjunto de dados de vapor de mercúrio, obtemos o painel do meio das plotagens.
parms
Chegamos a um ponto análogo ao contexto da questão: por qualquer motivo (geralmente para estabilizar a variação residual), reexprimimos a variável dependente , mas descobrimos que a relação com uma variável independente é não linear. Então agora passamos a re-expressar a variável independente, em um esforço para linearizar a relação. Isso é feito da mesma maneira, apenas revertendo os papéis de xey:
parms
fonte
data <- cbind(temperature, pressure)
R
Dê uma olhada nesses slides em "Diagnóstico de regressão", de John Fox (disponível aqui , completo com referências), que discutem brevemente a questão da transformação da não linearidade. Ele cobre a "regra de abaulamento" de Tukey para selecionar transformações de poder (abordadas pela resposta aceita), mas também menciona as famílias de transformações Box-Cox e Yeo-Johnson. Veja a Seção 3.6 dos slides. Para uma análise mais formal do mesmo autor, ver J. Fox, Análise de Regressão Aplicada e Modelos Lineares Generalizados, Segunda Edição (Sage, 2008) .
Quanto aos pacotes R reais que ajudam nisso, dê uma olhada absoluta no pacote para carro , de autoria de J. Fox e S. Weisberg. Este pacote acompanha J. Fox e S. Weisberg, um companheiro de regressão aplicada à regressão aplicada, segunda edição (Sage, 2011) , outra leitura obrigatória. Usando esse pacote, você pode começar
basicPower()
(transformações simples de energia),bcPower()
(transformações Box-Cox) eyjPower()
(transformações Yeo-Johnson). Há também powerTransform () :Verifique os dois livros para obter mais detalhes sobre a teoria por trás dessas transformações e sobre abordagens computacionais.
fonte
fonte