JSL- Esiste un modo per interpolare automaticamente i valori "x" da "y" utilizzando l'equazione di regressione?Attualmente sto utilizzando JSL per la prima volta per automatizzare l'analisi/report dei dati. La mia analisi prevede:
1. Importazione dei dati richiesti (fatto)
2. Analisi dei dati (dati)
3. Utilizzo dei dati calcolati per eseguire un'analisi bivariata e adattare una linea (fatto)
4. Utilizzo dell'equazione di regressione generata per prevedere "x" per valori "y" specifici: ecco dove risiede il mio problema. Mi piacerebbe avere la capacità di generare dinamicamente "x" da "y" in JSL. Inoltre, non voglio dover digitare manualmente l'equazione di regressione poiché ciò differirebbe per diversi set di dati.
Qualche indicazione?
Ri: JSL- Esiste un modo per interpolare automaticamente i valori "x" da "y" utilizzando la regressione equatUtilizza la piattaforma della curva di adattamento e salva una colonna formula con le previsioni inverse.
dt=open("$Sample_Data/Big Class.jmp");
model= Fit Curve( Y( :height ), X( :weight ) );
model<< Fit Linear(Save Inverse Prediction Formula);
potresti semplicemente utilizzare i valori nella tabella, ma potresti anche ottenere la proprietà della colonna formula,
Ri: JSL- Esiste un modo per interpolare automaticamente i valori "x" da "y" utilizzando la regressione equatAvrei dovuto chiedere chiarimenti.Volevi davvero fare la previsione inversa?Se è così, puoi comunque usare il mio metodo e creare semplicemente una formula con (:height - coef[1])/coef[2]
Ri: JSL- Esiste un modo per interpolare automaticamente i valori "x" da "y" utilizzando la regressione equatIl modo più semplice potrebbe essere quello di utilizzare Stima modello e ottenere la piattaforma Stima dei minimi quadrati che include la previsione inversa.
Ri: JSL- Esiste un modo per interpolare automaticamente i valori "x" da "y" utilizzando la regressione equatUn altro approccio: utilizzare Stima modello e quindi utilizzare il comando Previsione inversa.
Ri: JSL- Esiste un modo per interpolare automaticamente i valori "x" da "y" utilizzando la regressione equatCIAO @Ainaskid
Probabilmente ci sono milioni di modi per ottenere ciò che stai cercando di fare.Dipende da come si desidera fornire i valori dei predittori per ottenere la risposta prevista.Vuoi farlo in una finestra di dialogo in cui l'utente inserisce un numero, preme un pulsante e la finestra restituisce una previsione?Sarebbe accettabile semplicemente inserire nuovi valori di X come righe aggiuntive nella tabella dei dati e fare in modo che una formula di previsione restituisca il valore previsto in una colonna?
Ti mostrerò velocemente come eseguire quest'ultima poiché è più semplice.Ecco un esempio che utilizza il set di dati Big Class e prevede l'altezza in base al peso:
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
biv = dt << Bivariate( Y( :height ), X( :weight ), Fit Line() ); //get reference to Bivariate object
rpt = (biv << Report); //get reference to report window for Biv
//get the coefficients from the parameter estimates table
Coefs = (rpt["Parameter Estimates"][Table Box( 1 )] << Get as Matrix)[0, 1];
//Create prediction formula from the coefficients
Eval(
Parse(
Eval Insert( "\[dt << New Column("Prediction Formula", formula(^Coefs[1]^ + ^Coefs[2]^*:weight))]\" )
)
);
//You'll want to hard code in the value of the coefs using the string
//Otherwise this column won't work once Coefs is no longer defined or the value has changed
//The "Eval Insert" function inserts the value of Coefs[1] and Coefs[2] into the formula - this is how it is hard-coded in
Ora dovresti vedere una nuova colonna in Big Class con le previsioni.Poiché si tratta di una formula, posso aggiungere nuove righe con valori di peso e ottenere nuove previsioni di altezza.Qui ho aggiunto una riga per 200 e ho ottenuto 75,42 come previsione
Voglio sottolineare che questo è ancora più semplice se si adatta invece il modello nella piattaforma Fit Model poiché è sufficiente inviare un messaggio << Formula di previsione all'oggetto Fit Model per ottenere la colonna con la formula di previsione.
FitMod = dt << Fit Model(
Y( :height ),
Effects( :weight ),
Personality( "Standard Least Squares" ),
Emphasis( "Effect Leverage" ), Run()
);
FitMod << Prediction Formula;