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

Wie lange würde das Signal durchschnittlich unter 2SD, 3SD oder 5SD zurückkehren?
Vielen Dank.
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 ermitteln.

In meinem Beispiel unten erstelle ich nur eine neue Spalte, die die Zeitdauer bestimmt, die über 1 SD verbracht wurde.Die Formel ist ziemlich einfach, daher sollte die Verwendung zur Berechnung der 2SD usw. ab der ersten Formel erweiterbar sein.
Hier ist die JSL für die Berechnung und Anzeige.Dies kann leicht interaktiv erfolgen.
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 ) )}
)
)
);