JSL para bandas de confianza en gráficos modelo, ¿mejores ideas?Me gustaría obtener una gráfica de mis datos, superpuesta con los resultados de un modelo, con bandas de confianza sombreadas.
Un gráfico como este de Fit Model, por ejemplo, pero con intervalos de confianza sombreados alrededor de las líneas de ajuste:

Soy consciente de que para este ejemplo en particular podría obtener lo que busco en FitYbyX:

Eso muestra lo que estoy buscando, pero no funciona para algunos ajustes, por ejemplo, si quisiera hacer este ajuste y restringirlo a la misma pendiente para cada sexo.
Además, veo algunas publicaciones en las que otros han solicitado cosas similares pero que también involucran Ajuste de curva o Ajustes no lineales:
Resuelto: ¿Cómo sumar los intervalos de confianza a un gráfico de regresión logística? - Comunidad de usuarios de JMP
Trazar intervalos de confianza en la "curva de ajuste" de JMP - Comunidad de usuarios de JMP
Dos de las sugerencias en esos hilos no me satisfacen del todo:
Una es que existen bandas de confianza en el perfilador. Bien, pero eso no ayuda en este tipo de ejemplo en el que me gustaría superponer los ajustes.
(También aprecio que fácilmente podría haber demasiados factores para que Ajustar modelo incluso haga ese Gráfico de regresión, por eso no tiene todas las funciones; existe la expectativa de que lo usarás con modelos más complejos que necesitas explorar. perfilador? Pero hay casos en los que es útil el gráfico simple o uno con curvas superpuestas).


Otra era una buena forma de sombrear entre curvas en el generador de gráficos utilizando valores predichos guardados.
Resuelto: ¿Cómo creo un intervalo de confianza sombreado en un gráfico de Graph Builder? - Comunidad de usuarios de JMP
También es bueno en algunos casos, pero quiero que las predicciones sean una curva suave que se extienda más allá de los datos reales.
Eso parece dejar de capturar las fórmulas para las bandas de confianza de la plataforma y luego usarlas en un script gráfico.
Creo que veo el camino hacia eso, pero parece tan doloroso que me pregunto si me estoy perdiendo una manera más inteligente antes de profundizar demasiado en él. ¿O esto ya se ha demostrado en alguna parte?
En mi ejemplo, la fórmula se ve así (solo para el límite de confianza inferior):

Necesito hacer algunas sustituciones y hacer una curva Y para cada sexo:

Aquí está solo dibujar esas líneas de límite inferior, hasta ahora todo bien...

Puedo repetir para la predicción en sí y la línea de confianza superior y luego para sombrear... Puedo hacer un polígono usando una serie de puntos a lo largo de cada par de curvas... uf, veo que puedo hacer eso, pero parece demasiado complicado... ¿Me estoy perdiendo alguna forma más sencilla incluso solo para esta parte de querer sombrear entre funciones Y? ¿O es este realmente el camino correcto?
En breve:
¿Existe realmente alguna forma de sacar este tipo de trama de estas plataformas de modelado de manera más directa? (Si no, creo que podría ser un elemento de la lista de deseos que valga la pena).
Si no, ¿mejores ideas sobre cómo crear la trama deseada que los guiones gráficos que describí?
Si no, ¿me falta algo más simple que un polígono para sombrear las curvas Y en un guión gráfico?
¡Gracias!
Modelado estadístico avanzadoAutomatización y secuencias de comandosAnálisis y modelado de datos básicosRe: JSL para bandas de confianza en gráficos modelo, ¿mejores ideas?Hola @hardner ,
Creo que deberías poder hacer lo que quieras a través de la plataforma Fit Y by X, al menos según tengo entendido lo que buscas. No estoy seguro acerca de la plataforma no lineal y si puedes hacer lo mismo.
De todos modos, si va al triángulo rojo al lado del ajuste bivariado y selecciona Ajuste especial... en lugar de Ajustar línea, entonces puede hacer transformaciones de los datos o restringir los ajustes lineales para que tengan una determinada pendiente o intersección. Usando tu ejemplo, lo hice usando una pendiente de 0,113.


Y las bandas de confianza se extenderán más allá de los puntos de datos; solo tendrá que ajustar el rango en los ejes.

