缺少 Y 响应变量拟合模型比例风险我正在尝试进行一些生存分析,我将一些分析组合到一个脚本中。 所以我想做的是,他们将列输入生存平台,然后我将这些列用于比例风险平台。 除了 Y,响应,我的脚本工作得很好,它不会找到 Y 响应变量。 如果我改变Y( As Column( Ycolname ) ) 到 Y("Time to Failure") 之类的东西,效果很好。但是当我尝试使用该变量时,它不起作用。
</CODE></P><P>我有两个问题 - 为什么我的方法对 Censor 和 Xs 有效,但对 Ys 无效。</P><P>第二个问题,如果他们不输入 by 或 frequency 列,我如何告诉拟合模型没有要输入的列。 如果我使用 As Column(变量),它会说找不到我的列,这是正确的。</P><P> </P><P> </P><P> </P><PRE><CODE class=" language-jsl">Names Default To Here( 1 );
Clear Log();
dt = Current Data Table();
If( Not( Is Scriptable( dt ) ),
dtsel = Pick File( "Open File", {"JMP|jmp", "All files|*"} );
If( dtsel == "",
Stop(),
Try( dt = Open( dtsel ), Stop() )
);
);
dtname = Data Table( dt ) << Get Name;
validated = 0;
New Window( "Survival/Reliability",
<<MODAL></MODAL>
分析苹果系统脚本回复:缺少 Y 响应变量拟合模型比例风险感谢您的指导,您的帮助非常大!
我的问题是 - 如果在第一个屏幕上没有放入频率的列,
频率名称 =精氨酸(生存[ 4个], 1个);
这将返回为空。
因此,如果我尝试运行脚本:
平台 = dt <<拟合模型(
频率(柱子(频率名称)),
经过(柱子( 按名字 ) ),
Y(柱子( Ycolname ) ),
审查(柱子(审查名)),
影响(柱子( 效果名称 ) ),
性格( “比例风险” ),
审查代码( “1” ),
运行模型(似然比检验( 1个), 似然置信区间( 1个), 风险比率( 1个) )
)
它会说没有频率列,这是真的。
所以我所做的是放置 8 个嵌套的 if 循环来查看哪些列为空。
也许不是最好的方法,但它确实有效。
回复:缺少 Y 响应变量拟合模型比例风险我不确定我是否理解这个问题。 这是我尝试和看到的。
我首先修改 Rats.jmp 来模拟一个案例,这样我就可以测试你的代码:

我添加了一列 By 并将数据平均分为两组。
我将您的最后一段代码修改为以下内容。
if (isempty(byname),
Platform = dt << Fit Model(
// Freq(),
// By(),
Y( Column( Ycolname ) ),
Censor( Column( Censorname ) ),
Effects( Column( Effectname ) ),
Personality( "Proportional Hazard" ),
Censor Code( "1" ),
Run Model( Likelihood Ratio Tests( 1 ), Likelihood Confidence Intervals( 1 ), Risk Ratios( 1 ) )
),
Platform = dt << Fit Model(
// Freq(),
By( column(byname) ),
Y( Column( Ycolname ) ),
Censor( Column( Censorname ) ),
Effects( Column( Effectname ) ),
Personality( "Proportional Hazard" ),
Censor Code( "1" ),
Run Model( Likelihood Ratio Tests( 1 ), Likelihood Confidence Intervals( 1 ), Risk Ratios( 1 ) )
)
);
我尝试了两条路径来执行代码:
首先,运行代码并输入角色,如下所示:

没有“通过”。代码的行为与以前一样。
二、运行代码,输入角色如下:

使用“By”,最后我看到一条错误消息:

我猜中间结果是不同的,你的代码没有正确处理这种情况。
回复:缺少 Y 响应变量拟合模型比例风险你对我的第二个问题有什么建议吗?
如果他们不输入依据或频率列,我如何告诉拟合模型没有要输入的列。 如果我使用列(变量),它会说找不到我的列,这是正确的。
回复:缺少 Y 响应变量拟合模型比例风险我知道我试过这个但它对我不起作用,但是当我粘贴你的代码时它工作得很好。 我不知道为什么,但它很有效,谢谢!
回复:缺少 Y 响应变量拟合模型比例风险如果我将 As Column 更改为 Column,我将无法重现该问题。 这是我运行的完整代码。 我只是将最后三个 As Column 更改为 Column。
Names Default To Here( 1 );
Clear Log();
dt = Current Data Table();
If( Not( Is Scriptable( dt ) ),
dtsel = Pick File( "Open File", {"JMP|jmp", "All files|*"} );
If( dtsel == "",
Stop(),
Try( dt = Open( dtsel ), Stop() )
);
);
dtname = Data Table( dt ) << Get Name;
validated = 0;
New Window( "Survival/Reliability",
<<MODAL></MODAL>
这是我的步骤和我所看到的。 我检查了 JMP14、JMP15 和 JMP16。 由于您的代码如何使用新的名称文字,我相信您的版本不会更晚。
- 打开 Rats.jmp
- 运行脚本
- 弹出对话框时指定对话框,然后单击确定

- 一些报告出现。 这是 Fit Model 启动对话框,如下所示:

如果你看不到我在这里看到的东西,我只能怀疑我们都不知道有什么东西。 如果是这样,您可能需要联系支持@jmp.com得到一些帮助。
回复:缺少 Y 响应变量拟合模型比例风险我知道,如果我将 Eval(PH) 移到底部,我会得到同样的结果,但拟合模型没有出现,这就是为什么我将它移到原来的位置。 我对 Rats 也有同样的错误,但我的文件没有这个错误,不知道为什么。 如果我取出表达式并让它像这样运行,那么错误就会消失,我会遇到和以前一样的问题,没有 Expr(PH) 粘贴在屏幕截图下方,其他列通过,但不是 Y . 这个脚本是正确的,也是我最近的。 如果您有任何想法,请告诉我! 这让我非常沮丧,我不知道为什么!

Names Default To Here( 1 );
Clear Log();
dt = Current Data Table();
If( Not( Is Scriptable( dt ) ),
dtsel = Pick File( "Open File", {"JMP|jmp", "All files|*"} );
If( dtsel == "",
Stop(),
Try( dt = Open( dtsel ), Stop() )
);
);
dtname = Data Table( dt ) << Get Name;
validated = 0;
New Window( "Survival/Reliability",
<<MODAL></MODAL>回复:缺少 Y 响应变量拟合模型比例风险请您仔细检查您的脚本好吗? 我不知道如何进入您在此处显示的对话框。
我收到一条错误消息:

如果我将 Eval(PH) 移动到脚本底部,并将 As Column 更改为 Column,那么我根本看不到 Fit Model 对话框。
顺便说一句,我使用 Rats.jmp 进行测试。 “days”到 Y,“Censor”到 Censor,“Group”到 Grouping。
回复:缺少 Y 响应变量拟合模型比例风险Column 和 As Column 的作用一样,填入除了 Y 以外的信息:

回复:缺少 Y 响应变量拟合模型比例风险如果你使用 Column 而不是 As Column,你会得到你想要的吗? 我实际上没有看到在什么情况下,必须使用 As Column,而不是 Column。 也许,我的一位对此功能有更多了解的同事可以发表评论。