Calcolo della pendenza di regressione lineare nella formulaCiao,
Mi chiedevo se esistesse un modo per calcolare la pendenza della regressione lineare dei dati della colonna all'interno di una formula della tabella dati.
Di seguito è riportato un semplice esempio della tabella. I dati sono ordinati e vorrei calcolare la pendenza di una linea di adattamento del volume nel tempo utilizzando i dati della riga corrente e i punti precedenti per eseguire la regressione.
L'idea è che mi piacerebbe vedere come cambia la pendenza calcolata con l'aumentare del numero di punti dati. Facendo questo manualmente, i valori della pendenza finiscono per avvicinarsi a un dato valore e rimangono entro +/-5% dopo circa 20 punti.
| Esempio | Tempo (i) | Volume (ml) | Pendenza (ml/s) |
| 1 | 0 | 0 | n / a |
| 2 | 5 | 0,5 | m1 |
| 3 | 10 | 0.8 | m2 |
| ... | ... | ... | ... |
| N | T | v | mN-1 |
Se ciò è possibile, la mia prossima sfida sarebbe impostarla in modo da poter calcolare la formula della pendenza in modo che utilizzi N punti dati su entrambi i lati della riga corrente per un calcolo in movimento simmetrico.
Grazie in anticipo.
Ri: Calcolo della pendenza della regressione lineare nella formulaQuesto è interessante .. se volessi applicare un valore p a questo ... basato su ipotesi nulla (pendenza = 0) ... c'è un modo per integrarlo in forumula?
In altre parole, vorrei vedere quando la pendenza in movimento cambia in modo significativo in base all'intervallo di confidenza intorno alla pendenza
Ri: Calcolo della pendenza della regressione lineare nella formulaHai detto, " Molte volte, non sappiamo quando la correlazione tra le X è cambiata, quindi questo è un tentativo di esaminare l'impatto del tempo per qualsiasi analisi a portata di mano. " Hai provato Functional Data Explorer in JMP Pro? Potrebbe essere utile per rilevare un cambiamento nella forma attraverso i componenti principali funzionali.
Ri: Calcolo della pendenza della regressione lineare nella formulaSalve squadra JMP...
L'approccio di Nelson è molto probabilmente quello che stavo cercando. Sto conversando con lui su un'esigenza simile con il test tau di mann kendall.
Il mio input non è in una singola riga.
I miei dati in genere contengono diversi parametri, ciascuno misurato in una fase temporale diversa. Formato dati ordinato; i parametri sono in colonne, ogni riga è uno stato temporale diverso, ad esempio la cronologia è in righe.
Sto esaminando molte funzioni statistiche che misurano la tendenza in una di queste o un adattamento rispetto a qualche altra X nel tempo ma in funzione delle finestre scorrevoli.Quindi, invece di regredire l'intera storia di X rispetto a Y, ad esempio, mi piace una logica che esamini la regressione dei due all'interno di N passaggi temporali costanti. Ogni riga quindi rivaluta e mi dà un nuovo risultato. Questi potrebbero essere una pendenza dalla regressione lineare o un test tau da un test MK non parametrico o qualche altro output statistico.
Molte volte, non sappiamo quando la correlazione tra le X è cambiata, quindi questo è un tentativo di esaminare l'impatto del tempo per qualsiasi analisi a portata di mano. N menzionato sopra può essere modificato in vari valori per esaminare le tendenze a breve termine rispetto a medio/lungo termine.
Sto bene con gli script, non sono le mie preferenze a meno che i calcoli non possano trarre grande vantaggio da un metodo offerto solo dagli script.
La mia preferenza è generalmente quella di inserire i calcoli in formule e mantenerli all'interno dei frame di dati.
Fino ad oggi, IO no sapere che le strutture di script potrebbero essere distribuite all'interno delle formule.
Questa probabilmente è stata la causa principale della mia confusione.
Apprezzo tutto il tuo aiuto.
Ri: Calcolo della pendenza della regressione lineare nella formulaLo so.
Il punto è che il modo migliore per iniziare a conoscere le funzioni che potresti utilizzare in una formula è con lo Scripting Index.
Ri: Calcolo della pendenza della regressione lineare nella formulaPuoi darci qualche informazione in più su quello che stai cercando?
Le formule, in generale, funzionano su righe di una tabella di dati, valutandone una per riga con i valori di colonna di quella riga come input.
Quindi, chiedendo una funzione di regressione nell'editor di formule, ci si aspetterebbe di avere una matrice di valori di input in ogni riga della tabella di dati. Forse è quello che hai, ma è una struttura insolita.
Quindi, con qualche informazione in più, potremmo essere in grado di aiutarti a capire come potresti usare una formula per questo, o forse, indicarti una direzione al di fuori dell'editor di formule.
Ri: Calcolo della pendenza della regressione lineare nella formulaUna formula JMP può praticamente essere qualsiasi cosa tu voglia che sia.Il mio riferimento alla funzione Regressione lineare () nell'indice di scripting, mostra il suo esempio sotto forma di script, ma la funzione può essere utilizzata anche in una formula.Di seguito è riportato uno stupido esempio di calcolo della regressione per le prime righe 1-3, quindi 1-4, 1-5, ecc. per tutte le righe nella tabella dati Big Class.Ecco la formula...….allegata nella tabella dei dati con la nuova colonna della formula aggiunta