Según lo que describiste en tu publicación, creo que esto es lo que buscabas. O tal vez no entiendo completamente lo que quieres.
Espero que esto ayude,
DS
Re: JSL para bandas de confianza en gráficos modelo, ¿mejores ideas?Hola @SDF1 ,
¡Gracias! El problema con esto es que esas bandas de confianza están muy apretadas porque le dijiste cuál era la pendiente; tiene mucha confianza en esa parte y solo ajustó la intercepción. Puede ajustar la pendiente en el modelo de ajuste y luego especificarla aquí para ver las líneas de ajuste bien superpuestas y ver las ecuaciones de ajuste bien mostradas en comparación con Ajustar modelo. Y atraerá muy bien las bandas de confianza. Entonces, sí, ese es en gran medida el tipo de imagen que estaba buscando y para algunos ajustes FitYbyX funciona, pero esas no son las bandas de confianza que quiero.
Re: JSL para bandas de confianza en gráficos modelo, ¿mejores ideas?Hola @hardner ,
Supongo que todavía no entiendo lo que buscas.
Mencionaste en tu publicación original: "... por ejemplo, si quisiera hacer este ajuste y restringirlo a la misma pendiente para cada sexo". Por eso en el ejemplo que puse estaba haciendo exactamente eso, fijando la pendiente para cada sexo.
En tu publicación más reciente dices: "pero esas no son las bandas de confianza que quiero". ¿Qué bandas de confianza estás buscando? Hay dos curvas de confianza en la plataforma Fit Y by X: Confid Curves Fit, para el valor esperado de la media, y Confid Curves Indiv, que son los límites de confianza para un valor predicho individual que refleja la variación en el error y el parámetro. estimados. (resumido de la página de ayuda en línea de JMP). ¿Lo que buscas son las curvas Indiv?
DS
Re: JSL para bandas de confianza en gráficos modelo, ¿mejores ideas?Hola @SDF1 ,
Gracias por seguir pensando en mi problema. Lo siento, no aclaré mi ejemplo en el que, hasta donde sé, Fit Y by X no funciona para las bandas de confianza.
El problema es que para que la pendiente sea la misma para cada sexo, todavía quiero que se ajuste esa pendiente. En Ajustar Y por X puedes restringir la pendiente pero tienes que especificar el valor, no solo que sea el mismo por grupo (creo).
Si hago el ajuste en Ajustar modelo, puedo ajustar tanto las pendientes como las intersecciones mientras lo obligo a que las pendientes (o intersecciones) sean iguales para cada sexo.

Luego puedo (en "guardar columnas") guardar valores o una fórmula para los límites de confianza medios.
A continuación, tracé esos límites usando el generador de gráficos a la derecha (es la solución a mi problema que no me gustó porque está limitada a puntos específicos en la tabla, pero muestra las bandas de confianza que quiero para este caso, al menos durante un rango limitado). A la izquierda está FitYby X, donde simplemente le digo que se limite al valor de pendiente que obtuve de Ajustar modelo. Esas bandas de confianza (quiero las medias, las más oscuras y estrechas, pero también agregué Indiv) son lineales: no se abren en abanico con un peso mayor o menor porque hay un 100% de confianza en la pendiente especificada. En el medio de los datos están muy cerca porque los de Ajuste Y por X tienen que ver con la variación vertical, en el ajuste de las intersecciones.

Las curvas Indiv no son lo que quiero, confianza en los puntos individuales que se encuentran dentro de la banda. Quiero bandas de confianza sobre la media, pero quiero que sean sobre el ajuste en la pendiente así como sobre las intersecciones.
Parece que FitYbyX es la única plataforma que superpone bien los datos originales, los ajustes y las bandas de confianza, pero hay razones por las que no se pueden hacer todos los ajustes allí. Creo que las otras plataformas como Fit Model, Nonlinear y Fit Curve pueden hacer algunos ajustes que no puedes hacer en FitYbyX (como este es solo un ejemplo), y en algunos casos en los que podrías hacer esos gráficos porque solo existe la opción. una X y, en su lugar, solo tienen opciones para guardar los límites de confianza en los ajustes, pero no tienen la opción de superponer el gráfico.
Re: JSL para bandas de confianza en gráficos modelo, ¿mejores ideas?Hola @hardner ,
Ahora entiendo mejor tu dilema. Gracias por tomarte un tiempo para reformular el problema al que te enfrentas.
En resumen, creo que tienes razón, que Fit Y by X es la única plataforma que permite una buena superposición de los ajustes donde puedes ampliar la trama para ver cómo cambian las bandas de confianza. Y tiende a tener sentido que las fórmulas de predicción que se guardan en la tabla de datos solo lleguen al número de filas de esa tabla de datos.
Sin embargo, es posible que exista una solución alternativa que se acerque bastante a lo que desea. No es perfecto, pero probablemente sea lo más cercano que pueda llegar debido a las limitaciones de las diferentes plataformas que necesita usar (como otras plataformas de ajuste de modelos que no son Fit Y by X).
La idea que se me ocurrió fue crear algunas columnas "ficticias" con filas ficticias en la tabla de datos donde los valores son la media esperada, de esa manera no debería alterar sus bandas de confianza.
Aquí están los resultados usando Graph Builder y el código JSL correspondiente, como lo que mostró.

