안녕하세요 커뮤니티,
주효과와 상호작용이 포함된 모델을 동적으로 생성하는 스크립트를 만들려고 합니다.
예를 들어, 다음과 같이 정의된 효과 열의 하위 집합이 있을 수 있습니다.
all_cols = Current Data Table () << Get Column Names(String);
effect_cols = all_cols[3::8];
그런 다음 effect_cols를 줄이는 일련의 모델을 구축합니다.
이어서 상호작용 조건을 고려한다. 그러나 상호 작용 용어에 대한 열 이름 또는 열 참조 목록을 작성하는 데 문제가 있습니다.
나는 다음과 같은 것을 시도했습니다 :
if(length(effect_cols) > 1,
interaction_effects = {};
for(i = 1, i < length(effect_cols), i++,
for(j=i+1,j<= length(effect_cols), j ++,
inter_tmp = effect_cols[i] || "*" || effect_cols[j];
interaction_effects = insert(interaction_effects,inter_tmp);
)
)
);다음을 사용하여 모델로 구축합니다.
Fit Model(
Y( :"Result"n ),
Effects(
concat(effect_cols,interaction_effects),
Personality( "Standard Least Squares" ),
Emphasis( "Effect Screening" ),
Run( ),
)
그러나 이로 인해 지속적으로 오류가 발생하고 구문 분석() 및 eval()을 사용하려는 다른 시도가 작동하지 않습니다.
어떤 도움이라도 대단히 감사하겠습니다.
감사합니다
안녕 @mkiesz ,
단계별 플랫폼을 스크립트로 작성하려고 했나요? 모델 선택 기준 중 일부가 내장되어 있을 수 있습니다.
내가 올바르게 기억한다면 나는 이와 같은 것을 시도했습니다.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Tiretread.jmp");
effect_cols = {"SILICA", "HARDNESS", "SILANE", "SULFUR"};
terms = {};
For Each({first_term, idx}, effect_cols[1::N Items(effect_cols) - 1],
For Each({second_term}, effect_cols[idx+1::N Items(effect_cols)],
cur_interaction = Substitute(Expr(_firstterm_*_secondterm_),
Expr(_firstterm_), NameExpr(AsColumn(first_term)),
Expr(_secondterm_), NameExpr(AsColumn(second_term))
);
Insert Into(terms, Name Expr(cur_interaction));
);
);
fitm = dt << Fit Model(
Y(:ABRASION),
Effects(Eval(terms)),
Personality("Standard Least Squares"),
Emphasis("Effect Screening")
);
