Hallo, ich möchte in einer Datentabelle die Werte für VIP und Koeffizienten für zentrierte und skalierte Daten aus dem PLS-Ausgabefenster extrahieren.
Ist das über JSL möglich?
Danke
Matteo
Hallo,
Ich denke, das wird Ihnen das bringen, was Sie wollen.
Sie können den Berichtsabschnitt jeder Ausgabe finden, indem Sie mit der rechten Maustaste klicken und Bearbeiten -> Baumstruktur anzeigen auswählen.
Für dieses Beispiel habe ich die baltische Beispieltabelle verwendet.
Edit--Show Tree StructureEdit--Show Tree StructureBearbeiten – Baumstruktur anzeigen
TableBox(7) VIP tableTableBox(7) VIP table TableBox(7) VIP-Tisch
Ich habe die Tabellen mit Tabellen -> JMP Query Builder verknüpft.
Hier ist das vollständige Skript.
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Baltic.jmp" );
P = Partial Least Squares(
Y( :ls, :ha, :dt ),
X(
:v1,
:v2,
:v3,
:v4,
:v5,
:v6,
:v7,
:v8,
:v9,
:v10,
:v11,
:v12,
:v13,
:v14,
:v15,
:v16,
:v17,
:v18,
:v19,
:v20,
:v21,
:v22,
:v23,
:v24,
:v25,
:v26,
:v27
),
Validation Method( Name( "Leave-One-Out" ), Initial Number of Factors( 15 ) ),
Fit(
Method( NIPALS ),
Number of Factors( 7 ),
Variable Importance Plot( 1 ),
VIP vs Coefficients Plots( 1 )
),
SendToReport(
Dispatch(
{"NIPALS Fit with 7 Factors"},
"Model Coefficients for Centered and Scaled Data",
OutlineBox,
{Close( 0 )}
),
Dispatch(
{"NIPALS Fit with 7 Factors", "Variable Importance Plot"},
"Variable Importance Table",
OutlineBox,
{Close( 0 )}
)
)
);
pls_rpt = p << report; //Get the report
//Find the specific section of report by right-clicking Edit-->show properties
//pls_rpt[Outline Box( 9 )] << Close; //Close the outline box; for example
//pls_rpt[Outline Box( 12 )] << Close; //Close the outline box; not necessary
coef_tbl = pls_rpt[Table Box( 5 )];
VIP_tbl = pls_rpt[Table Box( 7 )];
coef_tbl << Make Into Data Table(Invisible);
tbl_1# = Current Data Table()<< Set Name("Coefficients_Tbl");
VIP_tbl<<MAKE into="" data="https://community.jmp.com/" table=""> "_MEMORY_", "VIP_Tbl" => "_MEMORY_"] ),
QueryName( "SQLQuery2" ),
Select(
Column( "VIP", "t1", Numeric Format( "Fixed Dec", "4", "NO", "" ) ),
Column( "Coefficient", "t2" ),
Column( "ls", "t2", Numeric Format( "Fixed Dec", "4", "NO", "" ) ),
Column( "ha", "t2", Numeric Format( "Fixed Dec", "4", "NO", "" ) ),
Column( "dt", "t2", Numeric Format( "Fixed Dec", "4", "NO", "" ) )
),
From(
Table( "VIP_Tbl", Alias( "t1" ) ),
Table(
"Coefficients_Tbl",
Alias( "t2" ),
Join(
Type( Left Outer ),
EQ( Column( "X", "t1" ), Column( "Coefficient", "t2" ) )
)
)
)
) << Run;
Close( tbl_1#, NoSave );
Close( tbl_2#, NoSave );</MAKE>
Prost,
Stan
Eigentlich habe ich unter der PLS-Plattform nach VIP und nicht nach VIF gesucht. Ich konnte keine Tabelle finden, die sowohl VIP als auch Koeffizienten enthält.
Auf jeden Fall glaube ich, dass ich einen Workaround gefunden habe. Koeffizienten und VIPs befinden sich in zwei separaten Tabellenfeldern, daher werde ich sie einfach separat extrahieren.
Danke
Matteo
Hallo Mike, danke. In der Baumstruktur konnte ich in einer Geschwister-Outlinebox eine Tabellenbox identifizieren, die nur Koeffizienten, aber nicht die VIPs enthielt.
Ich kann keine Tabelle finden, die mit der Framebox verknüpft ist, aus der ich Daten extrahieren möchte (VIP vs. Koeffizienten).
Danke
Matteo
Hallo Mike, danke. In der Baumstruktur konnte ich eine Tabellenbox mit Koeffizienten, aber nicht mit den VIPs identifizieren.Es sieht so aus, als ob auf die Tabelle hinter der Framebox mit den VIP vs. Koeffizienten nicht zugegriffen werden kann.