Graph Builder(
Graph Spacing( 4 ),
Variables(
X( :hidden weight ),
Y( :Lower 95% Mean height ),
Y( :Upper 95% Mean height, Position( 1 ) ),
Y( :Pred Formula height, Position( 1 ) ),
Y( :hidden height, Position( 1 ) ),
Overlay( :sex )
),
Elements(
Area( X, Y( 1 ), Y( 2 ), Legend( 2 ), Area Style( "Range" ) ),
Line( X, Y( 3 ), Legend( 1 ) ),
Points( X, Y( 4 ), Legend( 1 ) )
),
SendToReport( Dispatch( {}, "X title", TextEditBox, {Set Text( "weight" )} ) )
);
Estos son los pasos que seguí para llegar allí (y, por supuesto, todo esto se puede codificar en JSL, pero tomaría algo de tiempo para cada caso con el que podría estar trabajando).
1. Después de ejecutar el modelo de ajuste como lo hizo anteriormente, guarde las columnas de fórmula de interés (Pred Mean y +/-95 % Mean CI).
2. Cree dos columnas ficticias. Elegí :altura oculta y :peso oculto para los nombres.
2a. Agregue cuatro filas a la tabla de datos; esto es para que pueda tener dos puntos (valores bajo y alto) para los sexos M y F.
3. Convierta cada una de esas columnas en una fórmula.
3a. Para: altura oculta, se ve así:

3b. Para: peso oculto se ve así:

NOTA: Simplemente elegí 0 y 200 para los valores porque eran fáciles (la intersección es uno) y el otro lo elegí simplemente como un extremo superior, pero estos se configurarían según sus necesidades.
4. Cambie las fórmulas para la media de predicción y los intervalos de confianza de +/-95% para que en lugar de usar :peso para hacer los cálculos, utilicen :peso oculto para los cálculos. A continuación se muestra un ejemplo de la media de predicción.

5. Regrese y vuelva a ejecutar su código JSL, pero cambie las columnas :height y :weight a las columnas ficticias correspondientes para que incluya estas cuatro filas adicionales en la tabla de datos.
6. Lo último que hice fue cambiar las últimas cuatro filas del estilo de marcador predeterminado al estilo de marcador "/" para que estos puntos finales del valor medio sean menos visibles que los datos mismos. Tienes la opción de elegir Otro... y usar un personaje diferente. Probé las comillas dobles hacia la derecha (») de MS Word y funcionó bien.

Observe que también cambié el nombre del eje x a "peso" para que no se mostrara el "peso oculto".
Pero, según lo que has descrito, creo que esto debería manejar lo que buscas. No es el trabajo más fácil ni el más elegante, pero hace el trabajo. Me resulta más fácil que intentar trabajar con polígonos en Graph Builder, por ejemplo.
Algo para considerar y pensar.
Espero que esto ayude,
DS
Re: JSL para bandas de confianza en gráficos modelo, ¿mejores ideas?¡Gracias!
¡Lo hiciste lucir bastante bien en el generador de gráficos! Realmente no quiero "adulterar" la tabla (mi caso de uso será una herramienta para otros), pero una copia privada de la tabla es una posibilidad. Algo en lo que pensar de todos modos, aunque creo que al menos tendré que probar la forma del script de gráficos, para ver si puedo hacer que los polígonos sean lo suficientemente suaves como para que se vean igual de bien.
Aprecio especialmente que otros ojos estén de acuerdo en que esta parece ser la situación y que no me estoy perdiendo ninguna opción incorporada obvia.