JMP into R!Questa settimana celebriamo il 35 ° anniversario delle riunioni del gruppo utenti SAS con SGF 2010 (precedentemente noto come SUGI). SAS ha mostrato una crescita e un successo straordinari da quel primo incontro di cinque utenti nel 1975. In questo lasso di tempo, abbiamo anche assistito a importanti progressi nel campo delle statistiche moderne, in particolare nell'uso di metodi ad alta intensità di computer. Uno dei metodi principali, che è coinciso originariamente nello stesso periodo di SAS, è il bootstrap (Efron, 1979). Il metodo base di bootstrap, come questo Pagina di avvio da Wikipedia spiega, funziona ricampionando i dati con la sostituzione per formare una distribuzione campionaria empirica di una statistica di interesse. Come SAS, il bootstrap è diventato uno strumento straordinario per l'inferenza statistica; Le opere di Efron da sole su questo metodo sono state citate oltre 30.000 volte.
Avanzamento rapido di un decennio, John Sall (uno dei co-fondatori di SAS) e un piccolo gruppo di sviluppatori ha iniziato a lavorare su JMP nel 1989. Come molti prodotti SAS, JMP continua a evolversi e a crescere in popolarità in tutto il mondo. Solo pochi anni dopo, Ross Ihaka e Robert Gentleman iniziarono il linguaggio statistico R open source, ora ampiamente utilizzato, con sintassi basata sulle precedenti lingue S e S +.
SAS Global Forum è un'opportunità per apprendere come i nostri utenti utilizzano i prodotti SAS, nonché per gli utenti per conoscere gli ultimi e più grandi progressi nei prossimi software SAS. Uno di questi annunci per JMP 9 (in uscita nell'autunno del 2010) di cui sono orgoglioso di far parte è il nuove funzionalità di integrazione di JMP con R . Mi piacerebbe mostrare gli elementi di base dell'integrazione nel contesto di un esempio di simulazione dell'intervallo di confidenza bootstrap.
JMP è un meraviglioso complemento a R. L'integrazione con R è emersa con diversi nuovi comandi JSL che consentono di connettersi a un'installazione di R sul desktop, inviare dati ae da R e inviare routine R disponibili tramite i pacchetti R. Le finestre di dialogo JMP possono essere facilmente create per l'input dei parametri su R come front-end e, in modo più significativo, le piattaforme e le piattaforme statistiche interattive e dinamiche di JMP costituiscono un back-end perfetto per le funzioni R. La finestra di dialogo seguente è un'applicazione che si collega a R per creare dati per una determinata distribuzione ed eseguire simulazioni per testare la copertura degli intervalli di confidenza del bootstrap per alcune statistiche comuni.
Potresti chiederti perché una tale simulazione sarebbe interessante o pertinente. Il metodo bootstrap (e l'intervallo di confidenza bootstrap) è ampiamente utilizzato oggi per stimare le proprietà di una statistica, specialmente quando la distribuzione della statistica non è ben nota. Ma se tale distribuzione risulta distorta o distorta (come la distribuzione della varianza), gli intervalli di confidenza del bootstrap per la statistica possono essere inaccurati. Questa applicazione consente in modo rapido e semplice di valutare la copertura degli intervalli di confidenza del bootstrap per le distribuzioni e le statistiche più comuni.
L'output seguente mostra i risultati di una simulazione (1000 esecuzioni) per gli intervalli di confidenza del 95% della media bootstrap (1000 repliche) di una distribuzione Normal standard (media di 0 con varianza di 1). Il pacchetto R "boot" è caricato, e il funzione boot.ci () calcola gli intervalli di bootstrap con diversi metodi. Utilizzando le piattaforme Distribution e Graph Builder in JMP, vediamo che gli intervalli di confidenza del bootstrap del 95% utilizzando il metodo Basic, Normal, Percentile e BCa coprono accuratamente la media vera (i valori della colonna Coverage sono pari a 1 quando l'intervallo di confidenza contiene 0, quindi la voce Prob per il livello 1 corrisponde alla copertura empirica). L'output di Graph Builder mostra che le larghezze dell'intervallo di confidenza sono approssimativamente uguali sia all'interno che tra i metodi.

