Datenanalyse in Origin mit R-Konsole

Datenanalyse in Origin mit R-Konsole

Die Hilfsmittel R-Konsole und Rserve-Konsole wurden in Origin 2016 eingeführt. Mit ihnen können Sie Daten einfach von R in Origin übertragen und die erweiterten grafischen Funktionen in Origin nutzen. Außerdem haben Sie Zugriff auf eine Vielzahl statistischer Funktionen bzw. Pakete von R, die Ihnen bei der Analyse der Daten in Ihrem Origin-Projekt mittels des Dialogs der R-Konsole und dem Befehl helfen. Im Folgenden sehen Sie ein visualisiertes Beispiel, um die flexiblen Anwendungen der R-Konsole für die statistische Datenanalyse und -simulation zu zeigen.

Pakete installieren

Um diese Beispiele auszuführen, müssen Sie auf Ihrem Computer R installiert haben und die R-Pakete boot und GenSA herunterladen. Bitte öffnen Sie Ihr R-Hauptfenster (nicht die R-Konsole in Origin) und führen Sie folgendes Skript zum Installieren und Laden aus:

install.packages("boot") install.packages("GenSA") library(boot) library(GenSA)

Korrelationskoeffizient mit Hilfe von Bootstrap berechnen

Mit dem R-Paket boot kann ein Anwender sehr einfach Bootstrap-Samples erzeugen und eine statistische Analyse durchführen. In diesem Beispiel wird vorgestellt, wie der Korrelationskoeffizient mit Hilfe von Bootstrap mit diesem Paket in R-Konsole berechnet wird.

  1. Erstellen Sie eine neue Arbeitsmappe und klicken Sie auf ASCII-Dateidaten Button Import Single ASCII.png, um LogRegData.dat aus \OriginLab\Origin2016\Samples\Statistics zu importieren.
  2. Wählen Sie Konnektivität: R-Konsole im Origin-Menü, um den Dialog R-Konsole zu öffnen.
  3. Klicken Sie auf die Schaltfläche Select.png und markieren Sie die ersten beiden Spalten im Arbeitsblatt. Wählen Sie Daten als Datenrahmen, geben Sie den Objektnamen data im Feld R-Objekt ein und klicken Sie auf Send data.png, u die Daten aus Origin an den R-Raum weiterzugeben.
    Send data rconsole.png
  4. Sie müssen dann das Skript unten im Skripteingabefeld der R-Konsole ausführen. Fügen Sie die Daten bitte in das Feld ein und klicken Sie auf Enter:
library(boot) f <- function(d, i){ d2 <- d[i,] return(cor(d2$Age, d2$Salary)) } bootcorr <- boot(data, f, R=500) summary(bootcorr)

5. Das Ergebniss wird im R-Objekt bootcorr gespeichert. Die Korrelation für jeden Bootstrap wird in bootcorr$t gespeichert. Erstellen Sie jetzt eine neue Arbeitsmappe und klicken Sie auf Get data.png, um das R-Objekt bootcorr$t als Vektor in Spalte A zu bringen. Sie können jetzt sehen, dass Spalte A Ergebnisdaten mit 500 Zeilen hat.

Get data rconsole.png

6. Markieren Sie Spalte A und klicken Sie auf Zeichnen: Statistisch: Histogramm, um ein Histogramm zu erstellen. Sie können dann die Verteilungskurve zeichnen und die Farbe benutzerdefiniert anpassen. Das Ergebnis entspricht demjenigen in der Grafik unten:

Bootstrip.png

Random Walk in 2D-Gitter simulieren

R enthält eine Effizienzfunktion für Zufallsproben und Matrixmanipulation. Hier wird ein Beispiel der Simulation eines Random Walks in einem 2D-Gitters vorgestellt, bei dem Random Walk-Daten in R erzeugt werden und die Route mit einem farbigen Liniendiagramm in Origin gezeigt wird.

  1. Neues Arbeitsblatt mit 3 Spalten erstellen
  2. Klicken Sie auf Konnektivität: R-Konsole im Origin-Menü, um den Dialog zu öffnen. Führen Sie das Skript unten aus, um die Daten des Random Walks zu erzeugen:
step <- 2000 walk <- matrix(0, ncol = 3, nrow=step) index <- cbind(seq(step), sample(c(1, 2), step, TRUE)) walk [index] <- sample(c(-1, 1), step, TRUE) walk [,1] <- cumsum(walk[, 1]) walk [,2] <- cumsum(walk[, 2]) walk [,3] <-seq(step)

Klicken Sie zum Ausführen auf Enter.

3. Senden Sie das R-Objekt des Walks als Matrix an [Book1]Sheet1!A:C.

Send data rconsole rwk.png

4. Markieren Sie Spalte B in Book1_sheet1, um ein Liniendiagramm zu erstellen, und verwenden Sie die Daten in Spalte C, um die Farbe des Liniendiagramms festzulegen. Passen Sie die Farbskala und den Farbton benutzerdefiniert an.

