안녕 모두,
Periodogram(Time Series > Save Spectral Density)에서 피크의 위치를 가져오려는 위치에 대해 시계열 분석을 수행하는 일부 데이터가 있습니다. 예를 들어 Y 열 변수만 입력하여 Air.jmp 샘플 데이터 테이블을 사용하여 이 작업을 수행할 수 있습니다. X, Time ID 변수를 넣어도 되지만 필수는 아닙니다.
어쨌든 Spectral Density를 저장하면 Spectral Density, Periodogram 및 :Frequency와 같은 몇 가지 열이 있습니다. 아래 스크린샷을 참조하십시오.

내가 하려는 것은 :Periodogram 열에서 상위 3개 또는 4개 피크의 행 번호를 찾는 것입니다. :Spectral Density 열(노란색으로 강조 표시된 영역 참조)보다 작업하기가 조금 더 쉽습니다. 해당 행 번호가 있으면 :Period 및 :Frequency 열에서 해당 값을 찾아 결과로 다시 보고할 수 있습니다.
내가 가진 문제는 Col Max(:Periodogram) 결과가 아닌 다른 값을 얻을 수 있다는 것입니다. 나는 그것을 잘 얻을 수 있지만 관심있는 다른 열을 선택하기가 더 어렵습니다. 올가미 도구 등을 사용하지 않고 작업이 자동화되도록 JSL로 이 작업을 수행하고 싶습니다.
모든 아이디어나 제안을 환영합니다.
감사해요!,
DS
다음은 피크를 찾는 한 가지 방법의 예입니다.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/blood pressure.jmp" );
dt << select where(
Try( :bp 8m[Row() - 1], 999 ) < :bp 8m[Row()] & :bp 8m[Row()] > Try( :bp 8m[Row() + 1], 0 )
);
다음은 Dif()를 사용하는 다른 옵션입니다.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Time Series/Air.jmp");
ts = dt << Time Series(Y(:Ozone Concentration));
dt1 = ts << Save Spectral Density;
ts << Close Window;
Close(dt, no save);
dt1 << Sort(By(:Period), Replace Table, Order(Ascending));
dt1 << New Column("PeriodogramPeaks", Numeric, Nominal, Formula(
Dif(:Periodogram) > 0 & Dif(:Periodogram, -1) > 0
));
dt1 << New Column("PeakRank", Numeric, Ordinal, Formula(
Col Number(:Periodogram, :PeriodogramPeaks) - Col Rank(:Periodogram, :PeriodogramPeaks) + 1
));
peak_rows = dt1 << Get Rows Where(:PeakRank <= 4 & :PeriodogramPeaks == 1);
dt1 << Select Rows(peak_rows);
dt1 << Markers(16);
gb = dt1 << Graph Builder(
Size(534, 456),
Show Control Panel(0),
Variables(X(:Period), X(:Frequency), Y(:Spectral Density), Y(:Periodogram)),
Elements(Position(1, 1), Line(X, Y, Legend(7)), Points(X, Y, Legend(8))),
Elements(Position(1, 2), Line(X, Y, Legend(5)), Points(X, Y, Legend(6))),
Elements(Position(2, 1), Line(X, Y, Legend(9)), Points(X, Y, Legend(10))),
Elements(Position(2, 2), Line(X, Y, Legend(11)), Points(X, Y, Legend(12)))
);안녕 @jthi 그리고 @txnelson ,
입력해 주셔서 감사합니다. 나는 결국 함께 갔다 @jthi 스펙트럼 밀도 그래프/데이터 테이블을 사용하여 내가 다루고 있는 데이터 종류에 대해 더 잘 작동하는 것 같았기 때문입니다. 이에 대한 귀하의 의견에 진심으로 감사드립니다. 또 다른 유용한 솔루션에 대해 다시 한 번 감사드립니다!
DS