Ecco il codice JSL di integrazione R utilizzato per eseguire il bootstrap per lo scenario precedente:
rconn = R Connect();
rconn << Submit("\[
library(boot)
# Load Boot package
library(boot)
RStatFctn <- function(x,d) {return(mean(x))}
b.basic = matrix(data=NA, nrow=1000, ncol=2)
b.normal = matrix(data=NA, nrow=1000, ncol=2)
b.percent =matrix(data=NA, nrow=1000, ncol=2)
b.bca =matrix(data=NA, nrow=1000, ncol=2)
for(i in 1:1000){
rnormdat = rnorm(30,0,1)
b <- boot(rnormdat, RStatFctn, R = 1000)
b.ci=boot.ci(b, conf =095,type=c("basic","norm","perc","bca")) b.basic[i,] = b.ci$basic[,4:5]
b.normal[i,] = b.ci$normal[,2:3]
b.percent[i,] = b.ci$percent[,4:5]
b.bca[i,] = b.ci$bca[,4:5]
}
]\"));
b_basic= rconn << Get(b.basic);
b_normal = rconn << Get(b.normal);
b_percent= rconn << Get(b.percent);
b_bca = rconn << Get(b.bca);
rconn << Disconnect();
Usando il comando JSL R Connect () e assegnandolo all'oggetto "rconn", il codice invia messaggi all'oggetto scriptable JSL "rconn" per inviare il codice R tramite il comando Submit () e per recuperare le matrici R contenenti gli intervalli di confidenza bootstrap indietro tramite i comandi Get ().
Ora vediamo cosa succede quando testiamo la copertura degli intervalli di confidenza del bootstrap per la varianza di una normale distribuzione standard. Nella finestra di dialogo, se si modifica il valore target su 1 e si sceglie la varianza come statistica di bootstrap da calcolare e si fa clic su Esegui simulazione, si ottengono i risultati di seguito. In questo caso, tutti e quattro i metodi sottostimano il vero valore della varianza, incluso il metodo Bias-Corrected and Accelerated (BCa) proposto specificamente per combattere la polarizzazione e l'asimmetria nella distribuzione delle statistiche bootstrap (Efron 1987).
Nota quanto è facile vedere gli intervalli di confidenza che non coprono il valore target negli intervalli di confidenza del bootstrap di base (selezionando la barra dell'istogramma "0" sotto la distribuzione della copertura di base) con le nuove funzionalità in JMP 9 che eliminano i punti che erano non selezionato. Possiamo anche vedere come gli intervalli che falliscono nel metodo di base si comportano negli altri metodi. Altri strumenti JMP standard come il filtro dati possono aiutare a esplorare questi risultati in modi che non possono essere facilmente e rapidamente fatti in R. Allo stesso modo, il confronto della copertura tra i metodi è facile da vedere con uno script grafico JSL personalizzato per creare un Venn diagramma che mostra i conteggi di quando gli intervalli contenevano il parametro vero (disponibile su Scambio file JMP e in Genomica di JMP ).
Questa applicazione mostra solo un assaggio di cosa puoi fare con JMP e R insieme. Con una piccola JSL e le piattaforme statistiche e grafiche di JMP, insieme all'ampiezza e alla varietà di pacchetti e funzioni in R, si possono creare applicazioni complete di facile utilizzo per l'analisi statistica.
JMP può anche integrarsi con SAS, che aggiunge la capacità di lavorare con dati su larga scala attraverso il sistema basato su file, nonché la profondità e le funzionalità avanzate delle procedure SAS. Con queste integrazioni continue, JMP può diventare un hub che consente di connettersi sia con SAS che con R, oltre a fornire funzionalità statistiche uniche come JMP Profiler e funzionalità grafiche interattive come Graph Builder. Le possibilità di ciò che puoi fare con questo sono infinite!
SAS, JMP, R e il campo del calcolo statistico hanno fatto molta strada negli ultimi 35 anni. Sono entusiasta di far parte di questa azienda e di questo settore mentre continuiamo a fornire strumenti software che ti consentono di realizzare le tue analisi con flessibilità, stile e facilità!
Quando JMP 9 verrà rilasciato ufficialmente, inserirò lo script per la simulazione bootstrap e altri per lo scambio di file JMP.
Ora lasciatemi fare una domanda: se gli intervalli di confidenza del bootstrap per la varianza di una distribuzione normale standard sono sotto-coperti, come pensi che si comporteranno gli intervalli di sicurezza bootstrap della media di una distribuzione Chi-square?
Ri: JMP Into R!Jeff,
Grazie per la risposta.
Log dump di seguito
*:
HTML interattivo: tipo di visualizzazione non supportato: LayoutAtomBox
HTML interattivo: i controlli non sono interattivi.
HTML interattivo: tipo di visualizzazione non supportato: LayoutAtomBox
HTML interattivo: l'operazione interna non supporta i grafici interattivi.
HTML interattivo: i profiler incorporati in questa piattaforma non sono interattivi.
HTML interattivo: tipo di visualizzazione non supportato: LayoutAtomBox
HTML interattivo: i profiler incorporati in questa piattaforma non sono interattivi.
HTML interattivo: tipo di visualizzazione non supportato: ScrollBox
HTML interattivo: tipo di visualizzazione non supportato: ScriptBox
HTML interattivo: i controlli non sono interattivi.
Inaspettato ")". Forse manca ";" o ",".
Riga 19 Colonna 5:] \ ") ►);
Il testo rimanente che è stato ignorato era
); B_basic = rconn << Get (b.basic); b_normal = rconn << Get (b.normal); b_percent = rconn << Get
(B.percent); b_bca = rconn << Get (b.bca); rconn << Disconnect ();
Script come inserito:
rconn = R Connect ();
rconn << Invia ("\ [
biblioteca (boot)
# Carica pacchetto di avvio
biblioteca (boot)
RStatFctn <- function (x, d) {return (mean (x))}
b.basic = matrix (data = NA, nrow = 1000, ncol = 2)
b.normal = matrix (data = NA, nrow = 1000, ncol = 2)
b.percent = matrix (data = NA, nrow = 1000, ncol = 2)
b.bca = matrix (data = NA, nrow = 1000, ncol = 2)
for (i in 1: 1000) {
rnormdat = rnorm (30,0,1)
b <- boot (rnormdat, RStatFctn, R = 1000)
b.ci = boot.ci (b, conf = 095, type = c ("basic", "norm", "perc", "bca")) b.basic [i,] = b.ci $ basic [, 4: 5]
b.normal [i,] = b.ci $ normal [, 2: 3]
b.percent [i,] = b.ci $ percent [, 4: 5]
b.bca [i,] = b.ci $ bca [, 4: 5]
}
] \ "));
b_basic = rconn << Get (b.basic);
b_normal = rconn << Get (b.normal);
b_percent = rconn << Get (b.percent);
b_bca = rconn << Get (b.bca);
rconn << Disconnect ();
Script analizzato:
rconn = R Connect ();
rconn << Invia (
"
biblioteca (boot)
# Carica pacchetto di avvio
biblioteca (boot)
RStatFctn <- function (x, d) {return (mean (x))}
b.basic = matrix (data = NA, nrow = 1000, ncol = 2)
b.normal = matrix (data = NA, nrow = 1000, ncol = 2)
b.percent = matrix (data = NA, nrow = 1000, ncol = 2)
b.bca = matrix (data = NA, nrow = 1000, ncol = 2)
for (i in 1: 1000) {
rnormdat = rnorm (30,0,1)
b <- boot (rnormdat, RStatFctn, R = 1000)
b.ci = boot.ci (b, conf = 095, type = c (\! "basic \!", \! "norm \!", \! "perc \!", \! "bca \!") ) b.basic [i,] = b.ci $ basic [, 4: 5]
b.normal [i,] = b.ci $ normal [, 2: 3]
b.percent [i,] = b.ci $ percent [, 4: 5]
b.bca [i,] = b.ci $ bca [, 4: 5]
}
"
);
//: * /
rconn = R Connect ();
rconn << Invia ("\ [
biblioteca (boot)
# Carica pacchetto di avvio
biblioteca (boot)
RStatFctn <- function (x, d) {return (mean (x))}
b.basic = matrix (data = NA, nrow = 1000, ncol = 2)
b.normal = matrix (data = NA, nrow = 1000, ncol = 2)
b.percent = matrix (data = NA, nrow = 1000, ncol = 2)
b.bca = matrix (data = NA, nrow = 1000, ncol = 2)
for (i in 1: 1000) {
rnormdat = rnorm (30,0,1)
b <- boot (rnormdat, RStatFctn, R = 1000)
b.ci = boot.ci (b, conf = 095, type = c ("basic", "norm", "perc", "bca")) b.basic [i,] = b.ci $ basic [, 4: 5]
b.normal [i,] = b.ci $ normal [, 2: 3]
b.percent [i,] = b.ci $ percent [, 4: 5]
b.bca [i,] = b.ci $ bca [, 4: 5]
}
] \ "));
b_basic = rconn << Get (b.basic);
b_normal = rconn << Get (b.normal);
b_percent = rconn << Get (b.percent);
b_bca = rconn << Get (b.bca);
rconn << Disconnect ();
/ *:
Inaspettato ")". Forse manca ";" o ",".
Riga 19 Colonna 5:] \ ") ►);
Il testo rimanente che è stato ignorato era
); B_basic = rconn << Get (b.basic); b_normal = rconn << Get (b.normal); b_percent = rconn << Get
(B.percent); b_bca = rconn << Get (b.bca); rconn << Disconnect ();
TKIntRJMP.R versione 5.05
Errore: simbolo inatteso in:
Errore: "b <- boot (rnormdat, RStatFctn, R = 1000)
Errore: b.ci = boot.ci (b, conf = 095, type = c ("basic", "norm", "perc", "bca")) b.basic "
TKIntRJMP.R versione 5.05
Errore: simbolo inatteso in:
Errore: "b <- boot (rnormdat, RStatFctn, R = 1000)
Errore: b.ci = boot.ci (b, conf = 095, type = c ("basic", "norm", "perc", "bca")) b.basic "
Ri: JMP Into R!Ci sono errori nel Finestra di registro JMP ?


