Bağımlı değişken var mı?
Excel'deki eğilim çizgisi, "lat" bağımlı değişkeninin bağımsız "lon " değişkenine regresyonundan gelir . Bağımlı değişken belirlemediğiniz ve "enlem ve boylamlara eşit" davrandığınızda, "sağduyu çizgisi" dediğiniz şey elde edilebilir . Sonuncusu PCA uygulanarak elde edilebilir . Özellikle, bu değişkenlerin kovaryans matrisinin öz vektörlerinden biridir. Herhangi bir noktadan bir çizginin kendisine olan en kısa mesafeyi en aza indiren bir çizgi olarak düşünebilirsiniz , yani bir çizgiye dik çizer ve her gözlem için bunların toplamını en aza .(xi,yi)
İşte R'de nasıl yapabildiğiniz:
> 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'den aldığınız trend çizgisi, Excel regresyonunda değişkenlerin eşit olmadığını anladığınızda PCA'dan gelen öz vektör gibi ortak bir anlam ifade eder. Burada ile arasındaki dikey mesafeyi en aza , burada y ekseni enlem ve x ekseni bir boylam.yiy(xi)
Değişkenlere eşit davranmak isteyip istemediğiniz, hedefe bağlıdır. Verilerin doğal kalitesi değil. Verileri analiz etmek için doğru istatistiksel aracı seçmeniz gerekir, bu durumda regresyon ve PCA arasında seçim yapın.
Sorulmamış bir sorunun cevabı
Öyleyse, neden sizin durumunuzda Excel'de bir (regresyon) trend çizgisi sizin durumunuz için uygun bir araç gibi görünmüyor? Bunun nedeni trend çizgisinin sorulmamış bir sorunun cevabı olmasıdır. İşte nedeni.
Excel regresyon, satırının parametrelerini tahmin etmeye çalışıyor . Bu yüzden, ilk sorun, enlem, kesinlikle konuşulan bir boylamın fonksiyonu değildir (yazı sonundaki nota bakınız) ve asıl mesele bile değildir. Asıl sorun, Yamaçparaşütü'nün bulunduğu yerle bile ilgilenmemeniz, rüzgarla ilgilenmeniz.lat=a+b×lon
Rüzgar olmadığını hayal et. Bir yamaçparaşütü aynı daireyi tekrar tekrar yapıyor olacaktı. Trend çizgisi ne olurdu? Açıkçası, düz yatay çizgi olacaktı, eğimi sıfır olacaktır, ancak rüzgarın yatay yönde esiyor olduğu anlamına gelmez!
Yamaçparaşütü mükemmel daireler çizerken, y ekseni boyunca kuvvetli bir rüzgar varken, simüle edilmiş bir komplo. Doğrusal regresyonun saçma sapan sonucu, yatay trend çizgisini nasıl ürettiğini görebilirsiniz . Aslında, biraz olumsuz, ama önemli değil. Rüzgar yönü kırmızı bir çizgi ile gösterilir:y∼x
Simülasyon için R kodu:
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])
Dolayısıyla, rüzgarın yönü açıkça hiçbir şekilde trend çizgisiyle aynı hizada değil. Tabii ki bağlantılılar ama önemsiz bir şekilde. Bu nedenle, benim Excel eğilim çizgisinin bazı soruların cevabı olduğunu söylemiştim, ancak sorduğunuza değil.
Neden PCA?
Sizin de belirttiğiniz gibi bir yamaçparaşütü hareketinin en az iki bileşeni vardır: bir rüzgar yamaç paraşütü ile kontrol edilen bir rüzgar ve dairesel hareket. Arsadaki noktaları birleştirdiğinizde bu açıkça görülür:
Bir yandan, dairesel hareket sizin için gerçekten sıkıntı verici: rüzgarla ilgileniyorsunuz. Diğer yandan, rüzgar hızını gözlemlemeseniz de, sadece yamaç paraşütünü gözlemlersiniz. Öyleyse, hedefiniz gözlemlenemeyen rüzgârın gözlemlenebilir yamaç paraşütçünün lokasyon okumasından çıkarılmasıdır. Bu tam olarak faktör analizi ve PCA gibi araçların yararlı olabileceği durumdur.
PCA'nın amacı, çıktılardaki korelasyonları analiz ederek çoklu çıktıları belirleyen birkaç faktörü izole etmektir. Çıktı doğrusal olan faktörlere bağlandığında etkilidir, bu verilerinizde olduğu gibi olur: rüzgar kayması, dairesel hareketin koordinatlarına eklenir, bu yüzden PCA burada çalışmaktadır.
PCA kurulumu
Öyleyse, PCA'nın burada bir şansa sahip olması gerektiğini belirledik, ancak gerçekte nasıl ayarlayacağız? Şimdi üçüncü bir değişken ekleyerek başlayalım. Sabit örnekleme frekansını varsayarsak, her 123 gözlem için 1 - 123 arası zaman atayacağız. İşte 3B arsa verilere benziyor ve spiral yapısını ortaya koyuyor:
Bir sonraki çizim, yamaç paraşütçünün hayali dönme merkezini kahverengi daireler olarak göstermektedir. Mavi bir nokta ile gösterilen yamaç paraşütü etrafında dolanırken, rüzgarla birlikte laton düzleminde nasıl sürüklendiğini görebilirsiniz. Zaman dikey eksende. Dönme merkezini, sadece ilk iki daireyi gösteren bir yamaç paraşütü yerine karşılık gelen bir yere bağladım.
Karşılık gelen R kodu:
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)
Yamaçparaşütçünün dönme merkezinin sapmasına esas olarak rüzgar neden olur ve sapmanın yolu ve hızı, gözlenemeyen değişken değişkenlerin yönü ve hızı ile ilişkilidir. Enlemesine uç-uç düzlemine yansıtıldığında sürüklenme böyle gözükür:
PCA Regresyonu
Böylece, daha önce normal lineer regresyonun burada çok iyi çalışmadığını görmüştük. Ayrıca nedenini de belirledik: çünkü bu temel süreci yansıtmıyor çünkü yamaç paraşütçünün hareketi oldukça doğrusal değil. Dairesel hareket ve doğrusal bir kayma birleşimidir. Ayrıca bu durumda faktör analizinin yardımcı olabileceğini de tartıştık. İşte bu verileri modellemeye yönelik olası bir yaklaşımın ana hatları: PCA regresyonu . Fakat ilk önce size PCA regresyon uyarlanmış eğrisini göstereceğim :
Bu, aşağıdaki şekilde elde edilmiştir. Daha önce tartışıldığı gibi, fazladan sütun t = 1: 123 olan veri kümesinde PCA'yı çalıştırın. Üç ana bileşen elde edersiniz. İlki basitçe t. İkincisi, lon sütununa ve üçüncü ila lat sütununa karşılık gelir.
Son iki ana bileşeni, bir biçiminde bir değişkene yerleştiriyorum , burada bileşenlerin spektral analizinden çıkarıldı. Aynı frekansa sahipler, ancak farklı hareketler var, bu da dairesel harekete göre şaşırtıcı değildir.asin(ωt+φ)ω,φ
Bu kadar. Takılan değerleri elde etmek için, PCA dönme matrisinin transpozisyonunu öngörülen ana bileşenlere takarak verileri takılı bileşenlerden kurtarırsınız. Yukarıdaki R kodum prosedürün bir kısmını ve kolayca çözebileceğiniz kısımları gösterir.
Sonuç
PCA'nın ve diğer basit araçların ne kadar güçlü olduğunu görmek, altta yatan işlemlerin kararlı olduğu fiziksel girişler ve girdilerin doğrusal (ya da doğrusallaştırılmış) ilişkiler yoluyla çıktılara çevrilmesidir. Dolayısıyla bizim durumumuzda dairesel hareket çok doğrusal değildir, ancak bir t parametresinde sinüs / kosinüs fonksiyonlarını kullanarak onu kolayca doğrusallaştırdık. Arsalarım, gördüğünüz gibi sadece birkaç satır R koduyla üretildi.
Regresyon modeli altta yatan süreci yansıtmalıdır, o zaman sadece parametrelerinin anlamlı olmasını bekleyebilirsiniz. Eğer bu rüzgarda sürüklenen bir yamaç paraşütü ise, orijinal sorudaki gibi basit bir dağılım grafiği işlemin zaman yapısını gizleyecektir.
Ayrıca Excel regresyonu, lineer regresyonun en iyi şekilde çalıştığı, verileriniz zaman içinde gözlemlerin sıralandığı bir zaman serisi işlemidir. Zaman serileri analizi burada uygulanmalı ve PCA regresyonunda yapıldı.
İşlev hakkında notlar
Yamaçparaşütü daireler çizdiği için, tek bir boylama karşılık gelen çoklu enlemler olacaktır. Matematik olarak bir işlev değerini eşler tek bir değer için . Çoktan bire ilişki, yani birden fazla , karşılık gelebilir , ancak birden fazla , tek bir karşılık gelmez . Bu nedenle kesinlikle konuşmayan bir fonksiyon değildir.y=f(x)xyxyyxlat=f(lon)