스플라인 맞춤의 잔차를 저장하는 스크립트안녕하세요,
스플라인 적합을 위한 새 열로 sava 잔차(또는 예측)에 스크립트를 작성하는 방법을 아는 사람이 있습니까? 수동으로 수행하는 경우 쉽습니다. 드롭다운 빨간색 삼각형에서 Residuals 저장을 선택하면 됩니다. Fit Model을 사용하여 라이너 피팅을 위한 새 열로 잔차를 저장하는 스크립트를 작성하는 방법을 알고 있습니다. 그러나 표준화된 x 스플라인 피팅을 사용하여 시간 추세 데이터를 피팅해야 하는 경우가 종종 있는데 그렇게 하는 더 쉬운 방법이 있는지 잘 모르겠습니다. 나의 최종 목표는 루프의 여러 변수에 대한 잔차 또는 예측을 얻는 것이므로 간단한 스크립트가 많은 도움이 될 것입니다.
감사해요!!

Re: 스플라인 맞춤의 잔차를 저장하는 스크립트안녕하세요 짐
v14에서 잔여물을 저장할 수 있도록 해결 방법/수정 사항이 있나요?
도와 주셔서 감사합니다
답: 스플라인 맞춤의 잔차를 저장하는 스크립트펭,
예, 이것은 일관성이 없는 것 같습니다. 그러나 예측을 비교하기 위해 의도적으로 수행된 것 같습니다(예를 들어 남성은 여성을 기반으로 한 예측에 대한 홀드아웃 세트이고 그 반대도 마찬가지입니다.)
그룹화 기준 모델을 기반으로 예측의 단일 열을 만들려면 수식을 사용하여 새 열을 만들거나 각 값 표현식을 설정하세요.
If( :sex=="M", 남성 예측 열, :sex=="F", 남성 예측 열);
잔여 열처럼 보이는 열을 원하면 남성에 대한 열을 만들고 다음과 같은 표현식을 사용하십시오.
If( :sex=="M", 남성 예측 열, 비어 있음() );
그런 다음 암컷에게도 똑같이하십시오.
Re: 스플라인 맞춤의 잔차를 저장하는 스크립트멋지다, 이거 굉장해!!
질문 하나 더:
내가 할 때 객체<SPAN class="token operator"> <</SPAN><SPAN class="token operator"> <</SPAN><SPAN class="token punctuation"> (</SPAN> 곡선<SPAN class="token punctuation"> [</SPAN> 나<SPAN class="token punctuation"> ]</SPAN><SPAN class="token operator"> <</SPAN><SPAN class="token operator"> <</SPAN><SPAN class="token messages"> 잔차 저장</SPAN><SPAN class="token punctuation"> )</SPAN> JMP는 "M"과 "F"에 대한 잔차를 계산하여(:sex) 기준으로 그룹화하고 일부 빈 셀이 있는 다른 열에 저장했습니다. 그렇기 때문에 한 열의 모든 잔차를 얻으려면 "전치"가 필요합니다. 그러나 <<예측 항목을 저장하고 (:sex)별로 그룹화하면 실제로 "M"과 "F" 모두에 대한 모든 높이에 대한 예측 항목이 계산됩니다. 드롭에서 수동으로 수행하더라도 기본적으로 JMP는 그렇게 합니다. 개별 성별에 대해서만 예측을 선언하는 방법이 있습니까?
감사해요
Re: 스플라인 맞춤의 잔차를 저장하는 스크립트저는 새로운 JMP 13 테이블 하위 집합 참조를 정말 좋아합니다. 그러나 Get as Matrix 메시지를 사용하여 값을 얻는 쉬운 방법이 여전히 있습니다. 주요 구문은 dt << get as 행렬( list | index )입니다.행별 최대값 함수는 없지만 열별 최대값인 VMax 함수가 있습니다.JMP 12에서 이것을 테스트했습니다.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj = Bivariate(
Y( :Weight ),
X( :Height ), GroupBy( :sex),
Fit Spline( 0.1, Standardized )
);
//Find how many in a group. We know it is 2 for Big Class
summarize(_by = By(:sex));
//Find out how many columns before adding residuals
ncpre = ncol(dt);
_nby = nitems(_by);
for(i=1, i<=_nby, i++,
obj << (Curve[i] << Save Residuals);
wait(0);
);
idx = ncpre+1::(ncpre+_nby);
cmat = Transpose(VMax(Transpose(dt << get as matrix(idx)))); //matrix _nby x nrow(dt)
/*the previous line of code is performing these tasks
- get the columns of residuals into a matrix of size nrow(dt) x _nby
- create the transpose: coloumns are rows and rows are columns, size _nby x nrow(dt)
- Vmax is a vertical maximum, it finds the max of each column (previously rows)
returns a 1 x nrow(dt) vector, a row vector
- transpose again so it is a column vector
*/
//create a single column of residuals
resids = dt << New Column("Weight v Height Spline Residuals",
Numeric, Continuous, Values( cmat )
);
답: 스플라인 맞춤의 잔차를 저장하는 스크립트솔루션을 제공해 주셔서 감사합니다 !! 그만큼 데이터 테이블의 여러 하위 섹션에 대한 구문은 JMP12에서 작동하지 않습니다. 여러 행의 최대 값을 반환하는 것에 대한 또 다른 토론을 읽었으며 비슷한 방법이 JMP13에도 적용되었습니다. JMP12의 여러 행에서 최대값을 얻는 더 좋은 방법이 있습니까? 알 수 없는 행 수에 대한 행 값을 비교하는 수식을 작성하는 것은 효율적이지 않은 것 같습니다. 감사해요!
답: 스플라인 맞춤의 잔차를 저장하는 스크립트짐,
JMP 14에서도 동일한 문제가 발견되었습니다. JMP 지원에서는 이 문제가 JMP 14.1(8월?)에서 수정되었다고 명시하고 있습니다.
다음은 Jim의 스크립트를 약간 수정한 것입니다. 단일 잔차 열을 생성합니다. 데이터 테이블의 여러 하위 섹션에 대해 새로운(JMP 13의) 구문을 사용합니다. 이는 행별로 잔여 열을 가져오고 최대값을 찾는 것입니다(실제로 비어 있지 않은 유일한 값을 가져옵니다).
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj = Bivariate(
Y( :Weight ),
X( :Height ), GroupBy( :sex),
Fit Spline( 0.1, Standardized )
);
//Find how many in a group. We know it is 2 for Big Class
summarize(_by = By(:sex));
//Find out how many columns before adding residuals
ncpre = ncol(dt);
_nby = nitems(_by);
for(i=1, i<=_nby, i++,
obj << (Curve[i] << Save Residuals);
wait(0);
);
idx = ncpre+1::(ncpre+_nby);
//create a single column of residuals
resids = dt << New Column("Weight v Height Spline Residuals",
Numeric, Continuous,
<< Set Each Value( max(dt[row(),idx]) )
);
답: 스플라인 맞춤의 잔차를 저장하는 스크립트지정된 각각의 개별 "맞춤"에는 잔차가 별도로 저장되어야 합니다."Curve[]" 참조의 하위 스트립이 이를 처리합니다.아래 예에는 여성에 대한 맞춤인 "F"와 남성에 대한 맞춤인 "M"을 생성하는 GroupBy(:Sex)가 있습니다.따라서 2개의 "Save Residuals"가 발행되어야 합니다.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj = Bivariate(
Y( :Weight ),
X( :Height ),
GroupBy( :sex),
Fit Spline( 0.1, Standardized )
);
obj << (Curve[1] << Save Residuals);
obj << (Curve[2] << Save Residuals);
귀하의 예를 위해 이 코드를 테스트하고 있었습니다.JMP 14가 스플라인 피팅에 대한 잔차 저장에 작동하지 않는다는 것을 발견했습니다.이 문제는 JMP 지원팀에 버그로 전달하겠습니다.
답: 스플라인 맞춤의 잔차를 저장하는 스크립트고마워요 짐! 효과가있다. 이변량에 "GroupBy"를 추가해야 하는 경우 모든 잔차를 저장할 수 있습니까? JMP는 마지막 적합선만 유지하는 것 같습니다. 감사해요!
<SPAN class="token function">Names Default To Here</SPAN><SPAN class="token punctuation">(</SPAN> <SPAN class="token number">1</SPAN> <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
dt <SPAN class="token operator">=</SPAN> <SPAN class="token function">Open</SPAN><SPAN class="token punctuation">(</SPAN> <SPAN class="token string">"$SAMPLE_DATA/Big Class.jmp"</SPAN> <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
obj <SPAN class="token operator">=</SPAN> Bivariate<SPAN class="token punctuation">(</SPAN>
Y<SPAN class="token punctuation">(</SPAN> <SPAN class="token punctuation">:</SPAN>Weight <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
X<SPAN class="token punctuation">(</SPAN> <SPAN class="token punctuation">:</SPAN>Height <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,<BR /></SPAN> GroupBy( :Team),
Fit Spline<SPAN class="token punctuation">(</SPAN> 0.1, Standardized <SPAN class="token punctuation">)</SPAN>
<SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
obj <SPAN class="token operator"><</SPAN><SPAN class="token operator"><</SPAN> <SPAN class="token punctuation">(</SPAN>Curve<SPAN class="token punctuation">[</SPAN><SPAN class="token number">1</SPAN><SPAN class="token punctuation">]</SPAN> <SPAN class="token operator"><</SPAN><SPAN class="token operator"><</SPAN><SPAN class="token messages"> Save Residuals</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
답: 스플라인 맞춤의 잔차를 저장하는 스크립트스크립팅 색인에서 이러한 유형의 구문을 찾을 수 있습니다.
도움말==>스크립팅 인덱스==>이변량==>이변량 곡선
다음은 해당 항목의 스크립팅 인덱스 예입니다.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj = Bivariate(
Y( :Weight ),
X( :Height ),
Fit Polynomial( 3 )
);
obj << (Curve[1] << Save Residuals);