Trovare la migliore finestra di datiA complemento della mia ultima domanda...
Devo identificare la finestra migliore in una tabella dati, ad esempio da Samples/Data/Functional Data/Weekly Weather Data.jmp, devo identificare le X righe consecutive (finestra mobile) con il TMAX più alto per STATION.Non sono sicuro se utilizzare la finestra con la media più alta o il minimo più basso, quindi mi piacerebbe sapere come fare entrambe le cose.
Come prima, sono sicuro che ci sia un modo per farlo con JSL, ma preferirei utilizzare una funzione, se possibile.
Ho provato un sacco di cose con Col Moving Average() e Col Rank() ma in qualche modo mi sembra fuori portata.
Analisi e modellazione dei dati di baseCombinazione e pulizia dei datiRi: Trovare la migliore finestra di datiDevo aver frainteso la tua domanda, ma sembra che tu voglia solo il massimo della colonna per stazione: vedi l'ultima colonna nello script allegato e memorizzato Tabulazione dei risultati.Ma sospetto che tu intenda qualcos'altro e non capisco cosa intendi con "finestra mobile".
Ri: Trovare la migliore finestra di datiNo, sto cercando di creare una colonna in cui abbia un "1" accanto alle righe X consecutive, ad esempio 4 righe consecutive, il cui valore minimo di un'altra colonna su quelle 4 righe sia il più grande.
Ri: Trovare la migliore finestra di datiSarebbe utile se potessi fornire un esempio del risultato finale di ciò che stai cercando.
Ri: Trovare la migliore finestra di datiChe ne dici di combinare? Col Max (per trovare il Picco) con Media mobile col (per allungare la finestra di ricerca)
Inoltre:
- per contrassegnare la posizione di picco, confrontare i singoli valori con il valore massimo
veloce e sporco:
- forse: 2 partite
- forse [ma improbabile]: una corrispondenza errata con il valore massimo di un'altra stazione - per Dati meteorologici settimanali , bisogna investire uno sforzo extra:
per ogni stazione mancano alcune settimane - quindi per cercare nella finestra corretta, è necessario informare Jmp dei dati mancanti tramite split & stack (funziona poiché nessuna settimana manca completamente).

dt = Open( "$SAMPLE_DATA/Functional Data/Weekly Weather Data.jmp" );
half_window_size = 2;
dtsplit = dt << Split(
Split By( :week of year ),
Split( :TAVG ),
Group( :STATION ),
Remaining Columns( Drop All )
);
myNames=dt split << get column names();
myNames= myNames[2::Nitems(myNames)];
dtstack = dtsplit <<
Stack(
columns(myNames)
);
New Column( "window",Formula(Col Moving Average( :Data, 1, half_window_size, half_window_size, :STATION )));
New Column( "max_window",Formula( Col Maximum( :window, :STATION ) ));
New Column( "marker",Nominal,Formula( :window == :max_window ));
:Label << Set Data Type(Numeric) << set name ("week of year");
Graph Builder(
Variables(
X( :week of year ),
Y( :Data ),
Y( :window, Position( 1 ) ),
Y( :max_window, Position( 1 ) ),
Group X( :STATION, N View Levels( 1 )),
Overlay( :marker )
),
Elements(
Points( X, Y( 1 ), Overlay( 0 ) ),
Points( X, Y( 2 )),
Smoother( X, Y( 3 ) )
)
)
Ri: Trovare la migliore finestra di datiSi è scoperto che il nostro problema particolare era molto più complicato di quanto pensassimo inizialmente, quindi abbiamo finito per codificare l'elaborazione in Python poiché ne abbiamo più familiarità.
Io segnalerò @hogi Questa è la soluzione per chiudere l'argomento.