A linha de melhor ajuste não parece boa. Por quê?


82

Veja este gráfico do Excel: o gráfico

A linha de melhor ajuste do 'senso comum' pareceria uma linha quase vertical, diretamente através do centro dos pontos (editada manualmente em vermelho). No entanto, a linha de tendência linear, conforme decidido pelo Excel, é a linha preta diagonal mostrada.

  1. Por que o Excel produziu algo que (para o olho humano) parece estar errado?
  2. Como posso produzir uma linha de melhor ajuste que pareça um pouco mais intuitiva (ou seja, algo como a linha vermelha)?

Atualização 1. Uma planilha do Excel com dados e gráfico está disponível aqui: dados de exemplo , CSV em Pastebin . As técnicas de regressão type1 e type2 estão disponíveis como funções do excel?

Atualização 2. Os dados representam um parapente subindo em uma térmica enquanto flutua com o vento. O objetivo final é investigar como a força e a direção do vento variam com a altura. Sou engenheiro, NÃO matemático ou estatístico, portanto as informações nessas respostas me deram muito mais áreas para pesquisa.


5
xy

12
Esse fenômeno foi uma das principais descobertas estatísticas do século XIX (se não de todos os tempos). É denominado regressão em relação à média . De fato, é exatamente a razão pela qual esse procedimento estatístico é chamado de "regressão"!
whuber

3
Devo acrescentar que a principal razão pela qual os ajustes parecem tão diferentes é que o gráfico exagera muito a escala no eixo y. Ao desenhá-lo onde as duas escalas são proporcionais aos desvios padrão marginais, você pode chegar a conclusões completamente diferentes sobre qual ajuste é mais "senso comum".
whuber

6
yx=0.714

7
Isso já foi abordado várias vezes no site (por exemplo, veja aqui ). Quando você entende o que é uma linha de regressão, é fácil ver por que é a linha preta. Faça a si mesmo duas perguntas: 1: qual é o valor médio de y quando x é de cerca de 0,712? 2. Quais são as linhas vermelhas e pretas que devem ser? ... [Eu realizada fora fechando como duplicado, por agora, pois há específicos problemas com seus dados que valeria a pena reorientar sua pergunta sobre]
Glen_b

Respostas:


111

Existe uma variável dependente?

(xi,yi)

insira a descrição da imagem aqui

Veja como você pode fazer isso no R:

> para <- read.csv("para.csv")
> plot(para)
> 
> # run PCA
> pZ=prcomp(para,rank.=1)
> # look at 1st PC
> pZ$rotation
           PC1
lon 0.09504313
lat 0.99547316
> 
> colMeans(para) # PCA was centered
       lon        lat 
-0.7129371 53.9368720 
> # recover the data from 1st PC
> pc1=t(pZ$rotation %*% t(pZ$x) )
> # center and show
> lines(pc1 + t(t(rep(1,123))) %*% c)

yiy(xi)

Se você deseja tratar as variáveis ​​igualmente ou não, depende do objetivo. Não é a qualidade inerente dos dados. Você precisa escolher a ferramenta estatística certa para analisar os dados; nesse caso, escolha entre a regressão e o PCA.

Uma resposta a uma pergunta que não foi feita

Então, por que no seu caso uma linha de tendência (regressão) no Excel não parece ser uma ferramenta adequada para o seu caso? O motivo é que a linha de tendência é uma resposta a uma pergunta que não foi feita. Aqui está o porquê.

lat=a+b×lon

Imagine que não havia vento. Um parapente faria o mesmo círculo repetidamente. Qual seria a linha de tendência? Obviamente, seria uma linha horizontal plana, sua inclinação seria zero, mas isso não significa que o vento esteja soprando na direção horizontal!

yx

insira a descrição da imagem aqui

Código R para a simulação:

t=1:123
a=1 #1
b=0 #1/10
y=10*sin(t)+a*t
x=10*cos(t)+b*t

plot(x,y,xlim=c(-60,60))
xp=-60:60
lines(b*t,a*t,col='red')

model=lm(y~x)
lines(xp,xp*model$coefficients[2]+model$coefficients[1])

Portanto, a direção do vento claramente não está alinhada com a linha de tendência. Eles estão ligados, é claro, mas de maneira não trivial. Portanto, minha afirmação de que a linha de tendência do Excel é uma resposta a alguma pergunta, mas não a que você fez.

Por que PCA?

Como você observou, existem pelo menos dois componentes do movimento de um parapente: a deriva com um vento e o movimento circular controlado por um parapente. Isso é visto claramente quando você conecta os pontos em seu gráfico:

insira a descrição da imagem aqui

Por um lado, o movimento circular é realmente um incômodo para você: você está interessado no vento. Embora, por outro lado, você não observe a velocidade do vento, apenas observe o parapente. Portanto, seu objetivo é inferir o vento não observável a partir da leitura da localização do parapente observável. Essa é exatamente a situação em que ferramentas como análise fatorial e PCA podem ser úteis.

O objetivo do PCA é isolar alguns fatores que determinam as múltiplas saídas analisando as correlações nas saídas. É eficaz quando a saída está vinculada a fatores linearmente, o que acontece nos seus dados: o desvio do vento simplesmente adiciona às coordenadas do movimento circular, é por isso que o PCA está trabalhando aqui.

Configuração PCA

Então, estabelecemos que o PCA deveria ter uma chance aqui, mas como vamos configurá-lo? Vamos começar adicionando uma terceira variável, time. Vamos atribuir o tempo 1 a 123 para cada observação 123, assumindo a frequência de amostragem constante. Veja como o gráfico 3D se parece com os dados, revelando sua estrutura espiral:

insira a descrição da imagem aqui

O próximo gráfico mostra o centro imaginário de rotação de um parapente como círculos marrons. Você pode ver como ele flutua no avião lat-lon com o vento, enquanto o parapente mostrado com um ponto azul está circulando em torno dele. O tempo está no eixo vertical. Liguei o centro de rotação a um local correspondente de um parapente, mostrando apenas os dois primeiros círculos.

insira a descrição da imagem aqui

O código R correspondente:

library(plotly)       

 para <- read.csv("C:/Users/akuketay/Downloads/para.csv")
 n=24

   para$t=1:123 # add time parameter

   # run PCA
     pZ3=prcomp(para)
     c3=colMeans(para) # PCA was centered
     # look at PCs in columns
       pZ3$rotation

       # get the imaginary center of rotation 
       pc31=t(pZ3$rotation[,1] %*% t(pZ3$x[,1]) )
     eye = pc31 + t(t(rep(1,123))) %*% c3
     eyedata = data.frame(eye)

     p = plot_ly(x=para[1:n,1],y=para[1:n,2],z=para[1:n,3],mode="lines+markers",type="scatter3d") %>%
       layout(showlegend=FALSE,scene=list(xaxis = list(title = 'lat'),yaxis = list(title = 'lon'),zaxis = list(title = 't'))) %>%
     add_trace(x=eyedata[1:n,1],y=eyedata[1:n,2],z=eyedata[1:n,3],mode="markers",type="scatter3d") 
     for( i in 1:n){
         p = add_trace(p,x=c(eyedata[i,1],para[i,1]),y=c(eyedata[i,2],para[i,2]),z=c(eyedata[i,3],para[i,3]),color="black",mode="lines",type="scatter3d")
       }

subplot(p)

A deriva do centro de rotação do parapente é causada principalmente pelo vento, e o caminho e a velocidade da deriva estão correlacionados com a direção e a velocidade do vento, variáveis ​​não observáveis ​​de interesse. É assim que a deriva se parece quando projetada no plano lat-lon:

insira a descrição da imagem aqui

Regressão PCA

Portanto, antes estabelecemos que a regressão linear regular não parece funcionar muito bem aqui. Também descobrimos o porquê: porque não reflete o processo subjacente, porque o movimento do parapente é altamente não-linear. É uma combinação de movimento circular e um desvio linear. Também discutimos que, nessa situação, a análise fatorial pode ser útil. Aqui está um esboço de uma possível abordagem para modelar esses dados: regressão PCA . Mas primeiro vou mostrar a curva ajustada da regressão PCA :

insira a descrição da imagem aqui

Isso foi obtido da seguinte maneira. Execute o PCA no conjunto de dados que possui a coluna extra t = 1: 123, conforme discutido anteriormente. Você recebe três componentes principais. O primeiro é simplesmente t. O segundo corresponde à coluna lon e o terceiro à coluna lat.

asin(ωt+φ)ω,φ

É isso aí. Para obter os valores ajustados, você recupera os dados dos componentes ajustados, conectando a transposição da matriz de rotação do PCA nos componentes principais previstos. Meu código R acima mostra partes do procedimento e o restante você pode descobrir facilmente.

Conclusão