Ri: Calcolo della pendenza della regressione lineare nella formulaNon sto cercando una sceneggiatura.
Sto cercando un'applicazione di formule (ovvero utilizzando il generatore di formule)Ri: Calcolo della pendenza della regressione lineare nella formulaSelezionare Guida > Indice script. Immettere "regressione" nella casella del filtro. Dovresti trovare la funzione Regressione lineare () nel secondo elenco. Selezionalo per visualizzare le informazioni su questa funzione sulla destra.
Ri: Calcolo della pendenza della regressione lineare nella formulaCIAO ...
Hai nominato " Funzione Regressione lineare(), che potrebbe essere utilizzata in una formula" ...e ottenere una pendenza da una formula adatta al set di dati fornito è l'obiettivo finale , dove si potrebbe trovare la funzione Linear Regression() o qualsiasi aiuto?
Hai qualche esempio?
Grazie
Ri: Calcolo della pendenza della regressione lineare nella formulaJ() è una funzione che crea una matrice di valori identici.Il valore predefinito è 1.
|| è un operatore che indica la concatenazione.Quindi nell'esempio di Mark sta concatenando 2 matrici.
Queste funzioni e operatori sono completamente documentati nella Guida allo scripting
Aiuto==>Libreria documenti JMP …..Guida alla sceneggiatura
Ri: Calcolo della pendenza della regressione lineare nella formula@Mark_Bailey Ciao mark, sono nuovo in JMP e sto cercando di fare qualcosa di simile a bio_grad dove eseguo la regressione lineare su 3 punti, poi 4 punti, poi così via in una colonna nella mia tabella dati. Sto cercando di capire cosa sta effettivamente facendo la tua risposta e avevo un paio di domande. Cosa significa || Significare? inoltre cos'è J?Ri: Calcolo della pendenza della regressione lineare nella formulaCaro @txnelson , puoi mostrare come modificare il codice sopra per eseguire modelli di adattamento su selezioni di righe basate su ciascun ID/valore "wafer", invece del campionamento casuale? Grazie!Ri: Calcolo della pendenza della regressione lineare nella formulaCIAO,
Hai menzionato un "intervallo di 3", se vogliamo modificarlo per essere una pendenza mobile di "N" campioni, quale valore dovrà cambiare?
Grazie!
Ri: Calcolo della pendenza della regressione lineare nella formulaDai un'occhiata alla funzione Regressione lineare (), che potrebbe essere utilizzata in una formula.Potrebbe essere qualcosa che puoi usare.
Ri: Calcolo della pendenza della regressione lineare nella formulaCIAO,
Esiste un piano per inserire la pendenza e l'intercettazione nel generatore di formule di una futura versione di JMP con una funzione diretta più semplice?
grazie.
Ri: Calcolo della pendenza della regressione lineare nella formulaOttimo, funziona, grazie
Ri: Calcolo della pendenza della regressione lineare nella formulaQuesta formula modificata produce una pendenza mobile di campata 8:
If( Row() > 7,
x = J( 8, 1, 1 ) || :height[Index( Row() - 7, Row() )]`;
y = :weight[Index( Row() - 7, Row() )]`;
(Inv( x` * x ) * x` * y)[2];
)
Ri: Calcolo della pendenza della regressione lineare nella formulaCIAO
Sto cercando di applicare la tua formula per calcolare la pendenza mobile con una finestra di 8, con cui intendo (per Row ()> 7), voglio calcolare la pendenza della regressione lineare per il primo set di dati x e y punti [da 1 a 8], quindi il gruppo successivo di 8 punti dati incrementati di 1 [da 2 a 9] e così via. Sto cercando di calcolare la pendenza massima per ottenere la velocità iniziale di una reazione enzimatica.
Per favore, puoi dirmi come modificheresti il tuo script per raggiungere questo obiettivo? Ho testato la tua formula e ottengo la pendenza per tutti i punti dati dalla riga 1 alla riga n, piuttosto che una finestra mobile di dimensioni definite.
grazie in anticipo
Ri: Calcolo della pendenza della regressione lineare nella formulawow~~ Fantastico!!!!!!
Grazie mille!!!!! 
Ri: Calcolo della pendenza della regressione lineare nella formulaQuesto e 'esattamente quello che stavo cercando. Non avevo idea che queste operazioni fossero disponibili!
Grazie!
Ri: Calcolo della pendenza della regressione lineare nella formulaPuoi anche usare una formula di colonna. Ho aperto Big Class.jmp dalla cartella Sample Data. (Selezionare Aiuto > Libreria di dati di esempio > Grande classe.jmp > Aprire ) Ho creato una nuova colonna numerica chiamata pendio in movimento . Questo esempio calcola la pendenza mobile con un'estensione di 3 per Y = peso e X = altezza con la seguente formula di colonna:
If( Row() > 1,
x = J( Row(), 1, 1 ) || :height[Index( 1, Row() )]`;
y = :weight[Index( 1, Row() )]`;
(Inv( x` * x ) * x` * y)[2];
,
Empty()
)
Quindi traccia la pendenza in movimento rispetto alla riga in Costruttore di grafici.
Ri: Calcolo della pendenza della regressione lineare nella formulaProva a inserire questa formula in una nuova colonna formula (questo calcolerà la pendenza fino alla riga corrente):
(Row() * Summation( i = 1, Row(), :Time[i] * :Volume[i] )
-Summation( i = 1, Row(), :Time[i] ) * Summation( i = 1, Row(), :Volume[i] )) / (
Row() * Summation( i = 1, Row(), :Time[i] ^ 2 )
-Summation( i = 1, Row(), :Time[i] ) ^ 2)
Per fare la seconda parte della tua domanda sarebbe sufficiente cambiare l'indice sulla sommatoria, cioè da i=Row()-N a Row()+N.
Spero che questo ti aiuti.
-Jerry
Ri: Calcolo della pendenza della regressione lineare nella formulaEcco uno script che ti dà l'output che desideri, lo fa solo in un modo diverso.Utilizza la piattaforma Fit Model e la ripercorre diverse volte, aumentando il valore N.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\semiconductor capability.jmp" );
// Create an output table to hold the results
dtOut = New Table( "summary",
New Column( "Instance" ),
New Column( "N" ),
New Column( "RSquare" ),
New Column( "RSM" ),
New Column( "Intercept" ),
New Column( "b1" ),
New Column( "b2" )
);
Loop Counter = 0;
// Loop across the different sizes
For( i = 5, i <= 111, i = i + 5,
Loop Counter++;
// Create a random sample data table from the original data table
dt << New Column( "random", formula( Random Uniform() ) );
dt << sort( by( dt:random ), , Order( Ascending ), replace table( 1 ) );
dt << delete columns( "Random" );
dt << select where( Row() <= i );
dtSample = dt << subset( invisible, selected rows( 1 ), selected columns( 0 ) );
// Run the regression
fm = dtSample << Fit Model(
Y( :NPN1 ),
Effects( :PNP1, :PNP2 ),
Personality( "Standard Least Squares" ),
Emphasis( "Minimal Report" ),
Run(
:NPN1 << {Summary of Fit( 1 ), Analysis of Variance( 1 ), Parameter Estimates( 1 ),
Lack of Fit( 0 ), Plot Actual by Predicted( 0 ), Plot Regression( 0 ),
Plot Residual by Predicted( 0 ), Plot Effect Leverage( 0 )}
)
);
// Capture the output data
dtOut << Add Rows( 1 );
dtOut:Instance[N Rows( dtOut )] = Loop Counter;
dtOut:N[N Rows( dtOut )] = i;
dtOut:RSquare[N Rows( dtOut )] = (Report( fm )["Summary of Fit"][1][2] << get)[1];
dtOut:RSM[N Rows( dtOut )] = (Report( fm )["Summary of Fit"][1][2] << get)[3];
dtOut:Intercept[N Rows( dtOut )] = (Report( fm )["Parameter Estimates"][1][3] << get)[1];
dtOut:b1[N Rows( dtOut )] = (Report( fm )["Parameter Estimates"][1][3] << get)[2];
dtOut:b2[N Rows( dtOut )] = (Report( fm )["Parameter Estimates"][1][3] << get)[3];
// Clean up after our selfs
fm << close window;
Close( dtSample, nosave );
);Ri: Calcolo della pendenza della regressione lineare nella formulaSoluzione fantastica per ESATTAMENTE quello che volevo fare. Grazie!!
Ri: Calcolo della pendenza della regressione lineare nella formulaLe persone interessate a questo problema potrebbero prendere in considerazione l'idea di sostenere l'idea del desiderio:
https://community.jmp.com/t5/JMP-Wish-List/Moving-Rolling-Window-Statistics/idi-p/722620