Protokoll löschen() ;
/ ******************************************************** ****************
Dieses JMP- und R-Integrationsskript und -beispiel verwendet das
Alaska-Pipeline-Daten, die aus Ultraschall vor Ort bestehen
Messungen der Defekttiefe in der Alaska-Pipeline.
Die Tiefe der Defekte wurde dann im Labor erneut gemessen.
Diese Messungen wurden in sechs verschiedenen Chargen durchgeführt.
Die Daten wurden analysiert, um die Vorspannung des Feldes zu kalibrieren
Messungen relativ zu den Labormessungen.
Bei dieser Analyse ist die Feldmessung die Antwortvariable
und die Labormessung ist die Prädiktorvariable.
Diese Daten wurden von Harry Berger zur Verfügung gestellt, der zu dieser Zeit Wissenschaftler im Büro des Direktors des Instituts war
of Materials Research (jetzt Materialwissenschaft und Werkstofftechnik)
Labor) des NIST.
Diese Daten wurden für eine Studie verwendet, die für die Materialien durchgeführt wurde
Transportbüro des US-Verkehrsministeriums.
Die Datenquelle war der folgende Link
http://www.itl.nist.gov/div898/handbook/pmd/section6/pmd621.htm
********************************************************** ************* /
R Init (); / * startet die Verbindung zu R * /
R Senden ("\ [
# Pakete laden
Bibliothek (Gitter)
## Fallstudie zur Ultraschallkalibrierung der Alaska-Pipeline
## Vektor mit abhängiger Variable, Feldfehlergröße erstellen
fdef = c (18,38,15,20,18,36,20,43,45,65,43,38,33,10,50,10,50,15,53,60,18, 38,15,
20,18,36,20,43,45,65,43,38,33,10,50,10,50,15,53,15,37,15, 18,11,35,20,40,50, 36,
50,38,10,75,10,85,13,50,58,58,48,12,63,10, 63,13,28,35,63,13,45,9,20,18,35, 20,
38,50,70,40,21,19,10,33,16,5, 32,23,30,45,33,25,12,53,36,5,63,43,25,73,45, 52,
9,30,22,56,15,45)
## Vektor mit unabhängiger Variable erstellen, Laborfehlergröße
ldef = c (20,2,56,0,12,5,21,2,15,5,39,0,21,0,38,2,55,6,81,9,39,5,56,4,40,5,
14,3,81,5,13,7,81,5,20,5,56,0,80,7,7,20,0,56,5,12,1,19,6,15,5,38,8, 19,5,38,0,
55,0,80,0,0,38,5,55,8,38,8,12,5,80,4,4,12,7,80,9,9,20,5,55,0, 19,0,55,5,12,3,18,4,
11,5,38,0,18,5,38,0,55,3,38,7,54,5,38,0,12,0, 81,7,11,5,80,0,18,3,55,3,80,2,
80,7,55,8,15,0,81,0,12,0,81,4,12,5, 38,2,54,2,79,3,18,2,55,5,11,4,19,5,15,5,
37,5,19,5,37,5,55,5,80,0, 37,5,15,5,23,7,9,8,40,8,1,7,5,4,3,36,5,26,3,30,4,50,2,
30,1,25,5, 13,8,58,9,40,0,6,0,72,5,38,8,19,4,81,5,77,4,54,6,6,8,32,6,19,8,
58,8,12,9,49,0)
## Vektor mit Chargenindikator erstellen
bat = c (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, 3,4,4,4,4,4,4,4,
4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,
5,6,6,6,6,6,6,6)
## Speichern Sie Daten in einem Datenrahmen und bestimmen Sie die Anzahl der Beobachtungen
Batch <- as.factor (Fledermaus)
df <- data.frame (fdef, ldef, Batch)
Länge <- Länge (Charge)
xax = "Laborfehlergröße"
yax = "Feldfehlergröße"
title = "Ultraschallkalibrierungsdaten der Alaska-Pipeline"
Plot (ldef, fdef, xlab = xax, ylab = yax, main = title, col = "blue")
## Bedingtes Diagramm erstellen
trellis.device (new = TRUE, col = FALSE)
FIG = xyplot (fdef ~ ldef | Batch,
Daten = df,
main = title,
Layout = c (3,2), Spalte = 4,
xlab = Liste (xax, cex = 1.1), ylab = Liste (yax, cex = 1.1),
strip = function (...) strip.default (..., strip.names = c (T, T)))
FEIGE
## Chargenanalyse
x = ldef
y = fdef
xydf = data.frame (x, y, Batch)
out = by (xydf, xydf $ Batch, Funktion (x) lm (y ~ x, Daten = x))
lapply (raus, Zusammenfassung)
#> Reststandardfehler: 1,35 bei 5 Freiheitsgraden
#> Mehrfaches R-Quadrat: 0,9956, angepasstes R-Quadrat: 0,9947
#> F-Statistik: 1128 auf 1 und 5 DF, p-Wert: 4.401e-07
## Batch-Regressionsergebnisse speichern
outs = sapply (out, Zusammenfassung)
outc = sapply (out, coef)
fitse = t (outs [6,])
fitse = c (fitse [[1]], fitse [[2]], fitse [[3]], fitse [[4]], fitse [[5]], fitse [[6]])
r2 = t (outs [8,])
r2 = c (r2 [[1]], r2 [[2]], r2 [[3]], r2 [[4]], r2 [[5]], r2 [[6]])
b0 = t (outc [1,])
b1 = t (outc [2,])
## Chargendiagramme
par (mfrow = c (2,2))
id = c (1: Länge (b0))
xax2 = "Chargennummer"
Diagramm (id, r2, xlab = xax2, ylab = "Korrelation", ylim = c (0,8,1), col = "blau", pch = 16, cex = 1,25)
abline (h = Mittelwert (r2))
Diagramm (id, b0 [1,], xlab = xax2, ylab = "Intercept", ylim = c (0,8), col = "blau", pch = 16, cex = 1,25)
abline (h = Mittelwert (b0))
Diagramm (id, b1 [1,], xlab = xax2, ylab = "Steigung", ylim = c (0,5, 0,9), col = "blau", pch = 16, cex = 1,25)
abline (h = Mittelwert (b1))
Diagramm (id, fitse, xlab = xax2, ylab = "RESSD", ylim = c (0,7), col = "blau", pch = 16, cex = 1,25)
abline (h = Mittelwert (fitse))
par (mfrow = c (1,1))
## Gerade Regressionsanalyse
out = lm (fdef ~ ldef)
Zusammenfassung (out)
## Restliches 6-Grundstück
par (mfrow = c (3,2))
Diagramm (ldef, fdef, xlab = "Lab Defect Size",
ylab = "Feldfehlergröße", main = "Feldfehlergröße vs. Laborfehlergröße")
abline (reg = out)
Diagramm (ldef, out $ Residuen, ylab = "Residuen", xlab = "Lab Defect Size",
main = "Residuen vs Lab Defect Size")
plot (out $ fit.values, out $ resids, ylab = "Residuals", xlab = "Predicted",
main = "Residual vs Predicted")
Plot (aus $ Residuen [2: len], aus $ Residuen [1: len-1], ylab = "Residuen",
xlab = "Lag 1 Residuals", main = "Lag Plot")
hist (aus $ Residuen, ylab = "Frequenz", xlab = "Residuen", main = "Histogramm")
qqnorm (aus $ Residuen, main = "Normal Probability Plot")
## Generieren Sie einen Plot von Rohdaten mit überlagerter Regressionsfunktion
par (mfrow = c (1,1), cex = 1,25)
Diagramm (ldef, fdef, ylab = "Feldfehlergröße", xlab = "Laborfehlergröße", col = "blau")
abline (reg = out)
Titel ("Alaska Pipeline Ultrasonic Calibration Data", Zeile = 2)
Titel ("Mit ungewichteter Linie", Linie = 1)
## Residuen gegen Laborfehlergröße auftragen
par (mfrow = c (1,1), cex = 1,25)
Diagramm (ldef, out $ Residuen, xlab = "Lab Defect Size", ylab = "Residuals",
main = "Alaska Pipeline-Datenreste - ungewichtete Anpassung", cex = 1,25, col = "blau")
abline (h = 0)
## Transformationen der Antwortvariablen
lnfdef = log (fdef)
sqrtfdef = sqrt (fdef)
invfdef = 1 / fdef
## Transformierte Antwortvariable zeichnen
par (mfrow = c (2,2))
xax = "Laborfehlergröße"
Diagramm (ldef, fdef, xlab = xax, ylab = "Feldfehlergröße", col = "blau")
Diagramm (ldef, sqrtfdef, xlab = xax, ylab = "Sqrt (Feldfehlergröße)", col = "blau")
Diagramm (ldef, lnfdef, xlab = xax, ylab = "ln (Feldfehlergröße)", col = "blau")
Diagramm (ldef, invfdef, xlab = xax, ylab = "1 / Feldfehlergröße", col = "blau")
Titel (main = "Transformationen der Antwortvariablen", Outer = TRUE, Zeile = -2)
## Transformationen der Prädiktorvariablen
lnldef = log (ldef)
sqrtldef = sqrt (ldef)
invldef = 1 / ldef
## Transformierte Prädiktorvariable zeichnen
par (mfrow = c (2,2))
yax = "ln (Feldfehlergröße)"
Diagramm (ldef, lnfdef, xlab = "Laborfehlergröße", ylab = yax, col = "blau")
Diagramm (sqrtldef, lnfdef, xlab = "Sqrt (Lab Defect Size)", ylab = yax, col = "blue")
Diagramm (lnldef, lnfdef, xlab = "ln (Laborfehlergröße)", ylab = yax, col = "blau")
Diagramm (invldef, lnfdef, xlab = "1 / Lab Defect Size", ylab = yax, col = "blue")
Titel (main = "Transformationen der Prädiktorvariablen", Outer = TRUE, Zeile = -2)
] ");
/ * JMP-Datentabelle aus den R-Datenrahmen erstellen * /
Rdf = R Get (df);
Rdf << NewDataView << Set Name ("R Data Frame Table");
/ ** Verwenden Sie Graph Builder für dtrdf, um Streudiagramme zu erstellen ** /
/ * Legen Sie die Eigenschaft für die Wertreihenfolge für die Spalte Stapel so fest
übereinstimmend Anzeige des Gitterplots in R.
* /
Rdf: Batch << Set-Eigenschaft ("Value Ordering", Eval ({4, 5, 6, 1, 2, 3})) <<
Wertelabels (
{1 = "Charge: 1", 2 = "Charge: 2", 3 = "Charge: 3", 4 = "Charge: 4", 5 =
"Charge: 5", 6 = "Charge: 6"}
) <<
Wertelabels verwenden (1)
;;
/ ** Verwenden Sie Zeilenzustände, um die Plotmarkierungen von durchgehend zu leer zu ändern, damit sie mit dem R-Plot übereinstimmen. *** /
Rdf << Zeilenzustände festlegen (
[128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128
128, 128]
)
;;
Rdf << Graph Builder (
Größe (457, 408),
Systemsteuerung anzeigen (0),
Variablen (X (: ldef), Y (: fdef), Wrap (: Stapel, Ebenen pro Zeile (3))),
Elemente (Punkte (X, Y, Legende (3))),
SendToReport (
Versand(
{},
"Graphentitel",
TextEditBox,
{Text einstellen ("Alsaka Pipeline Ultrasonic Calibration Data - JMP")}
),
Versand ({}, "X-Titel", TextEditBox, {Text festlegen ("Lab Defect Size")}),
Versand(
{},
"Y Titel",
TextEditBox,
{Text einstellen ("ln (Feldfehlergröße)")}
),
Versand ({}, "Graph Builder", FrameBox (1), {Marker Size (1)}),
Versand ({}, "Graph Builder", FrameBox (2), {Marker Size (1)}),
Versand ({}, "Graph Builder", FrameBox (3), {Marker Size (1)}),
Versand ({}, "Graph Builder", FrameBox (4), {Marker Size (1)}),
Versand ({}, "Graph Builder", FrameBox (5), {Marker Size (1)}),
Versand ({}, "Graph Builder", FrameBox (6), {Marker Size (1)})
)
);
/ * Diagramme erstellen und Regression passt zu JMP-Analyseplattformen * /
/ * Holen Sie sich das FIG-Diagramm von R und zeigen Sie es in JMP an
* /
R Senden ("\ [
## Bedingtes Diagramm erstellen
trellis.device (new = TRUE, col = FALSE)
FIG = xyplot (fdef ~ ldef | Batch,
Daten = df,
main = title,
Layout = c (3,2), Spalte = 4,
xlab = Liste (xax, cex = 1.1), ylab = Liste (yax, cex = 1.1),
strip = function (...) strip.default (..., strip.names = c (T, T)))
FEIGE
] ");
Bild = R Grafik abrufen ("png");
Neues Fenster ("Ultraschallkalibrierungsdaten der Alaska-Pipeline von R in JMP", Bild);
Warte (10);
/ * Box-Cox-Linearitätsdiagramm * /
R Senden ("\ [
## Transformationen der Prädiktorvariablen
lnldef = log (ldef)
sqrtldef = sqrt (ldef)
invldef = 1 / ldef
## Box-Cox-Linearitätsdiagramm
für (i in (0: 100)) {
Alpha = -2 + 4 * i / 100
if (alpha! = 0) {
tx = ((ldef ** alpha) - 1) / alpha
temp = lm (lnfdef ~ tx)
temps = Zusammenfassung (temp)
if (i == 0) {rsq = temps $ r.squared
alp = alpha}
sonst {rsq = rbind (rsq, temps $ r.squared)
alp = rbind (alp, alpha)}
}}
rcor = sqrt (rsq)
par (mfrow = c (1,1), cex = 1,25)
Diagramm (alp, rcor, Typ = "l", xlab = "Alpha", ylab = "Korrelation",
main = "Box-Cox-Linearitätsdiagramm im (Feld-) Labor",
ylim = c (0,6,1), col = "blau")
#Korrelations- und Alpha-Vektoren in BCP-Datenrahmen erstellen
Corr <- as.vector (rcor)
Alpha <- as.vector (alp)
BCP <- data.frame (Corr, Alpha)
] ");
RBCP = R Get (BCP);
RBCP << NewDataView << Set Name ("R Datenrahmen der Alpha-Korrelationstabelle");
/ * Graph Box-Cox Linearitätsdiagramm von Graph Builder * /
RBCP << Graph Builder (
Größe (421, 362),
Systemsteuerung anzeigen (0),
Variablen (X (: Alpha), Y (: Corr)),
Elemente (glatter (X, Y, Legende (4))),
SendToReport (
Versand(
{},
"Graphentitel",
TextEditBox,
{Text einstellen ("Box-Cox-Linearitätsdiagramm in (Feld) - JMP")}
),
Versand ({}, "Y-Titel", TextEditBox, {Text einstellen ("Korrelation")})
)
);
BoxCox = R Get Graphics ("png");
Neues Fenster ("Box-Cox-Linearitätsdiagramm im (Feld-) Labor - Von R", BoxCox);
Warte (10);
/ *****
Rxydf <<
Graph Builder (
Größe (533, 454),
Systemsteuerung anzeigen (0),
Variablen (X (: x), Y (: y)),
Elemente (Punkte (X, Y, Legende (3))),
SendToReport (
Versand(
{},
"y",
ScaleBox,
{Beschriftungszeile (Beschriftungsausrichtung ("horizontal"))}
),
Versand(
{},
"Graphentitel",
TextEditBox,
{Text einstellen ("Alaskan Pipeline Ultrasonic Calibration Data - JMP")}
),
Versand ({}, "X-Titel", TextEditBox, {Text festlegen ("Lab Defect Size")}),
Versand(
{},
"Y Titel",
TextEditBox,
{Text drehen ("Links"), Text einstellen ("Feldfehlergröße")}
)
)
);
*** /
/ ** Passen Sie ein erstes lineares Regressionsmodell an die Daten an
Rxydf << Bivariate (
Y (: y),
X (: x),
Linie anpassen ({Linienfarbe ({57, 177, 67})}),
SendToReport (
Versand ({"Lineare Anpassung"}, "Fehlende Anpassung", OutlineBox, {Schließen (0)})
)
);
** /
R Term (); / * beendet die Verbindung zu R * /