É interessante ver quão poderoso é o PCA e outras ferramentas simples quando se trata de fenômenos físicos onde os processos subjacentes são estáveis, e as entradas se traduzem em saídas por meio de relacionamentos lineares (ou linearizados). Portanto, no nosso caso, o movimento circular é muito não-linear, mas nós o linearizamos facilmente usando funções seno / cosseno em um parâmetro de tempo t. Minhas parcelas foram produzidas com apenas algumas linhas de código R, como você viu.

O modelo de regressão deve refletir o processo subjacente; somente você pode esperar que seus parâmetros sejam significativos. Se este é um parapente à deriva no vento, um gráfico de dispersão simples, como na pergunta original, oculta a estrutura temporal do processo.

Também a regressão do Excel foi uma análise transversal, para a qual a regressão linear funciona melhor, enquanto seus dados são um processo de série temporal, em que as observações são ordenadas no tempo. A análise de séries temporais deve ser aplicada aqui e foi realizada em regressão PCA.

Notas sobre uma função

y=f(x)xyxyyxlat=f(lon)


11
a sin ωt+b cos ωt

11
Se você deseja tratá-los igualmente ou não, depende do objetivo. Não é a qualidade inerente dos dados. - Ótimo ponto e +1.
Richard Hardy

@NickCox, isso mesmo, ele teria sido menos trabalho também
Aksakal

Vale a pena ressaltar que PCA é a generalização da regressão do eixo principal para a situação em que você possui> 2 variáveis. Mas, como neste caso existem apenas 2 variáveis, o nome padrão da técnica seria regressão do eixo principal (também chamada de regressão ortogonal ou regressão do tipo II).
Tom Wenseleers

61

A resposta provavelmente tem a ver com a maneira como você está julgando mentalmente a distância da linha de regressão. A regressão padrão (Tipo 1) minimiza o erro ao quadrado, onde o erro é calculado com base na distância vertical da linha .

A regressão do tipo 2 pode ser mais análoga ao seu julgamento da melhor linha. Nele, o erro quadrático minimizado é a distância perpendicular à linha . Há uma série de consequências para essa diferença. Um importante é que, se você trocar os eixos X e Y em seu gráfico e reajustar a linha, obterá uma relação diferente entre as variáveis ​​para a regressão do Tipo 1. Para a regressão do tipo 2, o relacionamento permanece o mesmo.

Minha impressão é que há uma boa quantidade de debate sobre onde usar a regressão Tipo 1 vs Tipo 2, e por isso sugiro que leia com atenção as diferenças antes de decidir qual aplicar. A regressão do tipo 1 é frequentemente recomendada nos casos em que um eixo é controlado experimentalmente ou pelo menos medido com muito menos erros que o outro. Se essas condições não forem atendidas, a regressão do Tipo 1 irá inclinar a inclinação para 0 e, portanto, a regressão do Tipo 2 é recomendada. No entanto, com ruído suficiente nos dois eixos, a regressão do tipo 2 aparentemente tende a enviesá-los para 1. Warton et al. (2006) e Smith (2009) são boas fontes para entender o debate.

Observe também que existem vários métodos sutilmente diferentes que se enquadram na categoria ampla de regressão tipo 2 (eixo principal, eixo principal reduzido e regressão do eixo principal padrão) e que a terminologia sobre os métodos específicos é inconsistente.

Warton, DI, IJ Wright, DS Falster e M. Westoby. 2006. Métodos de ajuste de linha bivariados para alometria. Biol. Rev. 81: 259–291. doi: 10.1017 / S1464793106007007

Smith, RJ 2009. Sobre o uso e uso indevido do eixo maior reduzido para ajuste de linha. Sou. J. Phys. Anthropol. 140: 476-486. doi: 10.1002 / ajpa.21090


EDIT :

@amoeba salienta que o que estou chamando de regressão tipo 2 acima também é conhecido como regressão ortogonal; esse pode ser o termo mais apropriado. Como eu disse acima, a terminologia nesta área é inconsistente, o que merece cuidados extras.


19
Debate sobre se deve usar o tipo 1 ou o tipo 2? Não há nada a debater sobre quando você sabe qual é seu objetivo (função objetivo ou função de perda). E se não, bem, você deve esclarecer isso antes de prosseguir.
Richard Hardy

7
O tipo 2 também produz resultados sem sentido se os dois eixos usarem unidades diferentes.
John Dvorak

4
Você está usando "Tipo 1" e "Tipo 2" como se fossem termos padrão. São eles? Eu nunca chefiei alguém chamando regressão usual e regressão ortogonal "tipo 1" e "tipo 2".
Ameba diz Reinstate Monica

