Existe uma variável dependente?
(xi,yi)
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!
y∼x
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:
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:
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.
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:
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 :
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)