Yaklaşık entropi - Approximate entropy

Olarak istatistik , bir yaklaşık entropi ( apen ) düzenlilik miktarı ve ölçmek için kullanılan bir tekniktir kestirilemezliğe üzerinde dalgalanmaların zaman-serisi verileri.

Örneğin, iki dizi veri vardır:

seri 1: (10,20,10,20,10,20,10,20,10,20,10,20...), 10 ve 20 arasında değişir.
seri 2: (10,10,20,10,20,20,20,10,10,20,10,20,20...) 1/2.

Ortalama ve varyans gibi moment istatistikleri bu iki seri arasında ayrım yapmayacaktır. Sıralama istatistikleri de bu seriler arasında ayrım yapmayacaktır . Yine de 1. seri "tamamen düzenli"; bir terimin 20 değerine sahip olduğunu bilmek, bir sonraki terimin 10 değerine sahip olacağını kesin olarak tahmin etmeyi sağlar. Seri 2 rastgele değerlenir; bir terimin 20 değerine sahip olduğunu bilmek, bir sonraki terimin ne değere sahip olacağı konusunda hiçbir fikir vermez.

Düzenlilik başlangıçta, esas olarak çeşitli entropi ölçümlerine odaklanan kesin düzenlilik istatistikleri ile ölçülmüştür. Ancak, doğru entropi hesaplaması büyük miktarda veri gerektirir ve sonuçlar sistem gürültüsünden büyük ölçüde etkilenecektir, bu nedenle bu yöntemleri deneysel verilere uygulamak pratik değildir. ApEn, Steve M. Pincus tarafından tam bir düzenlilik istatistiği olan Kolmogorov-Sinai entropisini değiştirerek bu sınırlamaların üstesinden gelmek için geliştirildi . ApEn başlangıçta kalp atış hızı gibi tıbbi verileri analiz etmek için geliştirildi ve daha sonra uygulamalarını finans , fizyoloji , insan faktörleri mühendisliği ve iklim bilimlerinde yaygınlaştırdı .

algoritma

Yaklaşık Entropi'nin teorik temellerinin açıklandığı kapsamlı bir adım adım öğretici şu adreste mevcuttur:

Aşama 1
Bir zaman serisi verisi oluşturun . Bunlar, zaman içinde eşit aralıklarla ölçümden elde edilen N adet ham veri değeridir.
Adım 2
Düzeltme m , bir tam sayıdır , ve R , bir pozitif reel sayı . m değeri, karşılaştırılan veri akışının uzunluğunu temsil eder ve r , bir filtreleme düzeyini belirtir.
Aşama 3
Bir dizi vektör Form , içinde , gerçek boyutlu boşluk ile tanımlanır .
4. Adım
Dizisi kullanarak , her biri için, oluşturmak için i ,
ki burada olarak tanımlanır
' nin m skaler bileşenleridir . d arasındaki mesafeyi temsil eder vektörler ve bunların ilgili sayısal bileşenleri en fazla fark tarafından verilen. Tüm değerleri aldığını unutmayın , bu nedenle sağlanan eşleşme ne zaman sayılacaktır (sonraki kendisiyle eşleştirilir).
Adım 5
Tanımlamak
,
6. Adım
Yaklaşık entropiyi şu şekilde tanımlayın:
burada doğal logaritma, ise m ve r Aşama 2'de olduğu gibi sabit.
parametre seçimi
tipik olarak veya öğesini seçin ve r büyük ölçüde uygulamaya bağlıdır.

Physionet üzerinde Pincus kullanımına dayanan bir uygulama , orijinal makale 4. Adımda kullanıyor . Yapay olarak oluşturulmuş örnekler için bir endişe olsa da, genellikle pratikte bir endişe değil.

yorum