Ri: JMP Into R!Ho appena eseguito lo script precedente e l'editor JSL ha contrassegnato una parata in più a destra alla riga 19.
È stato in grado di salvare ed eseguire lo script in seguito, ma con output zero.
Niente grafici, niente grafici, niente. E la tabella dati è ancora vuota.
Che cosa sto facendo di sbagliato? Cosa mi manca?
rconn = R Connect();
rconn << Submit("\[
library(boot)
# Load Boot package
library(boot)
RStatFctn <- function(x,d) {return(mean(x))}
b.basic = matrix(data=NA, nrow=1000, ncol=2)
b.normal = matrix(data=NA, nrow=1000, ncol=2)
b.percent =matrix(data=NA, nrow=1000, ncol=2)
b.bca =matrix(data=NA, nrow=1000, ncol=2)
for(i in 1:1000){
rnormdat = rnorm(30,0,1)
b <- boot(rnormdat, RStatFctn, R = 1000)
b.ci=boot.ci(b, conf =095,type=c("basic","norm","perc","bca")) b.basic[i,] = b.ci$basic[,4:5]
b.normal[i,] = b.ci$normal[,2:3]
b.percent[i,] = b.ci$percent[,4:5]
b.bca[i,] = b.ci$bca[,4:5]
}
]\");
b_basic= rconn << Get(b.basic);
b_normal = rconn << Get(b.normal);
b_percent= rconn << Get(b.percent);
b_bca = rconn << Get(b.bca);
rconn << Disconnect();Giovanni ha scritto: Ho provato a usare R in JMP e sta lavorando g ... Giovanni ha scritto:
Ho provato a utilizzare R in JMP e funziona benissimo. Ho un problema Ho cercato di cambiare la dimensione di un grafico restituito da R in JMP e non sono stato in grado di farlo. C'è qualche parametro o opzione che posso usare per cambiare la dimensione del grafico importato. Posso cambiarlo in R ma lo importerò sempre delle stesse dimensioni in JMP. Apprezzo qualsiasi aiuto !!
MS ha scritto: notizie davvero interessanti! Io uso JMP (Mac OS X) come f ... SIGNORINA ha scritto:
Notizie davvero interessanti! Io uso JMP (Mac OS X) come per l'hub per la maggior parte delle mie esigenze di gestione e analisi dei dati e l'integrazione R aumenterebbe ulteriormente la condivisione. Per favore, dimmi che questo non si trova solo nella versione di Windows.
Kelci Miclaus ha scritto: Sì! Questo sarà disponibile sul M ... Kelci Miclaus ha scritto:
Sì! Questo sarà disponibile anche sul Mac quando viene rilasciato JMP 9.
Ibrahim ha scritto: l'ho provato ed è stato grandioso, ma limitato ... Ibrahim ha scritto:
L'ho provato ed è stato fantastico, ma limitato all'analisi univariata! Per favore potresti espanderlo o svilupparlo su piattaforme bivariate e multivariate? Ciò consentirà la sua applicazione in una gamma di test / analisi. Anche la barra delle imposte e il pulsante di aiuto non sono disponibili nella confezione. Sto usando JMP9. Grazie