비선형 모델 피팅을 실행할 때 다른 범주에 대한 예측 공식을 저장하는 방법비선형 모델에 대한 사용자 정의 공식에 맞는 스크립트가 있습니다. (Nonlib에서는 사용할 수 없음) 모델 매개변수에 대한 추정값을 가져옵니다. 빨간색 삼각형 메뉴에서 수식을 저장하고 예측 수식 저장을 선택하면 새 결과에 대한 새 열이 생성됩니다. 모든 범주에 대해 이 작업을 수행할 수 있습니다.
New Column( "Fitted Model By Sample",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Property( "By ID", 207957763 ),
Formula(
If( :Sample == "Barley 2710",
If( :Days > 0,
0.171070850115799 * Exp( -Exp( ((0.00826868962267886 * Exp()) / 0.171070850115799) * (8.5626914275992 - :Days) ) )
+0.189197655815188 * Exp( -Exp( ((0.0822175769423173 * Exp()) / 0.189197655815188) * (1.00952608535815 - :Days) ) ),
0
),
.
)
),
Set Property( "Predicting", {:Average, Creator( "Nonlinear" )} ),
Set Selected
);
Set Label Columns( :Label );
그러나 수동으로 수행할 필요가 없도록 데이터 테이블의 모든 범주에 대해 실행하도록 하려고 합니다. 이 작업을 수행하는 방법에 대한 제안 사항이 있습니까?
새 수식을 게시하려고 했지만 다음과 같이 수동으로 수행할 때처럼 열이 생성되지 않습니다.
obj = Nonlinear( Y( :Average ), X( :Model ), Loss( :Err ), Iteration Limit( 5000 ), By( :Sample ) );
obj << go;
obj << Publish prediction formula;
obj << Set name( "Fitted Model by sample" );
나는 또한 아래와 같이 JSL 기록 스크립트를 수정하려고 시도했지만 불행히도 공식이 작동하지 않습니다. 도움을 주시면 감사하겠습니다.
obj = Nonlinear( Y( :Average ), X( :Model ), Loss( :Err ), Iteration Limit( 5000 ), By( :Sample ) );
obj << go;
//returns a list of vectors where each vector, contains the parameters estimates
obj << get estimates;
obj << get prediction formula;
col11 = New Column( "Fitted Model By Sample",
set formula(
If( :Days > 0,
(Y1_Y1_0 * Exp( -Exp( ((K1_K1_0 * Exp()) / Y1_Y1_0) * (P1_P1_0 - :Days) ) ) + Y2_Y2_0 * Exp(
-Exp( ((K2_K2_0 * Exp()) / Y2_Y2_0) * (P2_P2_0 - :Days) )
)),
0
),
By( :Sample ),
Set Property( "Predicting", {:Average, Creator( "Nonlinear" )} ),
Set Selected
),
Set Label Columns( :Label )
);
Re: 비선형 모델 피팅을 실행할 때 다른 범주에 대한 예측 공식을 저장하는 방법대박! 커뮤니티에서 이 솔루션을 놓쳤다고 믿을 수 있습니다. 나는 모든 종류의 예를 검색했습니다. 필요한 것은 "저장"뿐이었습니다.
정말 감사합니다 필!
Re: 비선형 모델 피팅을 실행할 때 다른 범주에 대한 예측 공식을 저장하는 방법솔루션은 다음과 같습니다. @txnelson 안에 이 게시물 돕다? ("예측 공식을 테이블에 다시 저장")
Names Default To Here( 1 );
dt = Open(
"$SAMPLE_DATA/Nonlinear Examples/Bioassay.jmp"
);
obj = Fit Curve(
Y( :Toxicity ),
X( :log Conc ),
Group( :formulation ),
Fit Logistic 4P
);
obj << (Fit[1] << Save Prediction Formula);
이것은 예측 수식을 게시하는 대신 예측 수식 저장 명령을 사용합니다. 나는 이것이 당신이하고 싶은 일이며 Pro가 필요하지 않다고 생각합니다.
각 그룹에 대한 모델이 포함된 결과 예측 수식 열을 효과적으로 제공합니다.
Match( :Formulation,
"standard",
0.599015186864584 + (1.10686367677145 - 0.599015186864584) / (1
+Exp( -5.84379312234502 * (:log Conc - 0.32019959502239) )),
"test A",
0.590902329849433 + (1.1012080930316 - 0.590902329849433) / (1
+Exp( -5.98069280093278 * (:log Conc - 0.284551221955609) )),
"test B",
0.592984828033858 + (1.0972015134296 - 0.592984828033858) / (1
+Exp( -5.75586785289505 * (:log Conc - 0.084429442746212) )),
"test C",
0.593403681513877 + (1.10597929999838 - 0.593403681513877) / (1
+Exp( -6.00992746207644 * (:log Conc - 0.298749145989595) )),
.
)
Re: 비선형 모델 피팅을 실행할 때 다른 범주에 대한 예측 공식을 저장하는 방법안녕하세요 필,
피드백에 다시 한 번 감사드립니다.
이 답변에 대해 조금 더 설명하려고 합니다.
예, 제 질문은 모델 피팅을 자동화하고 각 그룹에 대한 결과 예측 공식으로 열을 생성하는 방법에 관한 것입니다. 만들고 싶은 단 하나의 칼럼입니다. 모델 공식은 이미 각 그룹에 대해 하나의 열에 있으며 추정된 새 매개변수를 사용하여 이를 복제하고 싶습니다.
이렇게 하는 아이디어는 각 그룹에 대한 결과를 개별적으로 보고할 수 있을 뿐만 아니라 그래프 빌더를 통해 모델 곡선과 실험 데이터를 그래픽으로 다르게 표현할 수 있다는 것입니다.
이것이 더 명확하기를 바랍니다.
그럼에도 불구하고 이 작업을 수행하려면 Jump Pro가 필요한 것 같습니다.
감사
이보
Re: 비선형 모델 피팅을 실행할 때 다른 범주에 대한 예측 공식을 저장하는 방법피드백에 감사드립니다.
나는 스크립트를 시도했고 당신이 옳습니다. 표준 JMP 만 있기 때문에 작동하지 않습니다 ... 슬프게도.
Re: 비선형 모델 피팅을 실행할 때 다른 범주에 대한 예측 공식을 저장하는 방법예측 공식 게시는 JMP Pro의 공식 저장소에 게시하는 기능과 관련이 있습니다. 표준 JMP를 사용하는 경우 이것이 작동할 것으로 기대하지 않습니다. 스크립팅 인덱스에서 예제 스크립트를 사용하여 확인할 수 있습니다.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Boston Housing.jmp" );
obj = K Nearest Neighbors(
Y( :mvalue ),
X(
:crim,
:zn,
:indus,
:chas,
:nox,
:rooms,
:age,
:distance,
:radial,
:tax,
:pt,
:b,
:lstat
),
K( 10 )
);
obj << (Response[1] << Publish Prediction Formula);
(BTW, 이것은 JSL 삽입 옵션에 대해 내가 말한 것입니다. 훨씬 더 명확하지 않습니까?)
효과가 있나요? Formula Depot를 불러와야 합니다. 다시 말하지만 JMP Pro를 사용하는 경우에만 작동할 것으로 기대합니다.
Re: 비선형 모델 피팅을 실행할 때 다른 범주에 대한 예측 공식을 저장하는 방법안녕,
사람들이 당신의 문제를 해결하는 데 도움이 되는 몇 가지 팁입니다.
우선 스크립팅 질문을 게시할 때 JSL 옵션을 사용할 수 있다면 도움이 될 것입니다. 게시 창 위의 도구 모음에서 을 클릭하고 거기에 JSL을 추가하기만 하면 됩니다. 사람들이 JSL을 이해하고 도움을 주기에 훨씬 더 명확합니다.
둘째, 여기에는 복잡한 비선형 모델 피팅이 있지만 귀하의 질문은 실제로 모델 피팅을 자동화하고 각 그룹에 대한 예측 공식 열을 생성하는 방법에 관한 것입니다. 해결하려는 문제의 특정 부분을 보여주는 더 간단한 예를 제공하면 사람들이 더 쉽게 도울 수 있습니다. 또한 다른 커뮤니티 구성원이 이것이 문제에 대한 해결책을 제공하는지 이해하기 쉽게 만들 것입니다. 고전적인 Big Class 샘플 데이터 세트를 사용하는 예는 항상 좋습니다. 귀하의 경우 Big Class의 각 섹스 그룹에 대한 간단한 모델을 맞추는 것이 귀하의 도전을 입증하기에 충분할 수 있다고 생각합니다. 아니면 그보다 더 복잡할 수도 있습니다. 알려주신 정보가 좀 애매해서 잘 모르겠습니다.
마지막으로, 궁극적으로 달성하고자 하는 것에 대해 약간 설명할 수 있다면 도움이 될 것입니다. 각 그룹에 대한 공식 열을 생성하려는 이유는 무엇입니까? 목표를 달성하는 더 나은 다른 방법이 있을 수 있습니다.
이 단계를 따르면 게시하는 쿼리에 대해 더 많은 도움을 받을 수 있을 것이라고 생각합니다.
문안 인사,
필