你好,
我想知道是否有一種簡單的方法可以檢索信號在時間序列數據中保持在特定限制以上的平均時間(以小時或分鐘為單位)。 我在附件中添加了一個示例數據集。
我添加了一些根據數據的平均基線計算的初步 SD 限制。

那麼信號返回低於 2SD、3SD 或 5SD 的平均時間是多少?
謝謝。
這是一個非常簡單的公式,可以計算持續時間。

然後我只是運行一個分佈來查看數據的形狀,並獲得平均值。

在下面的示例中,我只創建了一個新列來確定超過 1 SD 的持續時間。該公式非常簡單,因此使用它來計算 2SD 等應該可以從第一個公式擴展。
這是進行計算和顯示的 JSL。這可以很容易地以交互方式完成。
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 ) )}
)
)
);