Bir zaman serisinde tekrarlayan dalgalanma kalıplarının varlığı, bu tür kalıpların olmadığı bir zaman serisinden daha öngörülebilir olmasını sağlar. ApEn, benzer gözlem modellerinin ek benzer gözlemler tarafından takip edilmeme olasılığını yansıtır . Çok sayıda tekrarlayan desen içeren bir zaman serisinin nispeten küçük bir ApEn'si vardır; daha az öngörülebilir bir süreç daha yüksek bir ApEn'ye sahiptir.

Bir örnek

Kalp Atış Hızı Sırasının Resmi

Diyelim ki dizi, zaman içinde eşit aralıklı 51 kalp atış hızı örneğinden oluşuyor:

(yani, dizi periyodu 3 olan periyodiktir). En seçeyim ve (değerleri ve sonucunu etkilemeden değiştirilebilir).

Bir vektör dizisi oluşturun:

Mesafe şu şekilde hesaplanır:

Not , yani

Benzer şekilde,

Bu nedenle, böyle içerir ve toplam sayı 17'dir.

İçin Adım 4'te dikkat edin , . Yani böyle içerir ve toplam sayısı 16'dır.

Daha sonra m=3 için yukarıdaki adımları tekrarlıyoruz. İlk önce bir vektör dizisi oluşturun:

vector arasındaki mesafeleri hesaplayarak , filtreleme seviyesini karşılayan vektörlerin aşağıdaki özelliklere sahip olduğunu buluruz:

Öyleyse,

Nihayet,

Değer çok küçüktür, bu nedenle dizinin düzenli ve tahmin edilebilir olduğunu ima eder, bu da gözlemle tutarlıdır.

Python uygulaması

import numpy as np

def ApEn(U, m, r) -> float:
    """Approximate_entropy."""

    def _maxdist(x_i, x_j):
        return max([abs(ua - va) for ua, va in zip(x_i, x_j)])

    def _phi(m):
        x = [[U[j] for j in range(i, i + m - 1 + 1)] for i in range(N - m + 1)]
        C = [
            len([1 for x_j in x if _maxdist(x_i, x_j) <= r]) / (N - m + 1.0)
            for x_i in x
        ]
        return (N - m + 1.0) ** (-1) * sum(np.log(C))

    N = len(U)

    return _phi(m) - _phi(m + 1)

# Usage example
U = np.array([85, 80, 89] * 17)
print(ApEn(U, 2, 3))
1.0996541105257052e-05

randU = np.random.choice([85, 80, 89], size=17 * 3)
print(ApEn(randU, 2, 3))
0.8626664154888908

Avantajlar

ApEn'in avantajları şunları içerir:

  • Daha düşük hesaplama talebi. ApEn, küçük veri örnekleri (n < 50 nokta) için çalışmak üzere tasarlanabilir ve gerçek zamanlı olarak uygulanabilir.
  • Gürültüden daha az etki. Veriler gürültülüyse, verilerde hangi kalitede gerçek bilginin bulunabileceğini belirlemek için ApEn ölçümü verilerdeki gürültü seviyesiyle karşılaştırılabilir.

Uygulamalar

ApEn, şizofreni, epilepsi ve bağımlılık gibi psikiyatrik hastalıklarda EEG'yi sınıflandırmak için uygulanmıştır.

sınırlamalar

ApEn algoritması, hesaplamalarda ln(0) oluşumunu önlemek için her bir diziyi kendisiyle eşleşen olarak sayar. Bu adım ApEn'in yanlılığına neden olabilir ve bu önyargı, ApEn'in pratikte iki zayıf özelliğe sahip olmasına neden olur:

  1. ApEn, büyük ölçüde kayıt uzunluğuna bağlıdır ve kısa kayıtlar için beklenenden eşit olarak daha düşüktür.
  2. Göreceli tutarlılıktan yoksundur. Yani, eğer bir veri setinin ApEn'i diğerininkinden daha yüksekse, test edilen tüm koşullar için yüksek kalmalıdır, ancak yüksek kalmamalıdır.

Ayrıca bakınız

Referanslar