Numpy Hareketli Ortalama

Numpy Hareketli Ortalama



Konumuza başlamadan önce hareketli ortalamanın ne olduğunu anlayalım. İstatistikte, hareketli ortalama, veri noktalarını hesaplamak ve analiz etmek için kullanılan bir tekniktir. Tam bir veri kümesinden farklı alt kümelerin bir ortalamasını oluşturarak veri noktalarını hesaplar. Dolayısıyla hareketli ortalama, zaman içinde bir bilgi dizisindeki tipik değişimi yakalayan bir ölçümdür. Taşınma, en esnek ve sık kullanılan teknik analiz göstergelerinden biridir. Kullanımı çok basit olduğu için profesyonel yatırımcılar tarafından istatistikte belirli bir veri kümesinin aracı olarak kullanılır. Ayrıca, günlük veya dakikalık verilerde kullanarak daha kısa sürede hareketli bir ortalama hesaplayabiliriz. Örneğin: 10 günlük hareketli ortalama belirlerken, örneğimizde, yalnızca önceki on günden herhangi birinin kapanış fiyatlarını özetleyeceğiz. gün ve sonucu on'a bölün. Ertesi gün, son on gündeki fiyatı da hesaplayacağız, yani ilk günün fiyatını hesaplamayacağız. Daha ziyade dünkü fiyatımızla değiştirilecek. Veriler her hareket günü ile bu şekilde değişir, bu nedenle hareketli ortalama olarak bilinir. Hareketli ortalamanın amacı, bir trendin başlangıcını belirlemek, ardından ilerlemesini takip etmek ve meydana gelmesi durumunda tersine döndüğünü bildirmektir. Hareketli ortalamayı hesaplama formülü Ft = (Dt1+Dt2+Dt3…+Dtn)/n'dir. Dt, t döneminde Talep ve Ft, t zamanında Tahmindir.

Sözdizimi:

Hareketli ortalamayı aşağıdaki gibi çeşitli şekillerde hesaplayabiliriz:

Yöntem 1:

Dizi. cumsum ( )

Verilen dizideki öğelerin toplamını döndürür. cumsum() çıktısını dizinin boyutuna bölerek hareketli ortalamayı hesaplayabiliriz.







Yöntem 2:

Dizi. ve . ortalama ( )

Aşağıdaki parametrelere sahiptir.



a: ortalaması alınacak dizi biçimindeki veriler.



eksen: veri türü int'dir ve isteğe bağlı bir parametredir.





ağırlık: aynı zamanda bir dizi ve isteğe bağlı parametredir. 1-D şekli ile aynı şekle sahip olabilir. Tek boyutlu olması durumunda, 'a' dizisi ile eşit uzunlukta olmalıdır.

NumPy'de hareketli ortalamayı hesaplamak için standart bir işlev bulunmadığına dikkat edin, böylece başka yöntemlerle yapılabilir.



Yöntem 3:

Hareketli ortalamayı hesaplamak için kullanılabilecek başka bir yöntem:

Örneğin. kıvrılmak ( a , içinde , mod = 'tam dolu' )

Bu sözdiziminde, a birinci girdi boyutludur ve v, ikinci girdi boyutlu değerdir. Mod isteğe bağlı değerdir, dolu, aynı ve geçerli olabilir.

Örnek # 01:

Şimdi Numpy'deki hareketli ortalama hakkında daha fazla açıklama yapmak için bir örnek verelim. Bu örnekte, NumPy'nin konvolve işleviyle bir dizinin hareketli ortalamasını çıkaracağız. Böylece, öğeleri olarak 1,2,3,4,5 olan bir “a” dizisini alacağız. Şimdi np.convolve fonksiyonunu çağıracağız ve çıktısını “b” değişkenimizde saklayacağız. Bundan sonra, “b” değişkenimizin değerini yazdıracağız. Bu fonksiyon girdi dizimizin hareketli toplamını hesaplayacaktır. Çıktımızın doğru olup olmadığını görmek için çıktıyı yazdıracağız.

