Hallo,
Ich habe mich gefragt, ob es eine einfache Möglichkeit gibt, die durchschnittliche Zeit (in Stunden oder Minuten) abzurufen, die ein Signal innerhalb von Zeitreihendaten über einem bestimmten Grenzwert bleibt. Ich habe einen Beispieldatensatz im Anhang hinzugefügt.
Ich habe einige vorläufige SD-Grenzwerte hinzugefügt, die ich basierend auf der mittleren Basislinie der Daten berechnet habe.

Wie lange dauert es also im Durchschnitt, bis das Signal wieder unter 2SD, 3SD oder 5SD zurückkehrt?
Danke.
Es ist eine ziemlich einfache Formel, die die Dauer berechnet.

Und dann habe ich einfach eine Verteilung ausgeführt, um die Form der Daten zu sehen und den Mittelwert zu erhalten.

In meinem Beispiel unten erstelle ich nur eine neue Spalte, die die Dauer bestimmt, die über 1 SD verbracht wird.Die Formel ist ziemlich einfach, daher sollte die Verwendung zur Berechnung des 2SD usw. von der ersten Formel aus erweiterbar sein.
Hier ist die JSL für die Berechnung und Anzeige.Das geht ganz einfach interaktiv.
Names Default To Here( 1 );
dt = Current Data Table();
dt << New Column( "sd1 Duration",
Numeric,
"Continuous",
Format( "hr:m:s", 13, 0 ),
Input Format( "hr:m:s", 0 ),
Formula(
If( Row() == 1,
start = 0;
sdLimit = Col Mean( :Count ) + Col Std Dev( :Count );
);
theTime = .;
If( :Count <= sdLimit & start > 0,
theTime = :"Date/Time"n - start;
start = 0;
);
If( :Count > sdLimit & start == 0,
start = :"Date/Time"n
);
theTime;
),
Set Selected
);
Distribution(
Continuous Distribution( Column( :sd1 Duration ), Horizontal Layout( 1 ), Vertical( 0 ) ),
SendToReport(
Dispatch(
{"sd1 Duration"},
"1",
ScaleBox,
{Min( -2009.13865683119 ), Max( 143459.453400931 ), Interval( "Hour" ), Inc( 10 ),
Minor Ticks( 1 )}
),
Dispatch(
{"sd1 Duration"},
"Distrib Histogram",
FrameBox,
{DispatchSeg( Hist Seg( 1 ), Bin Span( 2, 0 ) )}
)
)
);