Armadilhas a evitar ao transformar dados?


15

Consegui uma forte relação linear entre minha variável e Y após transformar duplamente a resposta. O modelo era Y X, mas eu o transformei em XYYX melhorarR20,19-0,76.YXXR2

Claramente fiz uma cirurgia decente sobre esse relacionamento. Alguém pode discutir as armadilhas de fazer isso, como perigos de transformações excessivas ou possíveis violações de princípios estatísticos?


11
Pelo que você tem, apenas da álgebra parece apenas . Você pode postar os dados ou mostrar um gráfico? Existem razões científicas para esperar Y = 0 quando X = 0 ? YX2Y=0X=0
Nick Cox

11
@NickCox: Eu acho que é uma notação não convencional para E Y = β 0 + β 1 X ; talvez o OP esteja falando R em vez de matemática (algo a ser desencorajado, é claro). YXEY=β0+β1X
Scortchi - Restabelece Monica

@ Scortchi Eu temo que você esteja certo. Ver os dados ajudaria de qualquer maneira.
Nick Cox

Nesse caso, um 0 X implicaria um 0 Y, pois Y está causando mortes e X é o total de KMs acionados por todos os motoristas.
Info5ek

2
@AaronHall A equação não é necessariamente inútil, pois (multiplicando de volta por éX, que pode muito bem ser um modelo potencialmente plausível em algumas situações). No entanto, aR2na forma da equação dada na pergunta não é muito uso que você não pode compará-lo com algo montado em uma escala diferente. (Aliás, se fosse esse o seu downvote na minha resposta, uma explicação sobre o que você acha que está errado na resposta seria útil.)Y=β0X+β1X+XϵR2
Glen_b -Reinstate Monica

Respostas:


20

Você não pode realmente comparar antes e depois, porque a variabilidade subjacente em Y é diferente. Então, você literalmente pode tomar nenhum conforto qualquer que seja a partir da mudança em R 2 . Isso não diz nada de valor na comparação dos dois modelos.R2YR2

Os dois modelos são diferentes de várias maneiras, portanto significam coisas diferentes - eles assumem coisas muito diferentes sobre a forma do relacionamento e a variabilidade do termo de erro (quando considerados em termos do relacionamento entre e X ). Portanto, se você estiver interessado em modelar Y (se Y for significativo), produza um bom modelo para isso. Se você estiver interessado em modelar YXYY (/Y é significativo), produza um bom modelo para isso. SeY carrega significado, então faça um bom modelo para isso. Mas compare todos os modelos concorrentes em escalas comparáveis. R2em respostas diferentes simplesmente não são comparáveis.Y/XR2

Se você está apenas tentando relacionamentos diferentes na esperança de encontrar uma transformação com um alto - ou qualquer outra medida de 'bom ajuste' - as propriedades de qualquer inferência que você queira conduzir serão impactadas pela existência de esse processo de pesquisa.R2

As estimativas tenderão a ter um desvio de zero, os erros padrão serão muito pequenos, os valores de p serão muito pequenos, os intervalos de confiança serão muito estreitos. Seus modelos parecerão, em média, 'muito bons' (no sentido de que o comportamento fora da amostra será decepcionante em comparação com o comportamento dentro da amostra).

Para evitar esse tipo de ajuste excessivo, é necessário, se possível, fazer a identificação e estimativa do modelo em diferentes subconjuntos dos dados (e avaliação do modelo em um terço). Se você repetir esse tipo de procedimento em muitas "divisões" dos dados coletados aleatoriamente, terá uma noção melhor de quão reprodutíveis são seus resultados.

Existem muitos posts aqui com pontos relevantes sobre essas questões: pode valer a pena tentar algumas pesquisas.

(Se você tem boas razões a priori para escolher uma transformação específica, essa é uma questão diferente. Mas pesquisar o espaço das transformações para encontrar algo que se encaixa traz todos os tipos de problemas do tipo 'espionagem de dados').


Obrigado pela resposta Glen. A razão pela qual fiz essa transformação é porque é a única que não me deu resíduos tendenciosos. Eu tentei o padrão y / x, log (y), sqrt (y) e várias combinações desses. Todos resultaram em um gráfico residual inclinado. Somente depois de fazer uma transformação em dois estágios, obtive resíduos aleatórios. No entanto, você afirma que esse modelo é potencialmente pouco informativo para dados fora da amostra, pois eu posso apenas ter ajustado demais os dados, correto?
Info5ek

Bem, sim, mas é um problema com qualquer forma de especificação de modelo ao analisar os dados, então isso acontece muito. Em muitas situações, é difícil de evitar, que é onde a amostra de divisão pode vir em (Cross-validation pode ser uma ferramenta útil para tais situações.).
Glen_b -Reinstate Monica

Seria útil conhecer as razões do voto negativo. O que há de errado com a resposta? Talvez possa ser melhorado. (Se não pode ser melhorado, por que o
voto negativo

11
@Glen_b: é complicado validar cruzadamente um procedimento mal definido - em cada dobra, você precisa repetir o processo de analisar diagnósticos, pensando em outra transformação quando não gosta deles, tentando isso etc.
Scortchi - Restabelece Monica

11
@ Scortchi Sim, se algumas transformações não estiverem sendo selecionadas de um pool conhecido de candidatos por alguma regra simples, pode ser impossível.
Glen_b -Reinstala Monica

16

Há um problema maior do que os identificados por @Glen_b.

set.seed(123)
x <- rnorm(100, 20, 2)
y <- rnorm(100, 20, 2)
dv <- (y/x)^.5
iv <- x^.5
m1 <- lm(dv~iv)
summary(m1)

E eu recebo um de 0,49 e um valor P que é de 5,5 × 10 - 16 .R25.5×1016

Você tem nos dois lados da equação.X


2
Não tenho certeza se esse é um problema diferente de não ter boas razões a priori para expressar o modelo de uma maneira e não de outra. Se você deixar &Z=W=YX então você também pode dizer que o primeiro modelo (YX) temZ2em ambos os lados da equação. Z=XYXZ2
Scortchi - Restabelece Monica

4
Se & Z são ruídos aleatórios, a regressão de Y em X fornece um forte relacionamento. De onde a assimetria que rotula uma regressão é espúria e não a outra, sem considerar o que as variáveis ​​significam? Esse tipo de coisa foi debatido entre Pearson e Yule ( Aldrich (1995) ) e eu estou com Yule: o que é espúrio não é a correlação, mas a afirmação de um relacionamento causal baseado nessa correlação. WZYX
Scortchi - Restabelece Monica

11
Sim, mas aqui, a regressão começou com X e Y. Não importa quais variáveis ​​são, por assim dizer, as variáveis?
Peter Flom - Restabelece Monica

2
Não consigo entender por que deveria, exceto na medida em que @Glen_b ressalta em sua primeira frase, se seu objetivo era prever , então um alto coeficiente de determinação de um modelo para W não é motivo de preocupação. E, é claro, se você tem idéias sólidas sobre a aparência do termo de erro, um modelo é mais tratável que o outro. YW
Scortchi - Restabelecer Monica

4
Você levanta um bom argumento sobre a W&Z, @Scortchi, mas parece-me que importa o que você considera as variáveis ​​de que gosta e quais variáveis ​​você criou apenas para obter um modelo melhor. Quais são as variáveis ​​reais são determinadas pelo significado de X etc, no contexto da questão substantiva. Eu deduzo do texto que o OP quer entender o relacionamento b / t X e Y, e criei W e Z para melhorar o ajuste do modelo. Ou seja, neste caso concreto, parece-me que Peter está certo, você não pode tentar melhorar seu modelo colocando X nos dois lados.
gung - Restabelece Monica

4

Existem dois elementos no exemplo de @ Peter, que podem ser úteis para desemaranhar:

(1) Especificação incorreta do modelo. Os modelos

yi=β0+β1xi+εi(1)

&

wi=γ0+γ1zi+ζi(2)

wi=yixizi=xi

wi=β0zi2+β1+εizi2(1)

yi=(γ0xi+γ1xi+ζixi)2(2)

YXβ1=0WZ

YXWZW

EYx=EYzβ0+VarY8β03/2z

z

Seguindo o exemplo ...

set.seed(123)
x <- rnorm(100, 20, 2)
y <- rnorm(100, 20, 2)
w <- (y/x)^.5
z <- x^.5
wrong.model <- lm(w~z)
right.model <- lm(y~x)
x.vals <- as.data.frame(seq(15,25,by=.1))
names(x.vals) <- "x"
z.vals <- as.data.frame(x.vals^.5)
names(z.vals) <- "z"
plot(x,y)
lines(x.vals$x, predict(right.model, newdata=x.vals), lty=3)
lines(x.vals$x, (predict(wrong.model, newdata=z.vals)*z.vals)^2, lty=2)
abline(h=20)
legend("topright",legend=c("data","y on x fits","w on z fits", "truth"), lty=c(NA,3,2,1), pch=c(1,NA,NA,NA))
plot(z,w)
lines(z.vals$z,sqrt(predict(right.model, newdata=x.vals))/as.matrix(z.vals), lty=3)
lines(z.vals$z,predict(wrong.model, newdata=z.vals), lty=2)
lines(z.vals$z,(sqrt(20) + 2/(8*20^(3/2)))/z.vals$z)
legend("topright",legend=c("data","y on x fits","w on z fits","truth"),lty=c(NA,3,2,1), pch=c(1,NA,NA,NA))

enter image description here

enter image description here

yxwzw against z, might be tempted to think that intervening to increase z will reduce w—we can only hope & pray they don't succumb to a temptation we've all been incessantly warned against; that of confusing correlation with causation.

Aldrich (2005), "Correlations Genuine and Spurious in Pearson and Yule", Statistical Science, 10, 4 provides an interesting historical perspective on these issues.


3

A resposta anterior de @Glen_b é muito importante. Brincar com transformações distorce todas as partes da inferência estatística e resulta emR2isso é altamente tendencioso. Resumindo, não ter um parâmetro no modelo para tudo o que você não conhece dará uma falsa sensação de precisão. É por isso que as splines de regressão agora são tão populares.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.