borrar registro() ;
/ ********************************************** ****************
Este ejemplo y script de integración de JMP y R utiliza la
Datos del oleoducto de Alaska que consisten en ultrasonidos en el campo
mediciones de la profundidad de los defectos en el oleoducto de Alaska.
Luego se volvió a medir la profundidad de los defectos en el laboratorio.
Estas mediciones se realizaron en seis lotes diferentes.
Los datos fueron analizados para calibrar el sesgo del campo.
medidas relativas a las medidas de laboratorio.
En este análisis, la medición de campo es la variable de respuesta
y la medida de laboratorio es la variable predictora.
Estos datos fueron proporcionados por Harry Berger, quien en ese momento era científico de la Oficina del Director del Instituto.
de Investigación de Materiales (ahora Ciencia e Ingeniería de Materiales
Laboratorio) del NIST.
Estos datos se utilizaron para un estudio realizado para los Materiales
Oficina de Transporte del Departamento de Transporte de EE. UU.
La fuente de los datos provino del siguiente enlace
http://www.itl.nist.gov/div898/handbook/pmd/section6/pmd621.htm
************************************************ ************* /
R Init (); / * inicia la conexión a R * /
R Enviar ("\ [
# cargar paquetes
biblioteca (celosía)
## Estudio de caso de calibración ultrasónica de tuberías de Alaska
## Crear vector con variable dependiente, tamaño de defecto de campo
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)
## Crear vector con variable independiente, tamaño de defecto de laboratorio
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,20.0,56.5,12.1,19.6,15.5,38.8, 19.5,38.0,
55.0,80.0,38.5,55.8,38.8,12.5,80.4,12.7,80.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, 17.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)
## Crear vector con indicador de lote
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,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,6,6,6,6,6,6,6)
## Guarda datos en un marco de datos y determina el número de observaciones
Lote <- as.factor (bat)
df <- data.frame (fdef, ldef, Batch)
len <- longitud (Lote)
xax = "Tamaño del defecto de laboratorio"
yax = "Tamaño del defecto de campo"
title = "Datos de calibración ultrasónica de tuberías de Alaska"
plot (ldef, fdef, xlab = xax, ylab = yax, main = title, col = "blue")
## Generar gráfico condicional
trellis.device (nuevo = VERDADERO, col = FALSO)
FIG = xyplot (fdef ~ ldef | Lote,
datos = df,
principal = título,
diseño = c (3,2), col = 4,
xlab = lista (xax, cex = 1.1), ylab = lista (yax, cex = 1.1),
strip = función (...) strip.default (..., strip.names = c (T, T)))
higo
## Análisis por lotes
x = ldef
y = fdef
xydf = data.frame (x, y, Lote)
out = by (xydf, xydf $ Lote, función (x) lm (y ~ x, datos = x))
lapply (fuera, resumen)
#> Error estándar residual: 1,35 en 5 grados de libertad
#> R-cuadrado múltiple: 0.9956, R-cuadrado ajustado: 0.9947
#> Estadístico F: 1128 en 1 y 5 DF, valor p: 4.401e-07
## Guardar los resultados de la regresión por lotes
outs = sapply (out, resumen)
outc = sapply (fuera, coef)
fitse = t (salidas [6,])
fitse = c (fitse [[1]], fitse [[2]], fitse [[3]], fitse [[4]], fitse [[5]], fitse [[6]])
r2 = t (salidas [8,])
r2 = c (r2 [[1]], r2 [[2]], r2 [[3]], r2 [[4]], r2 [[5]], r2 [[6]])
b0 = t (outc [1,])
b1 = t (outc [2,])
## Parcelas por lotes
par (mfrow = c (2,2))
id = c (1: longitud (b0))
xax2 = "Número de lote"
plot (id, r2, xlab = xax2, ylab = "Correlación", ylim = c (.8,1), col = "blue", pch = 16, cex = 1.25)
abline (h = media (r2))
plot (id, b0 [1,], xlab = xax2, ylab = "Intercepción", ylim = c (0,8), col = "blue", pch = 16, cex = 1.25)
abline (h = media (b0))
plot (id, b1 [1,], xlab = xax2, ylab = "Pendiente", ylim = c (.5, .9), col = "azul", pch = 16, cex = 1.25)
abline (h = media (b1))
plot (id, fitse, xlab = xax2, ylab = "RESSD", ylim = c (0,7), col = "blue", pch = 16, cex = 1.25)
abline (h = media (ajuste))
par (mfrow = c (1,1))
## Análisis de regresión en línea recta
fuera = lm (fdef ~ ldef)
resumen (fuera)
## 6 parcelas residuales
par (mfrow = c (3,2))
plot (ldef, fdef, xlab = "Tamaño del defecto de laboratorio",
ylab = "Tamaño de defecto de campo", main = "Tamaño de defecto de campo frente a tamaño de defecto de laboratorio")
abline (reg = out)
plot (ldef, out $ residuals, ylab = "Residuals", xlab = "Lab Defect Size",
main = "Residuos vs Tamaño del defecto de laboratorio")
plot (de $ valores ajustados, de $ residuales, ylab = "Residuales", xlab = "Predecir",
main = "Residual frente a previsto")
plot (out $ residuales [2: len], out $ residuales [1: len-1], ylab = "Residuals",
xlab = "Residuos de retraso 1", main = "Gráfico de retraso")
hist (out $ residuales, ylab = "Frecuencia", xlab = "Residuales", main = "Histograma")
qqnorm (out $ residuales, main = "Gráfico de probabilidad normal")
## Genera un gráfico de datos sin procesar con función de regresión superpuesta
par (mfrow = c (1,1), cex = 1,25)
plot (ldef, fdef, ylab = "Tamaño de defecto de campo", xlab = "Tamaño de defecto de laboratorio", col = "azul")
abline (reg = out)
title ("Datos de calibración ultrasónica de tuberías de Alaska", línea = 2)
título ("Con línea no ponderada", línea = 1)
## Trace los residuos frente al tamaño del defecto de laboratorio
par (mfrow = c (1,1), cex = 1,25)
plot (ldef, out $ residuals, xlab = "Tamaño del defecto de laboratorio", ylab = "Residuals",
main = "Residuos de datos del oleoducto de Alaska: ajuste no ponderado", cex = 1,25, col = "azul")
abline (h = 0)
## Transformaciones de variable de respuesta
lnfdef = log (fdef)
sqrtfdef = sqrt (fdef)
invfdef = 1 / fdef
## Trazar variable de respuesta transformada
par (mfrow = c (2,2))
xax = "Tamaño del defecto de laboratorio"
plot (ldef, fdef, xlab = xax, ylab = "Tamaño del defecto de campo", col = "azul")
plot (ldef, sqrtfdef, xlab = xax, ylab = "Sqrt (Tamaño de defecto de campo)", col = "blue")
plot (ldef, lnfdef, xlab = xax, ylab = "ln (Tamaño del defecto de campo)", col = "blue")
plot (ldef, invfdef, xlab = xax, ylab = "1 / Tamaño del defecto de campo", col = "blue")
título (principal = "Transformaciones de la variable de respuesta", exterior = VERDADERO, línea = -2)
## Transformaciones de variable predictora
lnldef = log (ldef)
sqrtldef = sqrt (ldef)
invldef = 1 / ldef
## Trazar la variable predictora transformada
par (mfrow = c (2,2))
yax = "ln (Tamaño de defecto de campo)"
plot (ldef, lnfdef, xlab = "Tamaño de defecto de laboratorio", ylab = yax, col = "azul")
plot (sqrtldef, lnfdef, xlab = "Sqrt (Tamaño del defecto de laboratorio)", ylab = yax, col = "blue")
plot (lnldef, lnfdef, xlab = "ln (Tamaño del defecto de laboratorio)", ylab = yax, col = "blue")
plot (invldef, lnfdef, xlab = "1 / Tamaño del defecto de laboratorio", ylab = yax, col = "blue")
título (principal = "Transformaciones de la variable predictora", exterior = VERDADERO, línea = -2)
] \ ");
/ * Crear tabla de datos JMP a partir de los marcos de datos R * /
Rdf = R Obtener (df);
Rdf << NewDataView << Establecer nombre ("Tabla de marco de datos R");
/ ** Use Graph Builder en dtrdf para producir diagramas de dispersión ** /
/ * Establezca la propiedad de ordenación del valor para la columna Lote para que
coincidente mostrando el gráfico Trellis en R
* /
Rdf: Lote << Establecer propiedad ("Orden de valor", Eval ({4, 5, 6, 1, 2, 3})) <<
Etiquetas de valor (
{1 = "Lote: 1", 2 = "Lote: 2", 3 = "Lote: 3", 4 = "Lote: 4", 5 =
"Lote: 5", 6 = "Lote: 6"}
) <<
Utilice etiquetas de valor (1)
;
/ ** use estados de fila para cambiar los marcadores de la gráfica de sólido a blanco para que coincida con la gráfica R *** /
Rdf << Establecer estados de fila (
[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 << Generador de gráficos (
Tamaño (457, 408),
Mostrar panel de control (0),
Variables (X (: ldef), Y (: fdef), Ajustar (: Lote, Niveles por fila (3))),
Elementos (Puntos (X, Y, Leyenda (3))),
SendToReport (
Envío(
{},
"título del gráfico",
TextEditBox,
{Establecer texto ("Datos de calibración ultrasónica de tuberías de Alsaka - JMP")}
),
Despacho ({}, "Título X", TextEditBox, {Establecer texto ("Tamaño de defecto de laboratorio")}),
Envío(
{},
"Y título",
TextEditBox,
{Establecer texto ("ln (Tamaño de defecto de campo)")}
),
Despacho ({}, "Generador de gráficos", FrameBox (1), {Tamaño del marcador (1)}),
Despacho ({}, "Generador de gráficos", FrameBox (2), {Tamaño del marcador (1)}),
Dispatch ({}, "Graph Builder", FrameBox (3), {Marker Size (1)}),
Dispatch ({}, "Graph Builder", FrameBox (4), {Marker Size (1)}),
Despacho ({}, "Generador de gráficos", FrameBox (5), {Tamaño del marcador (1)}),
Despacho ({}, "Creador de gráficos", FrameBox (6), {Tamaño del marcador (1)})
)
);
/ * Producir gráficos y ajustes de regresión con plataformas de análisis JMP * /
/ * Obtener el gráfico FIG de R y mostrarlo en JMP
* /
R Enviar ("\ [
## Generar gráfico condicional
trellis.device (nuevo = VERDADERO, col = FALSO)
FIG = xyplot (fdef ~ ldef | Lote,
datos = df,
principal = título,
diseño = c (3,2), col = 4,
xlab = lista (xax, cex = 1.1), ylab = lista (yax, cex = 1.1),
strip = función (...) strip.default (..., strip.names = c (T, T)))
higo
] \ ");
imagen = R Obtener gráficos ("png");
Nueva ventana ("Datos de calibración ultrasónica de tuberías de Alaska de R a JMP", imagen);
Espere (10);
/ * Gráfico de linealidad de Box-Cox * /
R Enviar ("\ [
## Transformaciones de variable predictora
lnldef = log (ldef)
sqrtldef = sqrt (ldef)
invldef = 1 / ldef
## Gráfico de linealidad de Box-Cox
para (i en (0: 100)) {
alfa = -2 + 4 * i / 100
if (alpha! = 0) {
tx = ((ldef ** alpha) - 1) / alpha
temp = lm (lnfdef ~ tx)
temps = resumen (temp)
if (i == 0) {rsq = temps $ r.squared
alp = alpha}
else {rsq = rbind (rsq, temps $ r.squared)
alp = rbind (alp, alpha)}
}}
rcor = raíz cuadrada (rsq)
par (mfrow = c (1,1), cex = 1,25)
plot (alp, rcor, type = "l", xlab = "Alpha", ylab = "Correlation",
main = "Diagrama de linealidad de Box-Cox en el laboratorio (de campo)",
ylim = c (.6,1), col = "azul")
#creaate Correlación y vectores Alfa en el marco de datos BCP
Corr <- como.vector (rcor)
Alfa <- como.vector (alp)
BCP <- data.frame (Corr, Alpha)
] \ ");
RBCP = R Obtener (BCP);
RBCP << NewDataView << Establecer nombre ("Marco de datos R de la tabla de correlación alfa");
/ * Gráfico de linealidad de Graph Box-Cox de Graph Builder * /
RBCP << Generador de gráficos (
Tamaño (421, 362),
Mostrar panel de control (0),
Variables (X (: Alpha), Y (: Corr)),
Elementos (Más suave (X, Y, Legend (4))),
SendToReport (
Envío(
{},
"título del gráfico",
TextEditBox,
{Establecer texto ("Gráfico de linealidad de Box-Cox en (campo) - JMP")}
),
Despacho ({}, "Título Y", TextEditBox, {Establecer texto ("Correlación")})
)
);
BoxCox = R Obtener gráficos ("png");
Ventana nueva ("Laboratorio de diagrama de linealidad de Box-Cox en (campo) - Desde R", BoxCox);
Espere (10);
/ *****
Rxydf <<
Generador de gráficos (
Tamaño (533, 454),
Mostrar panel de control (0),
Variables (X (: x), Y (: y)),
Elementos (Puntos (X, Y, Leyenda (3))),
SendToReport (
Envío(
{},
"y",
ScaleBox,
{Fila de etiqueta (Orientación de etiqueta ("Horizontal"))}
),
Envío(
{},
"título del gráfico",
TextEditBox,
{Establecer texto ("Datos de calibración ultrasónica del oleoducto de Alaska - JMP")}
),
Despacho ({}, "Título X", TextEditBox, {Establecer texto ("Tamaño de defecto de laboratorio")}),
Envío(
{},
"Y título",
TextEditBox,
{Rotar texto ("Izquierda"), Establecer texto ("Tamaño de defecto de campo")}
)
)
);
*** /
/ ** Hacer un primer ajuste de modelo de línea recta de regresión inicial a los datos
Rxydf << Bivariante (
Y (: y),
X (: x),
Ajustar línea ({Color de línea ({57, 177, 67})}),
SendToReport (
Despacho ({"Ajuste lineal"}, "Falta de ajuste", OutlineBox, {Cerrar (0)})
)
);
** /
Término R (); / * termina la conexión a R * /