Benutzereingabeliste für Regressionsbericht mit InteraktionenIch habe ein Eingabefeld, in dem Benutzer Spalten auswählen können, die in einem Regressionsbericht ausgeführt werden sollen. Dieses Teil funktioniert super. Ich füge dann die Liste der Spalten in eine Liste ein. Ich möchte die Liste der Spalten nehmen und verschiedene Interaktionen vornehmen, die in einen Regressionsbericht eingefügt werden können. Insbesondere interessiere ich mich für etwas kompliziertere Interaktionen (zB Spalte 1 * Spalte 2 ^2) Wenn ich versuche, etwas anderes als nur die generische Liste in den Regressionsbericht einzufügen, wird der Bericht nicht ausgeführt. Was muss ich tun, um diese Interaktionen im Bericht zu erstellen?
Die Anzeige der Benutzereingabeliste sieht wie folgt aus: {"Spalte 1", "Spalte 2", "Spalte 3"}
Plattform = dt << Modell anpassen (
Y( :Char(variabel)),
Auswirkungen(
Was soll hier sein????
),
Persönlichkeit( "Generalisierte Regression" ),
Verallgemeinerte Verteilung( "Normal" ),
Lauf(
Fit (Schätzmethode (zweistufige Vorwärtsauswahl), Validierungsmethode (AICc), Vererbung erzwingen)
)
);
DAMHIRSCHKUHSkriptingBetreff: Benutzereingabeliste für Regressionsbericht mit InteraktionenDer Scripting Index enthält ein Beispiel für Effekte - unten kopiert.
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 ) )
);
Betreff: Benutzereingabeliste für Regressionsbericht mit InteraktionenHier ist eine Möglichkeit, damit umzugehen
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] );
);Betreff: Benutzereingabeliste für Regressionsbericht mit InteraktionenHier ist eine andere Möglichkeit, Ausdrücke zu verwenden. Es gibt mehr Lösungen, die auf Ausdrücken basieren als nur dieses Beispiel.
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 )
)
);