JMP in R!Diese Woche feiern wir das 35-jährige Jubiläum der SAS-Anwendergruppentreffen mit SGF 2010 (früher als SUGI bekannt). SAS hat seit dem ersten Treffen von fünf Anwendern im Jahr 1975 außergewöhnliches Wachstum und Erfolg gezeigt. In dieser Zeitspanne haben wir auch große Fortschritte auf dem Gebiet der modernen Statistik erlebt, insbesondere beim Einsatz computerintensiver Methoden. Eine der führenden Methoden, die zeitgleich mit SAS entstanden ist, ist der Bootstrap (Efron, 1979). Die grundlegende Bootstrap-Methode wie diese Bootstrapping-Seite aus Wikipedia erklärt, arbeitet durch erneute Abtastung der Daten, um eine empirische Stichprobenverteilung einer interessierenden Statistik zu bilden. Wie SAS ist der Bootstrap zu einem bemerkenswerten Werkzeug für statistische Inferenz geworden. Allein die Arbeiten von Efron zu dieser Methode wurden über 30.000 Mal zitiert.
Schneller Vorlauf eines Jahrzehnts John Sall (einer der Mitbegründer von SAS) und eine kleine Gruppe von Entwicklern begannen 1989 mit JMP. Wie viele SAS-Produkte JMP entwickelt sich ständig weiter und wird weltweit immer beliebter. Nur wenige Jahre später starteten Ross Ihaka und Robert Gentleman die mittlerweile weit verbreitete statistische Open-Source-Sprache R mit einer auf den vorherigen S- und S + -Sprachen basierenden Syntax.
Das SAS Global Forum bietet die Gelegenheit, zu erfahren, wie unsere Benutzer SAS-Produkte einsetzen, und für Benutzer, um sich über die neuesten und größten Fortschritte in der kommenden SAS-Software zu informieren. Eine solche Ankündigung für JMP 9 (Veröffentlichung im Herbst 2010), auf die ich stolz bin, ein Teil davon zu sein, ist die neue Integrationsmöglichkeiten von JMP mit R . Ich möchte die grundlegenden Elemente der Integration im Kontext eines Beispiels einer Bootstrap-Konfidenzintervall-Simulation zeigen.
JMP ist eine wunderbare Ergänzung zu R. Die Integration von R wird durch mehrere neue JSL-Befehle unterstützt, mit denen Sie eine Verbindung zu einer Installation von R auf Ihrem Desktop herstellen, Daten an und von R senden und R-Routinen über die R-Pakete senden können. JMP-Dialoge können einfach für die Parametereingabe in R als Front-End erstellt werden. Die interaktiven und dynamischen statistischen Plattformen und Grafiken von JMP sorgen für ein perfektes Back-End für R-Funktionen. Das folgende Dialogfeld ist eine Anwendung, die eine Verbindung zu R herstellt, um Daten für eine bestimmte Verteilung zu erstellen und Simulationen durchzuführen, um die Abdeckung der Bootstrap-Konfidenzintervalle für einige allgemeine Statistiken zu testen.
Sie fragen sich vielleicht, warum eine solche Simulation interessant oder relevant ist. Die Bootstrap-Methode (und das Bootstrap-Konfidenzintervall) wird heute häufig verwendet, um die Eigenschaften einer Statistik zu schätzen, insbesondere wenn die Verteilung der Statistik nicht gut bekannt ist. Wenn diese Verteilung jedoch verzerrt oder verzerrt ist (z. B. die Verteilung der Varianz), können die Bootstrap-Konfidenzintervalle für die Statistik ungenau sein. Mit dieser Anwendung können Sie schnell und einfach die Reichweite der Bootstrap-Vertrauensintervalle für die am häufigsten verwendeten Distributionen und Statistiken ermitteln.
Die folgende Ausgabe zeigt die Ergebnisse einer Simulation (1000 Durchläufe) für die 95% -Konfidenzintervalle des bootstrappten Mittelwerts (1000 Replikationen) einer Standard-Normalverteilung (Mittelwert von 0 mit Varianz von 1). Das R-Paket "boot" wird geladen und das Funktion boot.ci () berechnet Bootstrap-Intervalle auf verschiedene Weise. Bei Verwendung der Distributions- und Diagramm-Builder-Plattformen in JMP stellen wir fest, dass 95% Bootstrap-Konfidenzintervalle mit den Methoden Basic, Normal, Percentile und BCa den wahren Mittelwert genau abdecken (die Spalte Coverage entspricht 1, wenn das Konfidenzintervall 0 enthält.) der Prob-Eintrag für Stufe 1 entspricht der empirischen Abdeckung. Die Ausgabe des Graph Builder zeigt, dass die Vertrauensintervallbreiten sowohl innerhalb als auch zwischen den Methoden ungefähr gleich sind.