2
@RichardHardy É claro que é melhor esclarecer um objetivo específico. Mas, como eu disse na resposta, minha impressão é de que existe um debate em andamento sobre o uso deles em um subconjunto de casos - e os documentos que cito (assim como as recomendações conflitantes que recebo dos revisores) parecem confirmar isso.
mkt - Reintegrar Monica

3
@mkt, obrigado pelo seu esclarecimento. De fato, pode haver algum debate entre pessoas que não têm certeza do que estão buscando. Lá, o foco do debate é qual dos dois é mais relevante para o objetivo do assunto. O que eu queria enfatizar é que não há debate uma vez que seu objetivo esteja bem definido, ou seja, o objetivo do objeto é traduzido para uma linguagem estatística (o que é inevitável se alguém empregar métodos estatísticos). Então, acho que concordamos, estamos apenas enfatizando diferentes partes do argumento.
Richard Hardy

31

A pergunta que o Excel tenta responder é: "Supondo que y depende de x, qual linha prediz y melhor". A resposta é que, devido às enormes variações em y, nenhuma linha poderia ser particularmente boa e o que o Excel exibe é o melhor que você pode fazer.

Se você pegar sua linha vermelha proposta e continuar até x = -0,714 ex = -0,712, descobrirá que seus valores estão muito distantes do gráfico e a uma grande distância dos valores y correspondentes .

A pergunta que o Excel responde não é "qual linha está mais próxima dos pontos de dados", mas "qual linha é melhor para prever valores y a partir de valores x", e faz isso corretamente.


4
Exatamente. A suposição subjacente é "x é dado, y é medido / previsto".
Floris

12

Não quero acrescentar nada às outras respostas, mas quero dizer que você se desviou de uma terminologia ruim, em particular o termo "linha de melhor ajuste", usado em alguns cursos de estatística.

Intuitivamente, uma "linha de melhor ajuste" seria semelhante à sua linha vermelha. Mas a linha produzida pelo Excel não é uma "linha de melhor ajuste"; nem está tentando ser. É uma linha que responde à pergunta: dado o valor de x, qual é a minha melhor previsão possível para y? ou, alternativamente, qual é o valor médio de y para cada valor de x?

Observe a assimetria aqui entre x e y; o uso do nome "linha de melhor ajuste" oculta isso. O mesmo ocorre com o uso da "linha de tendência" do Excel.

É explicado muito bem no seguinte link:

https://www.stat.berkeley.edu/~stark/SticiGui/Text/regression.htm

Você pode querer algo mais parecido com o que é chamado "Tipo 2" na resposta acima, ou "Linha SD" na página do curso de estatísticas de Berkeley.


11

Parte do problema óptico vem das diferentes escalas - se você usar a mesma escala nos dois eixos, ela parecerá diferente.

Em outras palavras, você pode fazer com que a maioria das linhas de 'melhor ajuste' pareça 'não intuitiva', espalhando uma escala de eixo.


1
Concordo que esta é a resposta - o intervalo X dos valores tem cerca de 0,02 de largura, mas o intervalo Y apenas cerca de 0,005 - na verdade, o gráfico deve ter cerca de 4 vezes a largura do alto, e seria óbvio que o valor o melhor ajuste seria horizontal. O fenômeno na questão é puramente visual devido às diferentes escalas.
RemcoGerlich 12/03

3
@RemcoGerlich Podemos concordar que, como mostrado na pergunta, a proporção do gráfico não é útil. Mas a sugestão de que você precisa de um gráfico quatro vezes maior que o alto, porque numericamente os intervalos nessa proporção é implausível e certamente não é uma questão de fato. Se as unidades de ambos os eixos fossem alteradas por um fator de 1000, você sugeriria uma proporção de 4000 ou 0,004? A proporção de 4x provavelmente será apenas um efeito colateral de unidades diferentes.
Nick Cox

4
As outras respostas dão a resposta correta. Infelizmente este não. Se redimensionarmos os valores, de modo a obter a mesma imagem visual, mas com eixos iguais, ainda será um problema de ajuste "tipo 1" vs "tipo 2".
Hans Janssen

1
Ele fala sobre o "bom senso" que melhor se encaixa, o que é certo "aos olhos humanos". E então a escala dos eixos é a principal coisa relevante.
RemcoGerlich 12/03

Ele tem razão, às vezes o que parece intuitivo é influenciado por coisas tolas como escala, embora esse não seja o caso. Aqui temos uma incompatibilidade genuína entre o que excel faz eo que quer OP
Aksakal

4

