JSL: ¿Hay alguna manera de interpolar automáticamente los valores 'x' desde 'y' usando la ecuación de regresión?Actualmente estoy usando JSL por primera vez para automatizar el análisis/informes de datos. Mi análisis implica:
1. Importando los datos requeridos (hecho)
2. Analizando los datos (datos)
3. Usar datos calculados para realizar un análisis bivariado y ajustar una línea (hecho)
4. Usar la ecuación de regresión generada para predecir 'x' para valores específicos de 'y': Aquí es donde radica mi problema. Me gustaría tener la capacidad de generar dinámicamente 'x' a partir de 'y' en JSL. Tampoco quiero tener que escribir la ecuación de regresión manualmente, ya que esto diferiría para diferentes conjuntos de datos.
¿Algún consejo?
Re: JSL: ¿Hay alguna manera de interpolar automáticamente los valores 'x' desde 'y' usando la ecuación de regresión?Esto utiliza la plataforma de curva de ajuste y guarda una columna de fórmula con las predicciones inversas.
dt=open("$Sample_Data/Big Class.jmp");
model= Fit Curve( Y( :height ), X( :weight ) );
model<< Fit Linear(Save Inverse Prediction Formula);
podría usar simplemente los valores de la tabla, pero también podría obtener la propiedad de la columna de fórmula,
Re: JSL: ¿Hay alguna manera de interpolar automáticamente los valores 'x' desde 'y' usando la ecuación de regresión?Debería haber pedido una aclaración.¿Realmente querías hacer una predicción inversa?Si es así, aún puedes usar mi método y simplemente hacer una fórmula con (:height - coef[1])/coef[2]
Re: JSL: ¿Hay alguna manera de interpolar automáticamente los valores 'x' desde 'y' usando la ecuación de regresión?La forma más sencilla podría ser utilizar Fit Model y obtener la plataforma Fit Least Squares que tiene incorporada la predicción inversa.
Re: JSL: ¿Hay alguna manera de interpolar automáticamente los valores 'x' desde 'y' usando la ecuación de regresión?Otro enfoque: use Ajustar modelo y luego use el comando Predicción inversa.
Re: JSL: ¿Hay alguna manera de interpolar automáticamente los valores 'x' desde 'y' usando la ecuación de regresión?Hola @Ainaskid
Probablemente haya un millón de maneras de conseguir lo que estás intentando hacer.Depende de cómo desee dar los valores de los predictores para obtener la respuesta prevista.¿Quiere hacerlo en un cuadro de diálogo donde el usuario ingresa un número, presiona un botón y la ventana devuelve una predicción?¿Sería aceptable simplemente poner nuevos valores de X como filas adicionales en su tabla de datos y hacer que una fórmula de predicción devuelva el valor predicho en una columna?
Te mostraré rápidamente cómo hacer esto último ya que es más fácil.A continuación se muestra un ejemplo que utiliza el conjunto de datos Big Class y predice la altura a partir del 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
Ahora deberías ver una nueva columna en Big Class con las predicciones.Como es una fórmula, puedo agregar nuevas filas con valores de peso y obtener nuevas predicciones de altura.Aquí, agregué una fila para 200 y obtuve 75,42 como predicción.
Quiero señalar que esto es aún más fácil si ajusta el modelo en la plataforma Ajustar modelo, ya que puede simplemente enviar un mensaje << Fórmula de predicción al objeto Ajustar modelo para obtener la columna con la fórmula de predicción.
FitMod = dt << Fit Model(
Y( :height ),
Effects( :weight ),
Personality( "Standard Least Squares" ),
Emphasis( "Effect Leverage" ), Run()
);
FitMod << Prediction Formula;