Ciao a tutti,
Sono rimasto un po' frustrato dal fatto che JMP non disponga ancora di una piattaforma di modellazione GAM (anche se esiste in SAS da molti anni), quindi ho deciso di creare un componente aggiuntivo basato sul pacchetto mgcv in R. Quindi per eseguire questo componente aggiuntivo dovrai disporre di R v. 3.3.3 in esecuzione sul tuo computer. Fondamentalmente crea una finestra di dialogo JMP con molte delle opzioni disponibili nel pacchetto R e recupera i risultati essenziali da R e aggiunge alcuni grafici e opzioni. Se hai bisogno di funzionalità aggiuntive, per favore fatemelo sapere. Ecco alcune schermate dell'interfaccia e della finestra dei risultati.
Cordiali saluti, Yves



Ciao Yves!
Grazie per una risposta così tempestiva!!
In effetti, funziona con lo script (forse il motivo è che prima non avevo installato R 3.3, ora ce l'ho). Mi chiedo se puoi consigliarmi qualcosa per i miei predittori ordinari che si adattano bene come SASH o Poisson gonfiato a zero). Ho letto che l'utilizzo di una spline penalizzata può essere utilizzato nell'ordinario utilizzando una quantità specifica di nodi (relativa al numero di livelli ordinari).
Ciao Yves Praire!
Addin davvero interessante, mi chiedo se sia compatibile con JMP Pro 16.1?
Mi danno un errore quando ho provato ad installarlo.

Ciao Ingrid,
Scusami non avevo visto il tuo post. Se mccv lo emette allora sì, sarebbe facile aggiungerlo. Lo esaminerò.
Grazie per il tuo interesse, Yves
Ciao Raewdy,
Ecco la sceneggiatura per questo. Saluti, Yves
Names Default To Here( 1 );
Clear Globals();
//
// Check host and R connection
//
macsys = Host is( "Mac" );
winsys = Host is( "Windows" );
connected = R Is Connected();
R Term();
If( connected == 0,
If( macsys == 1,
Set Environment Variable( "R_HOME", "/Library/Frameworks/R.framework/Versions/Current/Resources" )
);
If( winsys == 1,
ppath = Pick Directory( "Locate the directory of your R program version 3.3.3" );
ppath=substr(ppath,2,length(ppath)-1);
part = Parse( Eval Insert( "
Set Environment Variable( \!"R_HOME\!",\!"^ppath^\!" );" ) );
Eval( part );
);
);
R Init();
connected = R Is Connected();
R Term();
If( connected == 0,
ww2 = New Window( "Warning",
Spacer Box(),
Text Box( " CANNOT ESTABLISH CONNECTION WITH R " ),
Spacer Box(),
H Center Box(
Button Box( "OK",
ww2 << close window;
)
)
);
Stop();
);
//
// CHECK R VERSION
//
R Init();
connected = R Is Connected();
If( connected == 1,
Rver = Char( R Get Version() );
If( Rver == "[3 3 3]",
,
ww1 = New Window( "Warning",
<<MODAL> 1, TAV ||= TLV );
If( Nxvar >= 1,
TAV ||= TSV,
Print( "Please select variables" )
);
nm = Loc Nonmissing( TAV );
nnm=n row(nm);
SV=TSV[nm];
LV=TLV[nm];
YV=TYV[nm];
LY = Min( YV ) * .95;
HY = Max( YV ) * 1.05;
if(nnm<NPTERMS>= HR,
HR = Abs( LR ),
LR = -HR
);
R Term();
genfit = rsq || dev || nobs;
pest = J( npterms, 1, . );
pstderr = J( npterms, 1, . );
pt = J( npterms, 1, . );
pprob = J( npterms, 1, . );
For( i = 1, i <= npterms, i++,
pest[i] = ptable[i];
pstderr[i] = ptable[i + 1 * npterms];
pt[i] = ptable[i + 2 * npterms];
pprob[i] = If( ptable[i + 3 * npterms] <= 0.0001,
0.0001,
ptable[i + 3 * npterms]
);
);
sedf = J( nxvar, 1, . );
srdf = J( nxvar, 1, . );
sf = J( nxvar, 1, . );
sprob = J( nxvar, 1, . );
For( i = 1, i <= nxvar, i++,
sedf[i] = stable[i];
srdf[i] = stable[i + nxvar * 1];
sf[i] = stable[i + 2 * nxvar];
sprob[i] = If( stable[i + 3 * nxvar] <= 0.0001,
0.0001,
stable[i + 3 * nxvar]
);
);
New Window( "GAM Model Fit",
Outline Box( Eval Insert( "Family: ^selfam^" ) ),
Outline Box( Eval Insert( "Link function: ^sellnk^" ) ),
Outline Box( "Whole Model",
{"Save predicted", New Column( "Predicted values", values( fitvalues ) ),
"Save residuals", New Column( "Residuals", values( YV - fitvalues ) )},
H List Box(
V List Box(
Outline Box( "Obs vs Pred.",
Graph Box(
X Scale( LYH, HYH ),
Y Scale( LY, HY ),
Yname( "Obs Y" ),
Xname( "Pred Y" ),
Frame Size( 250, 250 ),
Line( {LY, LY}, {HY, HY} ),
Marker( Marker State( 0 ), fitvalues, YV )
)
),
Outline Box( "Residuals vs Pred.",
Graph Box(
Y Scale( LR, HR ),
X Scale( LYH, HYH ),
Yname( "Residuals" ),
Xname( "Pred Y" ),
Frame Size( 250, 120 ),
Line( {LYH, 0}, {HYH, 0} ),
Marker( Marker State( 0 ), fitvalues, Resids )
)
)
),
Outline Box( "Smoother and Linear leverage plots", Picture Box( SmPl ) )
)
),
Outline Box( "Summary of Fit",
Table Box(
String Col Box( , {"adj. R-square", "Deviance", "Number of Obs."} ),
Number Col Box( , genfit )
)
),
Outline Box( "Parametric terms estimates",
Table Box(
String Col Box( "Term", pterms ),
Number Col Box( "Estimate", pest ),
Number Col Box( "Std Error", pstderr ),
Number Col Box( "Prob.", pprob ),
)
),
Outline Box( "Smoothed terms estimates",
Table Box(
String Col Box( "Term", sterms ),
Number Col Box( "Est. df", sedf ),
Number Col Box( "Ref df", srdf ),
Number Col Box( "F", sf ),
Number Col Box( "Prob.", sprob ),
)
)
);
If( cw == 0,
nw << close window
);
)
)
)
)
);</NPTERMS></MODAL>Caro Raewdy,
Sfortunatamente, questo non ha nulla a che fare con lo script, è una limitazione delle funzioni di integrazione di JMP R. Solo JMP può risolverlo. Presumibilmente, risolveranno il problema nella prossima versione di JMP... Detto questo, puoi avere più versioni di R sul tuo computer, inclusa R 3.3.3.
Saluti, Yves