Algumas pessoas notaram que o problema é visual - a escala gráfica empregada produz informações enganosas. Mais especificamente, o dimensionamento de "lon" é tal que parece ser uma espiral apertada, o que sugere que a linha de regressão fornece um ajuste inadequado (uma avaliação com a qual eu concordo, a linha vermelha que você desenha forneceria erros ao quadrado menores se os dados foram moldados da maneira apresentada).

Abaixo, forneço um gráfico de dispersão criado no Excel com a escala de "lon" alterada para que não produza a espiral apertada no gráfico de dispersão. Com essa alteração, a linha de regressão agora fornece um melhor ajuste visual e acho que ajuda a demonstrar como o dimensionamento no gráfico de dispersão original forneceu uma avaliação enganosa do ajuste.

Eu acho que a regressão funciona bem aqui. Não acho que seja necessária uma análise mais complexa.

insira a descrição da imagem aqui

Para qualquer interessado, plotei os dados usando uma ferramenta de mapeamento e mostro a regressão ajustada aos dados. Os pontos vermelhos são os dados gravados e o verde é a linha de regressão.

insira a descrição da imagem aqui

E aqui estão os mesmos dados em um gráfico de dispersão com linha de regressão; aqui lat é tratado como dependente e as pontuações lat são revertidas para se ajustarem ao perfil geográfico.

insira a descrição da imagem aqui


1
A regressão não mostra a direção do vento
Aksakal 18/0318

Sabemos apenas lat e lon, e para os dados fornecidos, eles mostram a mudança de um em relação ao outro.
19718 Bryan

Então, o que essa linha de tendência significa?
Aksakal

Assumindo que o primeiro ponto no arquivo de dados seja o local inicial, parece que há um ligeiro aumento no norte na rota, mais a leste, viajando. Os dados não fornecem informações sobre força ou altura do vento, mas fornecem direção - leste a norte.
21718 Bryan

Correção, o software de mapeamento que usei solicita lat-lon, mas seus dados são long-lat; portanto, a direção do vento seria levemente norte a leste, ou seja, há um ligeiro movimento oriental ao longo do norte (ou um ligeiro movimento ocidental ao sul) viajei).
19718 Bryan

1

Sua regressão de mínimos quadrados ordinários (OLS) confusos (que minimiza a soma do desvio ao quadrado sobre os valores previstos (observado-previsto) ^ 2) e regressão do eixo principal (que minimiza a soma dos quadrados da distância perpendicular entre cada ponto e a linha de regressão, às vezes é chamada de regressão tipo II, regressão ortogonal ou regressão padronizada dos componentes principais).

Se você quiser comparar as duas abordagens apenas em R, basta conferir

data=read.csv("https://pastebin.com/raw/4TsstQYm")
require(lmodel2)
fit = lmodel2(lat ~ lon, data=data)
plot(fit,method="OLS") # ordinary least squares regression

insira a descrição da imagem aqui

plot(fit,method="MA") # major axis regression

insira a descrição da imagem aqui

O que você acha mais intuitivo (sua linha vermelha) é apenas a regressão do eixo principal, que, visualmente, é realmente o que parece mais lógico, pois minimiza a distância perpendicular aos seus pontos. A regressão OLS parecerá minimizar a distância perpendicular aos seus pontos apenas se a variável xey estiver na mesma escala de medição e / ou apresentar a mesma quantidade de erro (você pode ver isso simplesmente com base no teorema de Pitágoras). No seu caso, sua variável y tem muito mais propagação, daí a diferença ...


0

A resposta do PCA é a melhor, porque acho que é isso que você deve fazer, dada a descrição do seu problema; no entanto, a resposta do PCA pode confundir PCA e regressão, que são coisas totalmente diferentes. Se você deseja extrapolar esse conjunto de dados específico, precisará fazer a regressão e provavelmente deseja fazer a regressão de Deming (que eu acho que às vezes é do tipo II, nunca ouvi falar dessa descrição). No entanto, se você deseja descobrir quais direções são mais importantes (vetores próprios) e ter uma métrica de seu impacto relativo no conjunto de dados (valores próprios), o PCA é a abordagem correta.


4
Isso é principalmente uma série de comentários sobre outras respostas. Seria melhor comentar diretamente em cada um. Não vejo que a resposta de @Aksakal confunda PCA e regressão.
Nick Cox

Eu queria comentar diretamente, mas não era respeitável o suficiente. Não acho que Aksakal esteja confundindo regressão, mas pensei que vale a pena apontar para o OP que PCA e regressão são totalmente diferentes.
Andrew H
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.