你好,
我有 100 个未知数要从线性拟合中计算出来。 我按照此处显示的“逆预测”说明进行操作:
https://www.jmp.com/support/help/14/inverse-prediction-2.shtml#149268
效果很好,但是使用这种方法,我一次只能(手动)输入 8 个未知数。 有没有其他方法可以做到这一点(就像在 Prism 中一样)? 或者有没有脚本可以做到? 棱镜法: https://www.graphpad.com/support/faq/prism-3-calculating-unknown-concentrations-using-a-standard-curve/
谢谢!
梅根
只是想重申这个脚本有多棒。 作为 JMP 的新用户,我非常感谢您的努力。
该脚本将分别对每个芯片 ID 执行逆向预测。
Names Default to Here( 1 );
dt = Current Data Table();
Column( 2 ) << Data Type( "Numeric" ) << Modeling Type( "Continuous" );
Column( 3 ) << Data Type( "Numeric" ) << Modeling Type( "Continuous" );
dt << New Column( "Lower 95%", "Numeric", "Continuous" )
<< New Column( "Upper 95%", "Numeric", "Continuous" );
Summarize( chip = By( :Chip ID ) );
n groups = N Items( chip );
For( c = 1, c <= n groups, c++,
data = dt << Get Rows Where( :Chip ID == chip[c] );
dt << Select Where( :Chip ID != chip[c] ) << Exclude;
fls = dt << Fit Model(
Y( :Median Electrode ),
Effects( :Name( "gDNA pg/uL" ) ),
Personality( "Standard Least Squares" ),
Emphasis( "Minimal Report" ),
Run
);
unknown = :Median Electrode[data[3]::data[N Row(data)-2]];
Eval(
Substitute(
Expr(
fls << Inverse Prediction(
Term Value( Name( "gDNA pg/uL" )(.) ),
Response( rrr )
)
),
Expr( rrr ),
unknown
)
);
inv pred report = Report( fls )["Inverse Prediction"];
inv pred = inv pred report[NumberColBox(2)] << Get As Matrix;
lower = inv pred report[NumberColBox(3)] << Get As Matrix;
upper = inv pred report[NumberColBox(4)] << Get As Matrix;
fls << Close Window;
For( i = 1, i < N Row( data ) - 3, i++,
Column( 2 )[data[i+2]] = inv pred[i];
Column( 4 )[data[i+2]] = lower[i];
Column( 5 )[data[i+2]] = upper[i];
);
dt << Exclude << Clear Select;
);
注意:除非您删除最后的空行,否则它将失败。 其中一个标准缺少已知浓度的值 10。
嗨,马克,
我已将一些示例数据附加到此注释中——标准和未知数在同一个数据表中。
在此示例中,我有一条标准曲线,其中有两个点 10 和 150 重复。 我想插入我留空的未知数 [此处为 gDNA pg/uL]。
梅根
我认为脚本将提供最佳解决方案。 标准品和未知物是在同一个数据表中还是在不同的数据表中? 更好的是,您能否提供一个包含标准和未知数的典型数据集的示例?