Bundan sonra, aynı konvolve yöntemini kullanarak çıktımızı hareketli ortalamaya çevireceğiz. Hareketli ortalamayı hesaplamak için, hareketli toplamı örnek sayısına bölmemiz yeterli olacaktır. Ancak buradaki asıl sorun, bu hareketli bir ortalama olduğu için, bulunduğumuz konuma bağlı olarak örnek sayısının değişmeye devam etmesidir. Bu sorunu çözmek için sadece paydaların bir listesini oluşturacağız ve bunu bir ortalamaya çevirmemiz gerekiyor.

Bu amaçla, payda için başka bir “denom” değişkeni başlattık. Menzil hilesini kullanarak listeyi anlamak basittir. Dizimizin beş farklı öğesi vardır, bu nedenle her bir yerdeki örnek sayısı birden beşe ve ardından beşten bire geri döner. Bu yüzden sadece iki listeyi birbirine ekleyeceğiz ve bunları “denom” parametremizde saklayacağız. Şimdi, sistemin bize gerçek paydaları verip vermediğini kontrol etmek için bu değişkeni yazdıracağız. Bundan sonra, hareketli toplamımızı paydalara böleceğiz ve çıktıyı “c” değişkeninde saklayarak yazdıracağız. Sonuçları kontrol etmek için kodumuzu çalıştıralım.

içe aktarmak dizi olarak Örneğin.

a = [ 1 , iki , 3 , 4 , 5 ]

b = Örneğin. kıvrılmak ( a , Örneğin. one_like ( a ) )

Yazdır ( 'Hareketli Toplamı' , b )

isim = liste ( Aralık ( 1 , 5 ) ) + liste ( Aralık ( 5 , 0 , - 1 ) )

Yazdır ( 'Paydalar' , isim )

c = Örneğin. kıvrılmak ( a , Örneğin. one_like ( a ) ) / isim

Yazdır ( 'Hareketli ortalama ' , c )

Kodumuzu başarıyla çalıştırdıktan sonra aşağıdaki çıktıyı alacağız. İlk satırda “Moving Sum” yazdırdık. Tıpkı orijinal dizimizde olduğu gibi dizinin başında “1” ve sonunda “5” olduğunu görebiliriz. Geri kalan sayılar dizimizin farklı elemanlarının toplamıdır.

Örneğin, dizinin üçüncü dizinindeki altı, girdi dizimizden 1,2 ve 3'ün eklenmesinden gelir. Dördüncü indeksteki on, 1,2,3 ve 4'ten gelir. On beş, tüm sayıların bir araya toplanmasından gelir, vb. Şimdi çıktımızın ikinci satırında dizimizin paydalarını yazdırdık.

Çıktımızdan tüm paydaların kesin olduğunu görebiliriz, bu da onları hareketli toplam dizimizle bölebileceğimiz anlamına gelir. Şimdi çıktının son satırına geçin. Son satırda Hareketli Ortalama Dizimizin ilk elemanının 1 olduğunu görebiliyoruz. 1'in ortalaması 1 yani ilk elemanımız doğru. 1+2/2 ortalaması 1.5 olacaktır. Çıktı dizimizin ikinci elemanının 1.5 olduğunu görebiliyoruz, dolayısıyla ikinci ortalama da doğru. 1,2,3'ün ortalaması 6/3=2 olacaktır. Ayrıca çıktımızı doğru yapar. Dolayısıyla çıktıdan, bir dizinin hareketli ortalamasını başarıyla hesapladığımızı söyleyebiliriz.

Çözüm

Bu kılavuzda hareketli ortalamalar hakkında bilgi edindik: hareketli ortalama nedir, kullanımları nedir ve hareketli ortalamanın nasıl hesaplanacağı. Hem matematiksel hem de programlama açısından ayrıntılı olarak inceledik. NumPy'de hareketli ortalamayı hesaplamak için belirli bir işlev veya süreç yoktur. Ancak, yardımıyla hareketli ortalamayı hesaplayabileceğimiz farklı fonksiyonlar var. Hareketli ortalamayı hesaplamak için bir örnek yaptık ve örneğimizin her adımını açıkladık. Hareketli ortalamalar, mevcut verilerin yardımıyla gelecekteki sonuçları tahmin etmek için yararlı bir yaklaşımdır.