Come posso calcolare R2 tra due variabili (es. Colonne) in una finestra mobile (ad es. 10 coppie di dati alla volta)?
sina
Vedi questa discussione su esecuzione della regressione lineare in una formula di colonna . Questo approccio potrebbe essere esteso per ottenere R quadrati o altri risultati.
Grazie @markbailey . Qual è la funzione per calcolare R2 in JSL? (scusate il fatto che io non conosca lo script JSL e non riesca a trovarlo online).
Capisco.
Ecco un esempio basato sulla tabella dei dati Big Class nella cartella Sample Data. Si adatta a una regressione lineare mobile con un intervallo di 5. Restituisce il valore del quadrato R in ogni riga. Puoi eseguire questo script per vedere come funziona.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// example creates a new column with a moving R square with a span of 5
// for regression of :weight versus :height
dt << New Column( "Moving R Square",
Numeric,
Continuous,
Formula(
If( Row() > 2 & Row() < (N Row()-1),
x = J( 5, 1, 1 ) || :height[Index( Row() - 2, Row() + 2 )]`;
y = :weight[Index( Row() - 2, Row() + 2 )]`;
sst = Sum( (y - Mean( y )) ^ 2 );
b = (Inv( x` * x ) * x` * y);
yhat = x * b;
sse = Sum( (y - yhat) ^ 2 );
(sst-sse) / sst;
,
Empty()
)
)
);
È possibile selezionare la parte di questo script tra parentesi dopo l'argomento Formula e incollare quell'espressione in una nuova formula di colonna nella tabella dei dati, quindi modificare i nomi delle colonne in modo che corrispondano alle colonne dei dati X e Y.
Grazie @markbailey e @ron_horne . Questo è stato molto utile !!