cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
  • JMP will suspend normal business operations for our Winter Holiday beginning on Wednesday, Dec. 24, 2025, at 5:00 p.m. ET (2:00 p.m. ET for JMP Accounts Receivable).
    Regular business hours will resume at 9:00 a.m. EST on Friday, Jan. 2, 2026.
  • We’re retiring the File Exchange at the end of this year. The JMP Marketplace is now your destination for add-ins and extensions.

Discussions

Solve problems, and share tips and tricks with other JMP users.
%3CLINGO-SUB%20id%3D%22lingo-sub-69099%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3EExtracci%C3%B3n%20de%20estimaciones%20de%20par%C3%A1metros%20de%20ajuste%20de%20curva%20no%20lineal%20(sigmoidal)%20-%20scripting%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-69099%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3EHola%20a%20todos%2C%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EPara%20orientarlo%20r%C3%A1pidamente%3A%20estoy%20trabajando%20con%20datos%20ELISA%20(curva%20de%20dosis-respuesta)%2C%20de%20modo%20que%20mi%20variable%20independiente%20es%20el%20factor%20de%20diluci%C3%B3n%2C%20mi%20variable%20dependiente%20es%20la%20absorbancia%20y%20tengo%20m%C3%BAltiples%20puntos%20de%20tiempo%20que%20estoy%20observando%20para%20m%C3%BAltiples%20animales.%20Me%20gustar%C3%ADa%20poder%20encontrar%20la%20EC50%20-%20diluci%C3%B3n%20en%20la%20mitad%20de%20la%20respuesta%20m%C3%A1xima%20-%20con%20un%20ajuste%20de%20curva%20no%20lineal%2C%20sigmoidal.%20Actualmente%20estoy%20usando%20un%20modelo%20de%204%20par%C3%A1metros%20(Probit%204P).%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EB%C3%A1sicamente%2C%20me%20gustar%C3%ADa%20escribir%20un%20script%20que%20pueda%20obtener%20los%20datos%20de%20las%20estimaciones%20de%20los%20par%C3%A1metros%20en%20una%20tabla%2C%20encontrar%20el%20punto%20intermedio%20entre%20las%20as%C3%ADntotas%20superior%20e%20inferior%20para%20cada%20curva%20y%20luego%20usar%20ese%20valor%20en%20una%20predicci%C3%B3n%20inversa%20personalizada%20para%20obtener%20el%20EC50.%20%C2%A1Estoy%20bastante%20seguro%20de%20que%20puedo%20hacer%20las%20dos%20segundas%20partes%20si%20pudiera%20obtener%20las%20estimaciones%20del%20par%C3%A1metro%20dang!%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EEsto%20es%20lo%20que%20tengo%20para%20el%20ajuste%20de%20la%20curva%3A%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3EFor%20(%20i%20%3D%201%2C%20i%20%26lt%3B%3D%20N%20items%20(Mice)%2C%20i%2B%2B%2C%20%0A%20%20FC%20%3D%20Fit%20Curve%20(%0A%20%20Y%20(%20%3AData%20)%2C%20%0A%20%20X%20(%3ADilution%20)%2C%20%0A%20%20Group%20(%3ATimepoint)%2C%0A%20%20By(%3AAnimal)%0A%20%20%0A%20%20Fit%20Probit%204P%2C%20%0A%20%20Where%20(%3AAnimal%20%3D%3D%20eval(Mouse_names%5Bi%5D))%2C%20%2F%2Fthist%20isn't%20referencing%20the%20variable%20the%20way%20i%20expect%20but%20using%20either%20eval(%20)%20or%20char(%20)%20seems%20to%20be%20a%20work-around%3F...%0A%20SendToReport(%0A%20%20Dispatch(%0A%20%20%20%7B%22Plot%22%7D%2C%0A%20%20%20%227%22%2C%0A%20%20%20ScaleBox%2C%0A%20%20%20%7BFormat(%20%22Fixed%20Dec%22%2C%2012%2C%200%20)%2C%20Min(%200%20)%2C%20Max(%204%20)%2C%20Inc(%202%20)%2C%0A%20%20%20Minor%20Ticks(%200%20)%7D%0A%20%20)%2C%0A%20%20Dispatch(%0A%20%20%20%7B%22Plot%22%7D%2C%0A%20%20%20%226%22%2C%0A%20%20%20ScaleBox%2C%0A%20%20%20%7BScale(%20%22Log%22%20)%2C%20Format(%20%22Scientific%22%2C%2012%20)%2C%20Min(%200.0000001%20)%2C%0A%20%20%20Max(%200.1%20)%2C%20Inc(%202%20)%2C%20Minor%20Ticks(%200%20)%7D%0A%20%20)%2C%0A%20%20Dispatch(%0A%20%20%20%7B%22Plot%22%7D%2C%0A%20%20%20%2213%22%2C%0A%20%20%20ScaleBox%2C%0A%20%20%20%7BFormat(%20%22Fixed%20Dec%22%2C%2012%2C%200%20)%2C%20Min(%200%20)%2C%20Max(%204%20)%2C%20Inc(%202%20)%2C%0A%20%20%20Minor%20Ticks(%200%20)%7D%0A%20%20)%2C%0A%20%20Dispatch(%0A%20%20%20%7B%22Plot%22%7D%2C%0A%20%20%20%2216%22%2C%0A%20%20%20ScaleBox%2C%0A%20%20%20%7BScale(%20%22Log%22%20)%2C%20Format(%20%22Scientific%22%2C%2012%20)%2C%20Min(%200.0000001%20)%2C%0A%20%20%20Max(%200.1%20)%2C%20Inc(%202%20)%2C%20Minor%20Ticks(%200%20)%7D%0A%20%20)%2C%0A%20%20Dispatch(%0A%20%20%20%7B%22Probit%204P%22%2C%20%22Plot%22%7D%2C%0A%20%20%20%227%22%2C%0A%20%20%20ScaleBox%2C%0A%20%20%20%7BFormat(%20%22Fixed%20Dec%22%2C%20Use%20thousands%20separator(%201%20)%2C%2012%2C%200%20)%2C%20Min(%200%20)%2C%0A%20%20%20Max(%204%20)%2C%20Inc(%202%20)%2C%20Minor%20Ticks(%200%20)%7D%0A%20%20)%2C%0A%20%20Dispatch(%0A%20%20%20%7B%22Probit%204P%22%2C%20%22Plot%22%7D%2C%0A%20%20%20%226%22%2C%0A%20%20%20ScaleBox%2C%0A%20%20%20%7BScale(%20%22Log%22%20)%2C%20Format(%20%22Scientific%22%2C%2012%20)%2C%20Min(%200.0000001%20)%2C%0A%20%20%20Max(%200.1%20)%2C%20Inc(%202%20)%2C%20Minor%20Ticks(%200%20)%7D%0A%20%20)%2C%0A%20%20Dispatch(%0A%20%20%20%7B%22Probit%204P%22%2C%20%22Plot%22%7D%2C%0A%20%20%20%2213%22%2C%0A%20%20%20ScaleBox%2C%0A%20%20%20%7BFormat(%20%22Fixed%20Dec%22%2C%20Use%20thousands%20separator(%201%20)%2C%2012%2C%200%20)%2C%20Min(%200%20)%2C%0A%20%20%20Max(%204%20)%2C%20Inc(%202%20)%2C%20Minor%20Ticks(%200%20)%7D%0A%20%20)%2C%0A%20%20Dispatch(%0A%20%20%20%7B%22Probit%204P%22%2C%20%22Plot%22%7D%2C%0A%20%20%20%2216%22%2C%0A%20%20%20ScaleBox%2C%0A%20%20%20%7BScale(%20%22Log%22%20)%2C%20Format(%20%22Scientific%22%2C%2012%20)%2C%20Min(%200.0000001%20)%2C%0A%20%20%20Max(%200.1%20)%2C%20Inc(%202%20)%2C%20Minor%20Ticks(%200%20)%7D%0A%20%20)%0A%20)%0A%20%0A%0A)%3B%0A%0A%0AFC%20%26lt%3B%26lt%3B%20journal%3B%0AFC%20%26lt%3B%26lt%3B%20close%20window%3B)%3B%0A%0A%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3EEso%20funciona%20bien%20para%20m%C3%AD%20y%20tengo%20la%20salida%20de%20una%20revista%20con%20cada%20curva%20de%20ajuste%20con%20la%20comparaci%C3%B3n%20del%20modelo%2C%20el%20gr%C3%A1fico%20de%20los%20datos%2C%20la%20informaci%C3%B3n%20del%20modelo%20(incluido%20el%20modelo%20de%20predicci%C3%B3n%2C%20el%20resumen%20del%20ajuste%2C%20las%20estimaciones%20de%20los%20par%C3%A1metros%20*%20~%20*%20*%20*%2C%20la%20correlaci%C3%B3n%20de%20las%20estimaciones).%20%2C%20covarianza%20de%20la%20estimaci%C3%B3n%2C%20y%20gr%C3%A1ficos%20de%20la%20curva%20modelada).%26nbsp%3B%20Puedo%20hacer%20clic%20con%20el%20bot%C3%B3n%20derecho%20manualmente%20en%20las%20estimaciones%20de%20los%20par%C3%A1metros%20y%20en%20%22Crear%20tabla%20de%20datos%20combinados%22%2C%20pero%20no%20s%C3%A9%20c%C3%B3mo%20hacerlo%20en%20un%20script.%26nbsp%3B%20Idealmente%2C%20solo%20tendr%C3%ADa%20una%20tabla%20de%20datos%20al%20final%20con%20columnas%20para%20Animal%2C%20Par%C3%A1metro%20(tasa%20de%20crecimiento%2C%20punto%20de%20inflexi%C3%B3n%2C%20as%C3%ADntota%20inferior%2C%20as%C3%ADntota%20superior)%20Grupo%20(estos%20son%20mis%20puntos%20de%20tiempo)%2C%20C%C3%A1lculo%2C%20Error%20est%C3%A1ndar%2C%2095%25%20inferior%2C%20Superior%2095%25.%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3ECualquier%20ayuda%20ser%C3%ADa%20muy%20apreciada!%20%C2%A1Gracias!%26nbsp%3B%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-69253%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3ERe%3A%20Extracci%C3%B3n%20de%20estimaciones%20de%20par%C3%A1metros%20de%20ajuste%20de%20curva%20no%20lineal%20(sigmoidal)%20-%20scripting%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-69253%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3EUtilizar%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3Ejrn%5B%22Correlation%20of%20Estimates%22%5D%5BMatrixBox(1)%5D%20%26lt%3B%26lt%3B%20Make%20Combined%20Data%20Table%3B%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3EVaya%20al%20Men%C3%BA%20principal%26gt%3B%20Ayuda%26gt%3B%20Libros%26gt%3B%20Gu%C3%ADa%20de%20secuencias%20de%20comandos%20de%20JMP%2C%20luego%20abra%20el%20PDF%20y%20despl%C3%A1cese%20hasta%20el%20Cap%C3%ADtulo%2011%2C%20Mostrar%20%C3%A1rboles.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EUn%20informe%20JMP%20es%20una%20lista%20de%20cuadros%20de%20visualizaci%C3%B3n%20anidados.%26nbsp%3B%20Esto%20le%20mostrar%C3%A1%20c%C3%B3mo%20encontrar%20objetos%20y%20enviar%20mensajes.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3Ejrn%20%26lt%3B%26lt%3B%20show%20tree%20structure%3B%0A%0A%2F%2For%20right%20click%20on%20a%20reveal%20button%20to%20the%20left%20of%20an%20outline%20box%0A%2F%2F%20then%20select%20Edit%2C%20Show%20Tree%20Structure%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-69246%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3ERe%3A%20Extracci%C3%B3n%20de%20estimaciones%20de%20par%C3%A1metros%20de%20ajuste%20de%20curva%20no%20lineal%20(sigmoidal)%20-%20scripting%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-69246%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3EMi%20experiencia%20en%20navegar%20por%20una%20ventana%20de%20informe%20es%20esencialmente%20cero.%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EBusqu%C3%A9%20en%20la%20gu%C3%ADa%20de%20scripts%20para%20la%20ventana%20de%20informe%20y%20no%20encontr%C3%A9%20mucho.%20%C2%BFAlg%C3%BAn%20recurso%20al%20que%20pudieras%20apuntarme%3F%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-69207%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3ERe%3A%20Extracci%C3%B3n%20de%20estimaciones%20de%20par%C3%A1metros%20de%20ajuste%20de%20curva%20no%20lineal%20(sigmoidal)%20-%20scripting%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-69207%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3E%C2%A1Incre%C3%ADble!%20%3CSPAN%3E%20Muchas%20gracias%20por%20la%20respuesta%2C%20%C2%A1definitivamente%20funciona%20para%20lo%20que%20necesito!%20Todav%C3%ADa%20estoy%20intentando%20averiguar%20qu%C3%A9%20sucede%20debajo%20de%20su%20c%C3%B3digo%20para%20poder%20usarlo%20en%20diferentes%20aplicaciones%20en%20el%20futuro.%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%C2%BFSe%20trata%20simplemente%20de%20indexar%20el%20diario%20por%20nombre%2C%20especificando%20que%20s%C3%AD%20quiero%20el%20cuadro%20de%20tabla%20y%20hacer%20una%20nueva%20tabla%20de%20datos%3F%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EHe%20visto%20otras%20respuestas%20como%26nbsp%3B%3C%2FP%3E%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3Edt2%20%3D%20bivRep%20%5B1%5D%20%5BTableBox(3)%5D%20%20%26lt%3B%26lt%3B%20Make%20Combined%20Data%20Table%3B%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%3CSPAN%3Epero%20no%20pod%C3%ADa%20entender%20lo%20que%20realmente%20estaba%20pasando.%20%C2%BFTomar%C3%ADa%20%C3%A9ste%20el%20tercer%20cuadro%20de%20la%20tabla%20que%20se%20encuentra%20en%20la%20primera%20secci%C3%B3n%20(%3F)%20De%20bivRep%20y%20escribe%20en%20un%20nuevo%20dt%3F%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%3CSPAN%3EEstoy%20explorando%20un%20poco%20pero%20m%C3%A1s%20y%20pude%20obtener%20el%20Resumen%20de%20ajuste%20con%3C%2FSPAN%3E%3C%2FP%3E%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3Ejrn%5B%22Summary%20of%20Fit%22%5D%5BTable%20Box%20(1)%5D%20%26lt%3B%26lt%3B%20Make%20Combined%20Data%20Table%3B%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%3CSPAN%3Epero%20no%20pudo%20descubrir%20c%C3%B3mo%20hacer%20algo%20como%20obtener%20la%20correlaci%C3%B3n%20de%20estimaciones%20para%20la%20semana%205.%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%3CSPAN%3ELo%20intent%C3%A9%3A%3C%2FSPAN%3E%3C%2FP%3E%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3Ecovar_pre%20%3D%20jrn%5B%22Covariance%20of%20Estimates%22%5D%5B%22Week%205%22%5D%5BTable%20Box(1)%5D%20%26lt%3B%26lt%3B%20Make%20Combined%20Table%3B%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%3CSPAN%3EY%20consigui%C3%B3%20el%20error%3A%3C%2FSPAN%3E%3C%2FP%3E%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3ECannot%20subscript%20Display%20Box%7B400%7D%20in%20access%20or%20evaluation%20of%20'Subscript'%20%2C%20jrn%5B%22Covariance%20of%20Estimates%22%5D%5B%22pre%22%5D%5B%2F*%23%23%23*%2FTable%20Box(%201%20)%5D%0A%0AIn%20the%20following%20script%2C%20error%20marked%20by%20%2F*%23%23%23*%2F%0AparamEst%20%3D%20jrn%5B%22Covariance%20of%20Estimates%22%5D%5B%22Week%205%22%5D%5B%2F*%23%23%23*%2FTable%20Box(%201%20)%5D%20%26lt%3B%26lt%3B%0AMake%20Combined%20Data%20Table%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%3CSPAN%3ESupongo%20que%20*%20esta%20*%20salida%20no%20es%20un%20cuadro%20de%20tabla%3F%20No%20estoy%20seguro%20de%20qu%C3%A9%20tipo%20de%20datos%20son%20y%20no%20estoy%20seguro%20de%20c%C3%B3mo%20resolverlos.%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-69144%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3ERe%3A%20Extracci%C3%B3n%20de%20estimaciones%20de%20par%C3%A1metros%20de%20ajuste%20de%20curva%20no%20lineal%20(sigmoidal)%20-%20scripting%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-69144%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3EHola%2C%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EUna%20vez%20que%20tenga%20un%20identificador%20de%20su%20diario%2C%20puede%20navegar%20por%20el%20diario%20como%20se%20muestra%20a%20continuaci%C3%B3n%20(similar%20a%20la%20publicaci%C3%B3n%20de%20%3CA%20href%3D%22https%3A%2F%2Fcommunity.jmp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F70%22%20target%3D%22_blank%22%3E%20%40%20gzmorgan0%20%3C%2FA%3E%20)%20para%20generar%20la%20tabla%20de%20datos%20de%20estimaciones%20de%20par%C3%A1metros%20combinadas.%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3Ejrn%20%3D%20Current%20Journal()%3B%0AparamEst%20%3D%26nbsp%3Bjrn%5B%22Parameter%20Estimates%22%5D%5BTable%20Box(%201%20)%5D%20%26lt%3B%26lt%3B%20Make%20Combined%20Data%20Table%3B%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%C2%A1Espero%20que%20esto%20sea%20%C3%BAtil!%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-69132%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3ERe%3A%20Extracci%C3%B3n%20de%20estimaciones%20de%20par%C3%A1metros%20de%20ajuste%20de%20curva%20no%20lineal%20(sigmoidal)%20-%20scripting%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-69132%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3EAqu%C3%AD%20hay%20un%20ejemplo%2C%20no%20exactamente%20su%20ejemplo%20espec%C3%ADfico%20(este%20ejemplo%20utiliza%20By).%20No%20conozco%20su%20experiencia%20en%20navegar%20por%20una%20ventana%20de%20informe.%3C%2FP%3E%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3ENames%20Default%20To%20Here(%201%20)%3B%0Adt%20%3D%20Open(%20%22%24SAMPLE_DATA%2FNonlinear%20Examples%2FBioassay.jmp%22%20)%3B%0Aobj%20%3D%20Fit%20Curve(%20Y(%20%3AToxicity%20)%2C%20X(%20%3Alog%20Conc%20)%2C%20By(%20%3Aformulation%20)%20)%3B%0Aobj%20%26lt%3B%26lt%3B%20Fit%20Logistic%204P(%20Custom%20Inverse%20Prediction(%20Response(%200.9%20)%20)%20)%3B%0A%0A%2F%2Fyou%20can%20get%20one%20table%20using%20Make%20Combined%20Data%20Table%0Aest_tbl%3D%20report(obj%5B1%5D)%5B%22Parameter%20Estimates%22%5D%5BTableBox(1)%5D%20%26lt%3B%26lt%3B%20Make%20Combined%20Data%20Table%3B%0Aest_tbl%20%26lt%3B%26lt%3B%20Set%20Name(%22Parameter%20Estimates%22)%3B%0A%0A%0Ainv_tbl%20%3D%20report(obj%5B1%5D)%5B%22Inverse%20Prediction%22%5D%5B%22Predicted%20Values%22%5D%5BTableBox(1)%5D%20%26lt%3B%26lt%3B%20Make%20Combined%20Data%20Table%3B%0Ainv_tbl%20%26lt%3B%26lt%3B%20Set%20Name(%22Inverse%20Prediction%22)%3B%0A%0A%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3EEspero%20que%20esto%20ayude.%3C%2FP%3E%3C%2FLINGO-BODY%3E
Choose Language Hide Translation Bar
lakepotter
Level II

Extracting parameter estimates from nonlinear (sigmoidal) curve fit - scripting

Hi all, 

 

To quickly orient you: I am working with ELISA data (dose-response curve) so my independent variable is dilution factor, my dependent variable is absorbance, and I have multiple time points I am looking at for multiple animals. I'd like to be able to find the EC50 - dilution at half maximal response - with a nonlinear, sigmoidal, curve fit. I am currently using a  4 parameter model (Probit 4P).

 

Basically, I'd like to write a script that can get the data from the parameter estimates into a table, find the midway point between the upper and lower asymptotes for each curve, and then use that value in a custom inverse prediction to get the EC50. I'm pretty sure I can do the second two parts if I could just get the dang parameter estimates! 

 

Here's what I have for the curve fitting:

 

For ( i = 1, i <= N items (Mice), i++, 
		FC = Fit Curve (
		Y ( :Data ), 
		X (:Dilution ), 
		Group (:Timepoint),
		By(:Animal)
		
		Fit Probit 4P, 
		Where (:Animal == eval(Mouse_names[i])), //thist isn't referencing the variable the way i expect but using either eval( ) or char( ) seems to be a work-around?...
	SendToReport(
		Dispatch(
			{"Plot"},
			"7",
			ScaleBox,
			{Format( "Fixed Dec", 12, 0 ), Min( 0 ), Max( 4 ), Inc( 2 ),
			Minor Ticks( 0 )}
		),
		Dispatch(
			{"Plot"},
			"6",
			ScaleBox,
			{Scale( "Log" ), Format( "Scientific", 12 ), Min( 0.0000001 ),
			Max( 0.1 ), Inc( 2 ), Minor Ticks( 0 )}
		),
		Dispatch(
			{"Plot"},
			"13",
			ScaleBox,
			{Format( "Fixed Dec", 12, 0 ), Min( 0 ), Max( 4 ), Inc( 2 ),
			Minor Ticks( 0 )}
		),
		Dispatch(
			{"Plot"},
			"16",
			ScaleBox,
			{Scale( "Log" ), Format( "Scientific", 12 ), Min( 0.0000001 ),
			Max( 0.1 ), Inc( 2 ), Minor Ticks( 0 )}
		),
		Dispatch(
			{"Probit 4P", "Plot"},
			"7",
			ScaleBox,
			{Format( "Fixed Dec", Use thousands separator( 1 ), 12, 0 ), Min( 0 ),
			Max( 4 ), Inc( 2 ), Minor Ticks( 0 )}
		),
		Dispatch(
			{"Probit 4P", "Plot"},
			"6",
			ScaleBox,
			{Scale( "Log" ), Format( "Scientific", 12 ), Min( 0.0000001 ),
			Max( 0.1 ), Inc( 2 ), Minor Ticks( 0 )}
		),
		Dispatch(
			{"Probit 4P", "Plot"},
			"13",
			ScaleBox,
			{Format( "Fixed Dec", Use thousands separator( 1 ), 12, 0 ), Min( 0 ),
			Max( 4 ), Inc( 2 ), Minor Ticks( 0 )}
		),
		Dispatch(
			{"Probit 4P", "Plot"},
			"16",
			ScaleBox,
			{Scale( "Log" ), Format( "Scientific", 12 ), Min( 0.0000001 ),
			Max( 0.1 ), Inc( 2 ), Minor Ticks( 0 )}
		)
	)
	

);


FC << journal;
FC << close window;);

That works fine for me and I have the output of a journal with each Fit Curve with the model comparison, plot of the data, model info (including prediction model, summary of fit, *~*parameter estimates*~*, correlation of estimates, covariance of estimate, and plots of the modeled curve).  I can manually right click on the parameter estimates and "Make Into Combined Data Table" but don't know how to do it in a script.  Ideally, i would only have one data table at the end with columns for Animal, Parameter (growth rate, inflection point, lower asymptote, upper asymptote) Group ( these are my time points), Estimate, Std Error, Lower 95%, Upper 95%. 

 

Any help would be greatly appreciated! Thanks!  

5 REPLIES 5
gzmorgan0
Super User (Alumni)

Re: Extracting parameter estimates from nonlinear (sigmoidal) curve fit - scripting

Here is an example, not exactly your specific example (this example uses By). I don't know your expertise in navigating a report window.

Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Nonlinear Examples/Bioassay.jmp" );
obj = Fit Curve( Y( :Toxicity ), X( :log Conc ), By( :formulation ) );
obj << Fit Logistic 4P( Custom Inverse Prediction( Response( 0.9 ) ) );

//you can get one table using Make Combined Data Table
est_tbl= report(obj[1])["Parameter Estimates"][TableBox(1)] << Make Combined Data Table;
est_tbl << Set Name("Parameter Estimates");


inv_tbl = report(obj[1])["Inverse Prediction"]["Predicted Values"][TableBox(1)] << Make Combined Data Table;
inv_tbl << Set Name("Inverse Prediction");

Hope this helps.

Re: Extracting parameter estimates from nonlinear (sigmoidal) curve fit - scripting

Hello,

 

Once you have a handle to your journal, you can navigate the journal as shown below (similar to the post by @gzmorgan0) to generate the data table of combined Parameter Estimates.

jrn = Current Journal();
paramEst = jrn["Parameter Estimates"][Table Box( 1 )] << Make Combined Data Table;

I hope this is helpful!

Wendy
lakepotter
Level II

Re: Extracting parameter estimates from nonlinear (sigmoidal) curve fit - scripting

Awesome! Thanks so much for the answer - it defintely works for exactly what I need it for!! I'm just still trying to figure out what's going on underneath your code so I can use it in different applications in the future. 

 

Is this just indexing the journal by name, specifing that I do want the table box and making a new data table? 

 

I had seen other responses like 

dt2 = bivRep [1] [TableBox(3)]  << Make Combined Data Table;

but couldn't figure out what was really going on. Would this one take the third table box found in the first section (?) of bivRep and write out to a new dt? 

 

 

 

 

I am exploring a little but more and was able to get the Summary of Fit with

jrn["Summary of Fit"][Table Box (1)] << Make Combined Data Table;

but couldn't figure out how to do something like get the Correlation of Estimates for Week 5. 

 

I tried:

covar_pre = jrn["Covariance of Estimates"]["Week 5"][Table Box(1)] << Make Combined Table;

And got the error:

Cannot subscript Display Box{400} in access or evaluation of 'Subscript' , jrn["Covariance of Estimates"]["pre"][/*###*/Table Box( 1 )]

In the following script, error marked by /*###*/
paramEst = jrn["Covariance of Estimates"]["Week 5"][/*###*/Table Box( 1 )] <<
Make Combined Data Table

I guess *this* output is not a table box? I am not sure what sort of data it is and am not sure how to figure it out. 

 

 

lakepotter
Level II

Re: Extracting parameter estimates from nonlinear (sigmoidal) curve fit - scripting

My experience in navigating a report window is essentially zero. 

 

I searched the scripting guide for report window and didn't find much. Any resources you could point me towards? 

gzmorgan0
Super User (Alumni)

Re: Extracting parameter estimates from nonlinear (sigmoidal) curve fit - scripting

Use

 

jrn["Correlation of Estimates"][MatrixBox(1)] << Make Combined Data Table;

Go to Main Menu> Help >Books > JMP Scripting Guide then open the PDF and scroll to Chapter 11, Display Trees.

 

A JMP report is a list of nested display boxes.  This will show you how to find objects and send messages.

 

jrn << show tree structure;

//or right click on a reveal button to the left of an outline box
// then select Edit, Show Tree Structure

 

 

Recommended Articles