Randomwork.png

Globale Minima durch simuliertes Annealing suchen

Bitte installieren Sie das Paket GenSA , bevor Sie das Beispiel ausführen.

Das simulierte Annealing ist eine Methode zum Suchen einer Lösung mit globalen Minima für nichtlineare Probleme. Wir verwenden hier das Paket GenSA in R, um den Prozess des simulierten Annealings mit unserer Testfunktion durchzuführen, um die globalen Minima von Z in Bereich X,Y\in [-10,10] zu suchen.

z=0,26(x^2+y^2)-0,48xy

Nach der Berechnung in R senden Sie die Datenergebnisse an Origin und erstellen ein Konturdiagramm, um die Ergebnisse zu visualisieren. Erstellen Sie ein Liniendiagramm, um das Minimum, das bei jedem Iterationsschritt ermittelt wurde, darzustellen.

1. Wählen Sie Konnektivität: R-Konsole im Origin-Menü, fügen Sie das Skript unten im Skripteingabefeld ein und klicken Sie auf Enter, um es auszuführen.

fr <- function(vx){ x <- vx[1] y <- vx[2] 0.26*(x^2+y^2)-0.48*x*y} set.seed(25) dimension <-2 global.min <- 0 tol <- 1e-13 lower <- c(-10,-10) upper <- c(10,10) out <- GenSA(lower = lower, upper = upper, fn = fr, control=list(temperature=200,threshold.stop=global.min+tol,verbose=TRUE,max.call=1E3)) #output the results sprintf("Global minima for the function is:%.3f at (%.3f,%.3f)", out$value, out$par[1],out$par[2])

Die Ergebnisausgabe sollte folgendermaßen aussehen:

[1] "Global minima for the function is: 0.000 at (0.000, 0.000)"

Um eine Anzeige des Konturdiagramms mit dem Punkt des Minimums zu erstellen:

2. Klicken auf die Schaltfläche 3D-Funktionsdiagramm Button New 3D Plot.png und setzen Sie die Funktion, wie im Diagramm unten zu sehen:

Func plot r.png

3. Klicken Sie auf OK, um das 3D-Oberflächendiagramm zu erzeugen. Sie können die Farbabbildung im Dialog Details Zeichnung: Farbpalette festlegen.
4. Erstellen Sie eine neue Arbeitsmappe mit 3 Spalten, denen XYZ zugewiesen ist, und geben Sie die Daten (0,0,0) in die erste Zeile ein. Ziehen Sie den Datensatz in das 3D-Diagramm. Ein Punktdiagramm wird zur Grafik hinzugefügt. Sie können den Beschriftungstext für das Punktdiagramm im Dialog Details Zeichnung: Beschriftung weiter bearbeiten.

Minimum label.png

Das fertige Diagramm sieht in etwa folgendermaßen aus:

Minimum.png

Manova-Analyse

In diesem Beispiel wird eine multivariate Analyse für die Personalkosten einer Gruppe in einem Pflegeheim gemacht. Es gibt 2 Prädiktoren: Eigentum und Zertifizierung, sowie 3 Antwortvariablen: Kosten der Pflege, Kosten der Haushaltsführung und Wartungskosten. Um zu erfahren, ob die Personalkosten für Eigentum bzw. Zertifizierung unterschiedlich sind, führen wir eine MANOVA für die Daten mit der R-Konsole durch.

  1. Laden Sie die Daten LaborCost.zip herunter und entpacken Sie das Paket, um die Datei LaborCost.dat zu extrahieren. Erstellen Sie dann eine neue Arbeitsmappe in Origin und importieren Sie die Daten per Drag&Drop.
  2. Klicken Sie auf die Schaltfläche Select.png und markieren Sie die ersten fünf Spalten im Arbeitsblatt. Wählen Sie Daten als Datenrahmen, geben Sie den Objektnamen CostData im Feld R-Objekt ein und klicken Sie auf Send data.png, u die Daten aus Origin an den R-Raum weiterzugeben.
  3. Führen Sie das R-Skript im Eingabefeld aus:
Cost<-data.matrix(CostData[,3:5]) Ownership<-CostData[,1] Certification<-CostData[,2] fit <- manova(Cost ~ Ownership*Certification) summary(fit, test="Pillai")

Sie können die Ergebnisse in einem Datenrahmen verwandeln und dann den Freiheitsgrad df an das Origin-Arbeitsblatt als Datenrahmen weitergeben.

sum<-summary(fit, test="Pillai") df<-as.data.frame(sum$stats)
Manova df.png

Weil der p-Wert für Eigentum kleiner als 0,01 ist, bestehen keine Eigentumseffekte auf die durchschnittlichen Personalkosten. Der p-Wert für die Zertifizierung beträgt jedoch 0,089. Das bedeutet, dass das Ergebnis fast signifikant ist und es einen Unterschied bei den durchschnittlichen Personalkosten unter den 3 Zertifizierungstypen geben könnte.