Exempel på entropi
Proventropi (SampEn) är en modifiering av ungefärlig entropi (ApEn), som används för att bedöma komplexiteten hos fysiologiska tidsseriesignaler, diagnostisera sjukdomstillstånd. SampEn har två fördelar jämfört med ApEn: datalängdsoberoende och en relativt problemfri implementering. Det finns också en liten beräkningsskillnad: I ApEn inkluderar jämförelsen mellan mallvektorn (se nedan) och resten av vektorerna även jämförelse med sig själv. Detta garanterar att sannolikheter aldrig är noll. Följaktligen är det alltid möjligt att ta en logaritm av sannolikheter. Eftersom malljämförelser med sig själva lägre ApEn-värden, tolkas signalerna som mer regelbundna än de faktiskt är. Dessa självmatcher ingår inte i SampEn. Men eftersom SampEn direkt använder sig av korrelationsintegralerna är det inte ett verkligt mått på information utan en approximation. Grunderna och skillnaderna med ApEn, samt en steg-för-steg handledning för dess applikation finns på.
Det finns också en flerskalig version av SampEn, föreslagen av Costa och andra. SampEn kan användas inom biomedicinsk och biomekanisk forskning, till exempel för att utvärdera postural kontroll.
Definition
Liksom ungefärlig entropi (ApEn), är proventropi ( SampEn ) ett mått på komplexitet . Men det inkluderar inte självliknande mönster som ApEn gör. För en given inbäddningsdimension , tolerans och antal datapunkter , är SampEn den negativa naturliga logaritmen för sannolikheten att om två uppsättningar av samtidiga datapunkter med längd har avstånd då två uppsättningar av samtidiga datapunkter med längden har också avstånd . Och vi representerar det med (eller med inklusive samplingstid ).
Antag nu att vi har en tidsseriedatauppsättning med längden med ett konstant tidsintervall . Vi definierar en mallvektor med längden , så att och avståndsfunktionen i≠ j) ska vara Chebyshev-avståndet (men det kan vara vilken avståndsfunktion som helst, inklusive euklidiskt avstånd). Vi definierar proventropin som
Var
= antal mallvektorpar som har
= antal mallvektorpar som har
Det framgår av definitionen att alltid kommer att ha ett värde som är mindre eller lika med . Därför kommer alltid vara antingen noll eller positivt värde. Ett mindre värde på indikerar också mer självlikhet i datamängden eller mindre brus.
I allmänhet tar vi värdet på till och värdet på till . Där std står för standardavvikelse som bör tas över en mycket stor datamängd. Till exempel är r-värdet på 6 ms lämpligt för entropiberäkningar av pulsintervall, eftersom detta motsvarar för en mycket stor population.
Multiscale SampEn
Definitionen som nämns ovan är ett specialfall av sampEn med flera skalor med , där kallas skipping-parameter. I flerskala SampEn-mall definieras vektorer med ett visst intervall mellan dess element, specificerat av värdet på . mallvektor och sampEn kan skrivas som beräknar och som tidigare.
Genomförande
Exempel på entropi kan enkelt implementeras i många olika programmeringsspråk. Nedan finns ett vektoriserat exempel skrivet i Python.
importera numpy som np def sampen ( L , m , r ): """Sample entropi.""" N = len ( L ) B = 0.0 A = 0.0 # Dela tidsserier och spara alla mallar med längden m xmi = np . array ([ L [ i : i + m ] för i inom intervallet ( N - m )]) xmj = np . array ([ L [ i : i + m ] för i inom intervallet ( N - m + 1 )]) # Spara alla matchningar minus självmatchningen, beräkna B B = np . summa ([ np . summa ( np . abs ( xmii - xmj ) . max ( axel = 1 ) <= r ) - 1 för xmii i xmi ]) # Liknande för beräkning av A m += 1 xm = np . array ([ L [ i : i + m ] för i inom intervallet ( N - m + 1 )]) A = np . summa ([ np . summa ( np . abs ( xmi - xm ) . max ( axel = 1 ) <= r ) - 1 för xmi i xm ]) # Return SampEn retur - np . log ( A / B )
Ett exempel skrivet på andra språk finns: