Here is an example of one way to do this. I am not sure if it is capturing the top 10 the way you envision, but it should give you an idea of how to proceed.
Names Default To Here( 1 );
// Open Data Table: semiconductor capability.jmp
// → Data Table( "semiconductor capability" )
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
// For the example, Change column modeling type: wafer
Data Table( "semiconductor capability" ):wafer << Set Modeling Type( "Continuous" );
// Launch platform: Bootstrap Forest
bf = dt << Bootstrap Forest(
Y( :wafer ),
X(
:NPN1, :PNP1, :PNP2, :NPN2, :PNP3, :IVP1, :PNP4, :NPN3, :IVP2, :NPN4, :SIT1, :INM1,
:INM2, :VPM1, :VPM2, :VPM3, :PMS1, :SNM1, :SPM1, :NPN5, :EP2, :ZD6, :PBA, :PLG, :CAP,
:PBA3, :PLG2, :PNP5, :NPN6, :PNP6, :PNP7, :NPN7, :PNP8, :IVP3, :IVP4, :IVP5, :IVP6,
:PNP9, :NPN8, :NPN9, :IVP7, :NPN10, :N_1, :PBA1, :WPR1, :B10, :PLY10, :VBE210, :VTN210,
:VTP210, :SIT2, :SIT3, :INV2, :INV3, :INV4, :INV5, :FST1, :FST2, :RES1, :RES2, :PNM1,
:PPM1, :FNM1, :FPM1, :FST3, :FST4, :RES3, :RES4, :A1, :B1, :A2N, :A2P, :A2P1, :IVP8,
:IVP9, :DE_H1, :NF_H1, :ESM1, :ESM2, :ESP1, :YFU1, :VPM4, :PBA2, :PBB1, :LYA1, :LYB1,
:DEM1, :DEP1, :NFM1, :PLY1, :VDP1, :VDP2, :SNW1, :RSP2, :PLY2, :RSP1, :VDP3, :PBL1,
:PLG1, :VDP4, :SPW1, :VIA1, :INM3, :VPM5, :VPM6, :INM4, :VPM7, :M1_M1, :M2_M2, :P1_P1,
:E2A1, :E2B1, :NPN11, :IVP10, :PNP10, :INM5, :VPM8, :VPM9, :INM6, :VPM10, :N2A1, :N2B1,
:NM_L1, :P2A1, :P2B1, :PM_L1, :P1, :M1
),
Method( "Bootstrap Forest" ),
Portion Bootstrap( 1 ),
Number Terms( 84 ),
Number Trees( 100 ),
Column Contributions( 1 ),
Go
);
// Get Top 10 contibutors
orderedContributionList = Report( bf )["Column Contributions"][String Col Box( 1 )] << get;
// Reduce to 10
Remove From( orderedContributionList, 11, N Items( orderedContributionList ) - 10 );
// Create the 10 plots
For( i = 1, i <= 10, i++,
Graph Builder(
Size( 525, 454 ),
Show Control Panel( 0 ),
Variables( X( orderedContributionList[i] ), Y( :wafer ) ),
Elements( Line Of Fit( X, Y, Legend( 8 ), R²( 1 ) ) )
)
);
Jim