従属変数はありますか?
Excelの傾向線は、独立変数「lon 」の従属変数「lat」の回帰からのものです。「常識線」と呼ばれるものは、従属変数を指定せず、緯度と経度の両方を等しく扱う場合に取得できます。後者は、PCAを適用することで取得できます。特に、これらの変数の共分散行列の固有ベクトルの1つです。これは、特定のポイントからライン自体までの最短距離を最小化するラインと考えることができます。つまり、ラインに垂直線を引き、各観測のそれらの合計を最小化します。(xi,yi)
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)
Excelから得た傾向線は、Excel回帰で変数が等しくないことを理解している場合、PCAからの固有ベクトルと同じように常識です。ここでは、からまでの垂直距離を最小化しています。ここで、y軸は緯度で、x軸は経度です。 y (x i)yiy(xi)
変数を平等に扱うかどうかは、目的によって異なります。データに固有の品質ではありません。データを分析するには、適切な統計ツールを選択する必要があります。この場合、回帰とPCAのどちらかを選択します。
聞かれなかった質問への回答
それでは、なぜあなたの場合、Excelの(回帰)傾向線があなたの場合に適したツールとは思えないのでしょうか?その理由は、トレンドラインが、尋ねられなかった質問に対する答えだからです。その理由は次のとおりです。
Excel回帰は、行のパラメーターを推定しようとしています。したがって、最初の問題は、厳密に言えば緯度が経度の関数でさえないことであり(投稿の最後にあるメモを参照)、主な問題すらありません。本当の問題は、パラグライダーの場所にさえ興味がなく、風に興味があるということです。lat=a+b×lon
風がなかったと想像してください。パラグライダーは同じ円を何度も繰り返します。トレンドラインはどうなりますか?明らかに、それは平らな水平線であり、その勾配はゼロになりますが、風が水平方向に吹いているという意味ではありません!
これは、パラグライダーが完全な円を描いている間に、y軸に沿って強風がある場合のシミュレーションプロットです。線形回帰がどのように無意味な結果、水平トレンドラインを生成するかを確認できます。実際には、わずかにマイナスでも、重要ではありません。風向は赤い線で示されています。y∼x
シミュレーションのRコード:
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])
したがって、風の方向は明らかにトレンドラインとまったく一致していません。もちろん、それらはリンクされていますが、重要な方法です。したがって、Excelのトレンドラインはある質問に対する答えであり、あなたが尋ねた質問に対する答えではないという私の声明です。
PCAを選ぶ理由
お気付きのとおり、パラグライダーの動きには少なくとも2つの要素があります。風によるドリフトと、パラグライダーによって制御される円運動です。これは、プロット上のドットを接続するとはっきりとわかります。
一方では、円運動は本当にあなたにとって迷惑です:あなたは風に興味があります。一方、風速は観測せず、パラグライダーのみを観測します。したがって、あなたの目的は、観測可能なパラグライダーの位置の読み取りから観測できない風を推測することです。これはまさに、因子分析やPCAなどのツールが役立つ状況です。
PCAの目的は、出力の相関を分析することにより、複数の出力を決定するいくつかの要因を分離することです。出力が因子に線形にリンクしている場合に効果的です。これは、データの場合に当てはまります。風のドリフトは、円運動の座標に単純に加算されるため、PCAはここで機能しています。
PCAセットアップ
そこで、PCAにここでチャンスがあることを確立しましたが、実際にどのように設定するのでしょうか?3番目の変数timeの追加から始めましょう。一定のサンプリング周波数を想定して、123の各観測に時間1〜123を割り当てます。データの3Dプロットがどのように見え、そのらせん構造が明らかになります。
次のプロットは、パラグライダーの想像上の回転中心を茶色の円で示しています。青い点で示されたパラグライダーがその周りを旋回している間、それが風で緯度経度面でどのようにドリフトするかを見ることができます。時間は垂直軸上にあります。回転の中心を、最初の2つの円のみを示すパラグライダーの対応する位置に接続しました。
対応するRコード:
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)
パラグライダーの回転中心のドリフトは主に風によって引き起こされ、ドリフトの経路と速度は風の方向と速度、相関関係のない観測可能な変数と相関しています。これは、緯度経度平面に投影したときのドリフトの様子です。
PCA回帰
そのため、以前は、ここでは通常の線形回帰がうまく機能しないようであることを確認しました。パラグライダーの動きは非常に非線形であるため、基になるプロセスを反映していないためです。円運動と線形ドリフトの組み合わせです。また、この状況では、因子分析が役立つ可能性があることも説明しました。このデータをモデル化する1つの可能なアプローチの概要は次のとおりです。PCA回帰。しかし、拳私はあなたにPCA回帰紹介フィットカーブ:
これは次のようにして得られました。前述のように、追加の列t = 1:123があるデータセットでPCAを実行します。3つの主要コンポーネントを取得します。最初のものは単にtです。2番目はlon列に対応し、3番目はlat列に対応します。
後者の2つの主成分をa形式の変数に適合させます。ここで、は成分のスペクトル解析から抽出されます。それらはたまたま同じ周波数で異なる位相を持っていますが、これは円運動を考えると驚くことではありません。ω 、φasin(ωt+φ)ω,φ
それでおしまい。近似値を取得するには、PCA回転行列の転置を予測主成分に差し込むことにより、近似コンポーネントからデータを復元します。上記の私のRコードは手順の一部を示し、残りは簡単に理解できます。
結論
基礎となるプロセスが安定しており、入力が線形(または線形化された)関係を介して出力に変換される物理現象に関して、PCAやその他のシンプルなツールがどれほど強力かを見るのは興味深いことです。したがって、この場合、円運動は非常に非線形ですが、時間tパラメーターで正弦/余弦関数を使用することで簡単に線形化できます。あなたが見たように、私のプロットはほんの数行のRコードで作成されました。
回帰モデルは、基礎となるプロセスを反映する必要があります。その場合、そのパラメーターに意味があると期待できるのはあなただけです。これが風に漂うパラグライダーである場合、元の質問のような単純な散布図は、プロセスの時間構造を隠します。
また、Excel回帰は断面分析であり、線形回帰が最適に機能しますが、データは時系列プロセスであり、観測値が時間順に並べられます。ここで時系列分析を適用する必要があり、それはPCA回帰で行われました。
機能に関する注意
パラグライダーは円を描いているため、単一の経度に対応する複数の緯度があります。数学では、関数は値を単一の値マッピングします。多対1の関係です。つまり、複数のがに対応する場合がありますが、複数のが単一の対応することはありません。厳密に言えば、が関数ではない理由です。x y x y y x l a t = f (l o n )y=f(x)xyxyyxlat=f(lon)