Liste d'entrées utilisateur pour le rapport de régression avec interactionsJ'ai une zone de saisie où les utilisateurs peuvent sélectionner les colonnes à exécuter dans un rapport de régression. Cette partie fonctionne très bien. J'insère ensuite la liste des colonnes dans une liste. Je voudrais prendre la liste des colonnes et faire différentes interactions qui peuvent être insérées dans un rapport de régression. Plus précisément, je suis intéressé par des interactions légèrement plus compliquées (c'est-à-dire Colonne 1 * Colonne 2 ^2) Lorsque j'essaie de mettre autre chose que la liste générique dans le rapport de régression, le rapport n'est pas exécuté. Que dois-je faire pour créer ces interactions dans le rapport ?
La lecture de la liste d'entrée utilisateur ressemble à ceci : {"Column 1", "Column 2", "Column 3"}
plate-forme = dt << Ajuster le modèle (
Y( :Car(variable)),
Effets(
Qu'est-ce qui devrait aller ici ?????
),
Personnalité( "Régression Généralisée" ),
Distribution généralisée( "Normal" ),
Courir(
Ajustement (Méthode d'estimation (Sélection avant en deux étapes), Méthode de validation (AICc), Appliquer l'hérédité)
)
);
BICHEScriptRe : Liste d'entrées utilisateur pour le rapport de régression avec interactionsL'index de script a un exemple pour les effets - copié ci-dessous.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Dogs.jmp" );
obj = Fit Model(
Y( :LogHist0, :LogHist1, :LogHist3, :LogHist5 ),
Effects( :drug, :dep1, :drug * :dep1 ),
Personality( Manova ),
Run( Response Function( Sum ) )
);
Re : Liste d'entrées utilisateur pour le rapport de régression avec interactionsVoici une façon de gérer cela
names default to here(1);
dt=data table("big class");
variable = "Age";
// If you build your list as expressions the code below works
effectsList = {height, weight, weight * height};
Fit Model(
Y( :char(variable) ),
Effects( eval(effectsList) ),
Personality( "Standard Least Squares" ),
Emphasis( "Effect Leverage" ),
Run(
:char(variable) << {Summary of Fit( 1 ), Analysis of Variance( 1 ),
Parameter Estimates( 1 ), Scaled Estimates( 0 ),
Plot Actual by Predicted( 1 ), Plot Regression( 0 ),
Plot Residual by Predicted( 1 ), Plot Studentized Residuals( 0 ),
Plot Effect Leverage( 1 ), Plot Residual by Normal Quantiles( 0 ),
Box Cox Y Transformation( 0 )}
)
);
/*
// If you build your list using strings
effectsList = {"height", "weight", "weight * height"};
// You can convert the elements back to expressions by
// using the Parse() function
For( i = 1, i <= N Items( effectsList ), i++,
effectsList[i] = Parse( effectsList[i] );
);Re : Liste d'entrées utilisateur pour le rapport de régression avec interactionsVoici une autre façon d'utiliser des expressions. Il existe d'autres solutions basées sur des expressions que cet exemple.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Dogs.jmp" );
predictor = { :drug, :dep1 };
n = N Items( predictor );
effectExpr = Expr( Effects() );
For( x1 = 1, x1 < n, x1++,
Insert Into( effectExpr, predictor[x1] );
For( x2 = 2, x2 <= n, x2++,
Eval(
Substitute(
Expr( Insert Into( effectExpr, Expr( xxx1 * xxx2 ) ) ),
Expr( xxx1 ), predictor[x1],
Expr( xxx2 ), predictor[x2]
)
)
);
);
Show( Name Expr( effectExpr) );
Eval(
Substitute(
Expr(
obj = dt << Fit Model(
Y( :LogHist0, :LogHist1, :LogHist3, :LogHist5 ),
eee,
Personality( Manova ),
Run( Response Function( Sum ) )
);
),
Expr( eee ), Name Expr( effectExpr )
)
);