JSL- Existe-t-il un moyen d'interpoler automatiquement les valeurs « x » à partir de « y » à l'aide d'une équation de régression ?J'utilise actuellement JSL pour la première fois pour automatiser l'analyse/le reporting des données. Mon analyse implique :
1. Importation des données requises (terminé)
2. Analyser les données (données)
3. Utiliser des données calculées pour effectuer une analyse bivariée et ajuster une ligne (terminé)
4. Utilisation de l'équation de régression générée pour prédire « x » pour des valeurs « y » spécifiques : Voici où réside mon problème. J'aimerais avoir la capacité de générer dynamiquement « x » à partir de « y » en JSL. Je ne veux pas non plus avoir à saisir manuellement l'équation de régression, car cela différerait selon les ensembles de données.
Des conseils ?
Re : JSL - Existe-t-il un moyen d'interpoler automatiquement les valeurs « x » à partir de « y » en utilisant l'équation de régressionCela utilise la plate-forme de courbe d'ajustement et enregistre une colonne de formule avec les prédictions inverses.
dt=open("$Sample_Data/Big Class.jmp");
model= Fit Curve( Y( :height ), X( :weight ) );
model<< Fit Linear(Save Inverse Prediction Formula);
vous pouvez soit simplement utiliser les valeurs du tableau, mais vous pouvez également obtenir la propriété de la colonne de formule,
Re : JSL - Existe-t-il un moyen d'interpoler automatiquement les valeurs « x » à partir de « y » en utilisant l'équation de régressionJ'aurais dû demander des éclaircissements.Vouliez-vous vraiment faire de la prédiction inverse ?Si c'est le cas, vous pouvez toujours utiliser ma méthode et simplement faire une formule avec (:height - coef[1])/coef[2]
Re : JSL - Existe-t-il un moyen d'interpoler automatiquement les valeurs « x » à partir de « y » en utilisant l'équation de régressionLe moyen le plus simple pourrait être d'utiliser Fit Model et d'obtenir la plate-forme Fit Least Squares qui intègre la prédiction inverse.
Re : JSL - Existe-t-il un moyen d'interpoler automatiquement les valeurs « x » à partir de « y » en utilisant l'équation de régressionAutre approche : utilisez Ajuster le modèle, puis utilisez la commande Prédiction inverse.
Re : JSL - Existe-t-il un moyen d'interpoler automatiquement les valeurs « x » à partir de « y » en utilisant l'équation de régressionSalut @Ainaskid
Il existe probablement un million de façons d'obtenir ce que vous essayez de faire.Cela dépend de la manière dont vous souhaitez donner les valeurs des prédicteurs pour obtenir la réponse prévue.Voulez-vous le faire dans une boîte de dialogue dans laquelle l'utilisateur saisit un nombre, appuie sur un bouton et la fenêtre renvoie une prédiction ?Serait-il acceptable de simplement mettre de nouvelles valeurs de X sous forme de lignes supplémentaires dans votre tableau de données et de demander à une formule de prédiction de renvoyer la valeur prédite dans une colonne ?
Je vais vous montrer rapidement comment faire ce dernier car c'est plus simple.Voici un exemple utilisant l'ensemble de données Big Class et prédisant la taille à partir du poids :
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
Maintenant, vous devriez voir une nouvelle colonne dans Big Class avec les prédictions.Puisqu'il s'agit d'une formule, je peux ajouter de nouvelles lignes avec des valeurs de poids et obtenir de nouvelles prédictions de hauteur.Ici, j'ai ajouté une ligne pour 200 et j'ai obtenu 75,42 comme prédiction
Je tiens à souligner que cela est encore plus facile si vous ajustez le modèle dans la plate-forme Fit Model, car vous pouvez simplement envoyer un message << Prediction Formula à l'objet Fit Model pour obtenir la colonne avec la formule de prédiction.
FitMod = dt << Fit Model(
Y( :height ),
Effects( :weight ),
Personality( "Standard Least Squares" ),
Emphasis( "Effect Leverage" ), Run()
);
FitMod << Prediction Formula;