Soru:
R'de çapraz korelasyon fonksiyonundan çıktıyı yorumlama
anthr
2016-12-30 07:46:43 UTC
view on stackexchange narkive permalink

İki zaman dizisi ile çalışıyorum ve aralarındaki ilişkiyi anlamakla ilgileniyorum. İlk adım olarak, çapraz korelasyon fonksiyonunu kontrol ettim (R'de ccf () kullanarak).

Kodumun çıktısı aşağıda gösteriliyor, burada ccf (x, y) çalıştırıyorum. Anladığım kadarıyla, buradaki sonuç, t + k anında x 'in t zamanında y ile negatif korelasyonlu olmasıdır. code>, gecikme olduğunda, k = 2,3,4,5,6 .

The output of CCF function

Buna gerçekten şaşırdım çünkü hipotezim x 'in y ' de negatif değişikliklere yol açacağıydı ve bu nedenle negatif değerlerde negatif korelasyonu görmeyi bekliyordum gecikme süresi, k . Aslında, burada gördüklerime rağmen y 'deki değişikliklerin gelecekte bir noktada x ' de nasıl bir değişikliğe neden olabileceğini düşünemiyorum.

Çıktıyla ilgili yorumum doğru mu? Formun bazı testlerini yaptıktan sonra öyle olduğunu varsayıyorum:

  x <- rnorm (10)
y <- -kurşun (x)
ccf (x, y, na.action = na.omit)
 

Ancak sonuçtan ne kadar şaşırdığımı düşündüğümde, tekrar kontrol etmek istiyorum.

Yorumumun doğru olduğunu varsayarsak, sonuçlarda gördüğüm bu neredeyse sinüzoidal şeklin başka bir açıklaması olabilir mi? (Verilerimde bu şekillere yapay olarak neden olabilecek bazı özellikler olabileceğini düşünüyorum - bununla ilgili bir sezgim yok!).

Bu zaman serilerini içeren birden fazla bağımsız deneyim var ve bunların çoğunda sinüzoidal bir model görüyorum ("sinüs dalgası" çizimden grafiğe farklı bir genliğe ve frekansa sahip olsa da).

İki zaman serisi arasındaki ilişkiyi ölçmeye yönelik alternatif yaklaşımları da duymak isterim.

Kurşun nedir?`-Lead (x)` 'in ne yaptığından emin değilim ...
Kurşun, seriyi bir birim kaydıran bir işlevdir - bunu, orijinal x serisine bilinen bir yönde mükemmel anti-korelasyona sahip bir dizi oluşturmak için yapabilirim
Bir temel R işlevi olmadığı ve hangi paketten geldiği için "kurşun" un hangi amaca hizmet ettiği açık değildi.
Merak ediyorum, bu sorunun henüz "cevaplanması" gerektiği için cevabımda eksik bir şey var mıydı?
Iki yanıtlar:
Jon
2017-01-03 06:26:06 UTC
view on stackexchange narkive permalink

Sorunuzu cevaplamak için işte bir örnek:

  set.seed (123)
x = arima.sim (model = liste (0.2, 0, 0.5), n = 100)
y = arima.sim (model = liste (0.4, 0, 0.4), n = 100)
ccf (x, y, tür = "korelasyon")
 

İki zaman serisi vardır, x ve y. İkisi arasındaki korelasyon $ y_t $ ve $ x_ {t \ pm k} $ 'da meydana gelir, burada $ \ pm k $ bir gecikmedir. Bu örnekte, $ k $ = -2, -7, -10, $ x_ {t + k} $, $ y_t $ ile önemli ölçüde $ negatif olarak $ ilişkilidir.

Yorum, x'in y'yi 2, 7 ve 10 gecikmelerinde götürdüğü şeklinde olabilir. Bu rastgele bir veridir, dolayısıyla potansiyel müşteriler anlamsızdır.

Yorumlama için birkaç yararlı referans aşağıda verilmiştir (TS bilgim biraz paslanmıştır): http://homepage.univie.ac.at/robert.kunst/prognos4.pdf

https://onlinecourses.science.psu.edu/stat510/node/74

Cross Correlation Plot

Durumunuzla ilgili daha fazla ayrıntı eklemek için, y_t'nizin x_ {t + k} geciktiği görülüyor. CCF / ACF'de gördüğünüz sinüzoidal model, belirli zaman serisi yapıları için tipiktir. AR ve MA modellerine ne kadar aşinasınız?

Hipotezinizle ilgili olarak, hangi verilere sahip olduğunuz ve bu verilerin doğasının ne olabileceği açık değildir, ancak zaman serinizin durağan olmayan bir modeli varsa, bu garip ACF / PACF / CCF grafikleriyle sonuçlanacaktır.

Çok teşekkürler - Sanırım cevabınızın en çok ilgilendiğim kısmı, sinüzoidal modelin belirli zaman serisi yapıları için ne kadar tipik olduğu ile ilgili son kısımdı.Beni bu konuyu okuyabileceğim ve öğrenebileceğim yerlere yönlendirebileceğinizi sanmıyorum, değil mi?Benzer şekilde, durağan olmayan bir modele sahip zaman serileri hakkındaki yorumun etrafındaki herhangi bir kaynak.Bunlar, sorudan ortaya çıkarmayı umduğum türden şeyler (simüle edilmiş kurşun ve gecikmeli verileri oluşturduktan sonra arsa hakkındaki yorumumun doğru olduğundan% 95 emindim).
Claude
2017-01-08 09:05:13 UTC
view on stackexchange narkive permalink

ccf işlevini Box ve Jenkins'ten küçük bir örnekle kontrol ettim (1976, s. 374-375).

  x <- as.ts (c (11,7,8,12,14))
y <-as.ts (c (7,10,6,7,10))
zz <- ccf (x, y, lag.max = 3)
zz
 

verir:

  "X" serisinin gecikmeye göre otomatik korelasyonları

  -3-2-1 0 1 2 3

-0.343 -0.121 0.631 0.139 -0.380 -0.074 0.260
 

Dolayısıyla, ccf'nin Box-Jenkins kitabının negatif gecikmeler için hesaplamalarını pozitif gecikmeler olarak verdiğini görebiliriz ve bunun tersi de geçerlidir.

Kitaptan, -1 gecikmesinde -0.38 ve 1 gecikmesinde 0.63 var.

Ancak, ccf işlevi söylenenden doğrudur:

ccf (x, y) tarafından döndürülen gecikme k değeri, korelasyonu tahmin eder x [t + k] ile y [t] arasında.

Bu yalnızca bir tanımlama meselesidir, ancak yanıltıcı da olabilir.



Bu Soru-Cevap, otomatik olarak İngilizce dilinden çevrilmiştir.Orijinal içerik, dağıtıldığı cc by-sa 3.0 lisansı için teşekkür ettiğimiz stackexchange'ta mevcuttur.
Loading...