Hier ist der JSL-Code für die R-Integration, der zum Ausführen des Bootstraps für das obige Szenario verwendet wird:
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();
Mit dem JSL-Befehl R Connect () und der Zuweisung zu dem Objekt "rconn" sendet der Code Nachrichten an das JSL-Skriptobjekt "rconn", um R-Code über den Submit () - Befehl zu senden und R-Matrizen abzurufen, die die Bootstrap-Konfidenzintervalle enthalten zurück über die Get () - Befehle.
Lassen Sie uns nun sehen, was passiert, wenn wir die Abdeckung der Konfidenzintervalle von Bootstrap auf die Varianz einer Standardnormalverteilung testen. Wenn Sie im Dialogfeld den Zielwert in 1 ändern und die zu berechnende Bootstrap-Statistik Varianz auswählen und auf Simulation ausführen klicken, erhalten Sie die Ergebnisse unten. In diesem Fall unterschätzen alle vier Methoden den wahren Wert der Varianz, einschließlich der voreingenommenen korrigierten und beschleunigten (BCa) -Methode, die speziell zur Bekämpfung von Voreingenommenheit und Schiefe in der Verteilung der Bootstrap-Statistik vorgeschlagen wird (Efron 1987).
Beachten Sie, wie einfach es ist, die Konfidenzintervalle, die den Zielwert nicht erfüllen, in den Basis-Bootstrap-Konfidenzintervallen (durch Auswahl der Histogrammleiste "0" unter der Verteilung "Basic Coverage") mit neuen Funktionen in JMP 9 zu sehen, die grau hinterlegte Punkte darstellen nicht ausgewählt. Wir können auch sehen, wie Intervalle, die in der Basic-Methode fehlschlagen, in den anderen Methoden funktionieren. Andere Standard-JMP-Tools wie der Datenfilter können dazu beitragen, diese Ergebnisse auf eine Weise zu untersuchen, die in R nicht einfach und schnell durchgeführt werden kann. Ebenso ist der Vergleich der Abdeckung zwischen den Methoden mit einem benutzerdefinierten JSL-Grafikskript zum Erstellen eines Venn leicht zu erkennen Diagramm mit den Zählwerten, wann die Intervalle den wahren Parameter enthielten (verfügbar im JMP-Dateiaustausch und in JMP Genomics ).
Diese Anwendung zeigt nur einen Vorgeschmack auf die Möglichkeiten von JMP und R. Mit ein wenig JSL und den Statistik- und Grafikplattformen von JMP, gepaart mit der Breite und Vielfalt von Paketen und Funktionen in R, können komplette, benutzerfreundliche Anwendungen für die statistische Analyse erstellt werden.
JMP kann auch in SAS integriert werden, wodurch die Möglichkeit geschaffen wird, mit umfangreichen Daten über das dateibasierte System zu arbeiten, sowie die umfassenden und erweiterten Funktionen von SAS-Verfahren. Mit diesen nahtlosen Integrationen kann JMP zu einem Knotenpunkt werden, der die Verbindung mit SAS und R ermöglicht, und bietet einzigartige statistische Funktionen wie den JMP-Profiler und interaktive Grafikfunktionen wie den Graph Builder. Die Möglichkeiten, was Sie damit machen können, sind endlos!
SAS, JMP, R und das Gebiet des statistischen Rechnens haben sich in den letzten 35 Jahren stark weiterentwickelt. Ich freue mich sehr, Teil dieses Unternehmens und dieser Branche zu sein, da wir weiterhin Softwaretools anbieten, mit denen Sie Ihre Analysen flexibel, stilvoll und einfach durchführen können!
Wenn JMP 9 offiziell veröffentlicht wird, werde ich das Skript für die Bootstrap-Simulation und andere in JMP File Exchange einfügen.
Lassen Sie mich nun eine Frage stellen: Wenn die Bootstrap-Konfidenzintervalle für die Varianz einer Standard-Normalverteilung nicht ausreichend abgedeckt sind, wie verhalten sich dann die Bootstrap-Konfidenzintervalle des Mittelwerts einer Chi-Quadrat-Verteilung?
Re: JMP in R!Jeff,
Danke für die Antwort.
Protokollabbild unten
*:
Interaktives HTML: Nicht unterstützter Anzeigetyp: LayoutAtomBox
Interaktives HTML: Steuerelemente sind nicht interaktiv.
Interaktives HTML: Nicht unterstützter Anzeigetyp: LayoutAtomBox
Interaktives HTML: Interne Operationen unterstützen keine interaktiven Diagramme.
Interaktives HTML: Eingebettete Profiler auf dieser Plattform sind nicht interaktiv.
Interaktives HTML: Nicht unterstützter Anzeigetyp: LayoutAtomBox
Interaktives HTML: Eingebettete Profiler auf dieser Plattform sind nicht interaktiv.
Interaktives HTML: Nicht unterstützter Anzeigetyp: ScrollBox
Interaktives HTML: Nicht unterstützter Anzeigetyp: ScriptBox
Interaktives HTML: Steuerelemente sind nicht interaktiv.
Unerwartetes ")". Vielleicht fehlt ein ";" oder ",".
Zeile 19 Spalte 5:] \ ") ►);
Der restliche Text, der ignoriert wurde, war
); b_basic = rconn << Holen (b.basic); b_normal = rconn << Holen (b.normal); b_percent = rconn << Holen
(b.percent); b_bca = rconn << Get (b.bca); rconn << Disconnect ();
Skript wie eingegeben:
rconn = R Connect ();
rconn << Übermitteln ("\ [
Bibliothek (Boot)
# Laden Sie das Boot-Paket
Bibliothek (Boot)
RStatFctn <- Funktion (x, d) {return (Mittelwert (x))}
b.basisch = Matrix (Daten = NA, Anzahl = 1000, ncol = 2)
b.normal = Matrix (Daten = NA, Anzahl = 1000, ncol = 2)
b.prozent = Matrix (Daten = NA, Anzahl = 1000, ncol = 2)
b.bca = Matrix (Daten = NA, Anzahl = 1000, ncol = 2)
für (i in 1: 1000) {
rnormdat = rnorm (30,0,1)
b <- boot (rnormdat, RStatFctn, R = 1000)
b.ci = boot.ci (b, conf = 095, Typ = c ("basic", "norm", "perc", "bca")) b.basic [i,] = b.ci $ basic [, 4: 5]
b.normal [i,] = b.ci $ normal [, 2: 3]
b.prozent [i,] = b.ci $ prozent [, 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 () trennen;
Skript wie analysiert:
rconn = R Connect ();
rconn << Senden (
"
Bibliothek (Boot)
# Laden Sie das Boot-Paket
Bibliothek (Boot)
RStatFctn <- Funktion (x, d) {return (Mittelwert (x))}
b.basisch = Matrix (Daten = NA, Anzahl = 1000, ncol = 2)
b.normal = Matrix (Daten = NA, Anzahl = 1000, ncol = 2)
b.prozent = Matrix (Daten = NA, Anzahl = 1000, ncol = 2)
b.bca = Matrix (Daten = NA, Anzahl = 1000, ncol = 2)
für (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.prozent [i,] = b.ci $ prozent [, 4: 5]
b.bca [i,] = b.ci $ bca [, 4: 5]
}
"
);
//: * /
rconn = R Connect ();
rconn << Übermitteln ("\ [
Bibliothek (Boot)
# Laden Sie das Boot-Paket
Bibliothek (Boot)
RStatFctn <- Funktion (x, d) {return (Mittelwert (x))}
b.basisch = Matrix (Daten = NA, Anzahl = 1000, ncol = 2)
b.normal = Matrix (Daten = NA, Anzahl = 1000, ncol = 2)
b.prozent = Matrix (Daten = NA, Anzahl = 1000, ncol = 2)
b.bca = Matrix (Daten = NA, Anzahl = 1000, ncol = 2)
für (i in 1: 1000) {
rnormdat = rnorm (30,0,1)
b <- boot (rnormdat, RStatFctn, R = 1000)
b.ci = boot.ci (b, conf = 095, Typ = c ("basic", "norm", "perc", "bca")) b.basic [i,] = b.ci $ basic [, 4: 5]
b.normal [i,] = b.ci $ normal [, 2: 3]
b.prozent [i,] = b.ci $ prozent [, 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 () trennen;
/ *:
Unerwartetes ")". Vielleicht fehlt ein ";" oder ",".
Zeile 19 Spalte 5:] \ ") ►);
Der restliche Text, der ignoriert wurde, war
); b_basic = rconn << Holen (b.basic); b_normal = rconn << Holen (b.normal); b_percent = rconn << Holen
(b.percent); b_bca = rconn << Get (b.bca); rconn << Disconnect ();
TKIntRJMP.R Version 5.05
Fehler: unerwartetes Symbol in:
Fehler: "b <- boot (rnormdat, RStatFctn, R = 1000)
Fehler: b.ci = boot.ci (b, conf = 095, Typ = c ("basic", "norm", "perc", "bca")) b.basic
TKIntRJMP.R Version 5.05
Fehler: unerwartetes Symbol in:
Fehler: "b <- boot (rnormdat, RStatFctn, R = 1000)
Fehler: b.ci = boot.ci (b, conf = 095, Typ = c ("basic", "norm", "perc", "bca")) b.basic
Re: JMP in R!Gibt es irgendwelche Fehler in der JMP-Protokollfenster ?


Re: JMP in R!Ich habe gerade das obige Skript ausgeführt und der JSL-Editor hat in Zeile 19 eine zusätzliche rechte Klammer markiert.
Später konnte das Skript gespeichert und ausgeführt werden, jedoch ohne Ausgabe.
Keine Diagramme, keine Grafiken, nichts. Und die Datentabelle ist noch leer.
Was mache ich falsch? Was vermisse ich?
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 hat geschrieben: Ich habe versucht, R in JMP und es funktioniert g ... Giovanni schrieb:
Ich habe versucht, R in JMP zu verwenden, und es funktioniert super. Ich habe ein Problem. Ich habe versucht, die Größe einer von R zurückgegebenen Grafik in JMP zu ändern und konnte dies nicht. Gibt es Parameter oder Optionen, die II verwenden kann, um die Größe des importierten Diagramms zu ändern. Ich kann es in R ändern, aber es wird immer dieselbe Größe in JMP importiert. Schätzen Sie jede Hilfe !!
MS hat geschrieben: Aufregende Neuigkeiten! Ich benutze JMP (Mac OS X) als ... FRAU schrieb:
Aufregende Neuigkeiten! Ich verwende JMP (Mac OS X) als Hub für die meisten meiner Datenverwaltungs- und Analyseanforderungen, und die R-Integration würde diesen Anteil noch weiter erhöhen. Bitte sagen Sie mir, dass dies nicht nur in der Windows-Version zu finden ist.
Kelci Miclaus hat geschrieben: Ja! Dies wird auf der M ... Kelci Miclaus schrieb:
Ja! Dies wird auch auf dem Mac verfügbar sein, wenn JMP 9 veröffentlicht wird.
Ibrahim hat geschrieben: Ich habe es ausprobiert und das war großartig, aber begrenzt ... Ibrahim schrieb:
Ich habe es ausprobiert und das war großartig, aber auf univariate Analysen beschränkt! Könnten Sie es auf bivariate und multivariate Plattformen erweitern oder ausbauen? Dies ermöglicht die Anwendung in einer Reihe von Tests / Analysen. Die Steuerleiste und die Hilfeschaltfläche sind in der Box nicht verfügbar. Ich verwende JMP9. Vielen Dank