清除日志() ;
/ ***************************************************** ****************
此JMP和R Integration脚本和示例使用
阿拉斯加管道数据包括现场超声
测量阿拉斯加管道中缺陷的深度。
然后在实验室中重新测量缺陷的深度。
这些测量分六批进行。
分析数据以校准场的偏差
测量相对于实验室测量。
在此分析中,现场测量是响应变量
而实验室测量值是预测变量。
这些数据由哈里·伯格(Harry Berger)提供,他当时是研究所所长办公室的科学家
材料研究学院(现为材料科学与工程学院)
NIST。
这些数据用于对材料进行的研究
美国运输部运输局。
数据来源来自以下链接
http://www.itl.nist.gov/div898/handbook/pmd/section6/pmd621.htm
****************************************************** ************* /
R Init(); / *开始与R * /的连接
R提交(“ \ [
#加载包
图书馆(格子)
##阿拉斯加管道超声波校准案例研究
##创建具有因变量,场缺陷大小的向量
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)
##创建具有自变量,实验室缺陷大小的向量
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)
##使用批处理指示器创建向量
蝙蝠= c(1,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,2,3,3,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,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)
##将数据保存在数据框中并确定观察次数
批次<-as.factor(bat)
df <-data.frame(fdef,ldef,Batch)
len <-length(批)
xax =“实验室缺陷大小”
yax =“场缺陷大小”
title =“阿拉斯加管道超声波校准数据”
情节(ldef,fdef,xlab = xax,ylab = yax,main = title,col =“ blue”)
##生成条件图
trellis.device(new = TRUE,col = FALSE)
图= xyplot(fdef〜ldef | Batch,
数据= DF
主要=标题,
layout = c(3,2),col = 4,
xlab = list(xax,cex = 1.1),ylab = list(yax,cex = 1.1),
strip = function(...)strip.default(...,strip.names = c(T,T)))
图
##批次分析
x = ldef
y = fdef
xydf = data.frame(x,y,Batch)
out = by(xydf,xydf $ Batch,function(x)lm(y〜x,data = x))
lapply(输出,摘要)
#>残留标准误差:5个自由度上为1.35
#>多个R平方:0.9956,已调整R平方:0.9947
#> F统计量:1和5 DF上为1128,p值:4.401e-07
##保存批次回归结果
outs = sapply(输出,摘要)
outc = sapply(out,coef)
fitse = t(输出[6,])
fitse = c(fitse [[1]],fitse [[2]],fitse [[3]],fitse [[4]],fitse [[5]],fitse [[6]])
r2 = t(输出[8,])
r2 = c(r2 [[1]],r2 [[2]],r2 [[3]],r2 [[4]],r2 [[5]],r2 [[6]])
b0 = t(outc [1,])
b1 = t(outc [2,])
##批处理图
par(mfrow = c(2,2))
id = c(1:长度(b0))
xax2 =“批号”
情节(id,r2,xlab = xax2,ylab =“ Correlation”,ylim = c(.8,1),col =“ blue”,pch = 16,cex = 1.25)
绝对值(h =平均值(r2))
plot(id,b0 [1,],xlab = xax2,ylab =“ Intercept”,ylim = c(0,8),col =“ blue”,pch = 16,cex = 1.25)
abline(h =平均值(b0))
plot(id,b1 [1,],xlab = xax2,ylab =“ Slope”,ylim = c(.5,.9),col =“ blue”,pch = 16,cex = 1.25)
abline(h =平均值(b1))
情节(id,fitse,xlab = xax2,ylab =“ RESSD”,ylim = c(0,7),col =“ blue”,pch = 16,cex = 1.25)
abline(h =平均值(适合))
par(mfrow = c(1,1))
##直线回归分析
输出= lm(fdef〜ldef)
摘要(出)
##剩余6幅图
par(mfrow = c(3,2))
plot(ldef,fdef,xlab =“ Lab Defect Size”,
ylab =“ Field Defect Size”,main =“ Field Defect Size vs Lab Defect Size”)
abline(reg = out)
plot(ldef,out $ residuals,ylab =“ Residuals”,xlab =“ Lab Defect Size”,
main =“ Residuals vs Lab Defect Size”)
plot(out $ fitted.values,out $ residuals,ylab =“ Residuals”,xlab =“ Predicted”,
main =“ Residual vs Predicted”)
情节(out $ residuals [2:len],out $ residuals [1:len-1],ylab =“ Residuals”,
xlab =“滞后1个残基”,main =“滞后图”)
hist(out $ residuals,ylab =“ Frequency”,xlab =“ Residuals”,main =“ Histogram”)
qqnorm(out $ residuals,main =“正态概率图”)
##使用叠加回归函数生成原始数据图
par(mfrow = c(1,1),cex = 1.25)
plot(ldef,fdef,ylab =“ Field Defect Size”,xlab =“ Lab Defect Size”,col =“ blue”)
abline(reg = out)
标题(“阿拉斯加管道超声波校准数据”,第2行)
标题(“有不加权线”,第1行)
##绘制残差与实验室缺陷大小的关系
par(mfrow = c(1,1),cex = 1.25)
plot(ldef,out $ residuals,xlab =“ Lab Defect Size”,ylab =“ Residuals ,,
main =“阿拉斯加管道数据残差-未加权拟合”,cex = 1.25,col =“ blue”)
背斜(h = 0)
##响应变量的转换
lnfdef = log(fdef)
sqrtfdef = sqrt(fdef)
invfdef = 1 / fdef
##绘制转换后的响应变量
par(mfrow = c(2,2))
xax =“实验室缺陷大小”
情节(ldef,fdef,xlab = xax,ylab =“ Field Defect Size”,col =“ blue”)
情节(ldef,sqrtfdef,xlab = xax,ylab =“ Sqrt(Field Defect Size)”,col =“ blue”)
情节(ldef,lnfdef,xlab = xax,ylab =“ ln(Field Defect Size)”,col =“ blue”)
情节(ldef,invfdef,xlab = xax,ylab =“ 1 / Field Defect Size”,col =“ blue”)
title(main =“响应变量的转换”,outer = TRUE,line = -2)
##预测变量的转换
lnldef = log(ldef)
sqrtldef = sqrt(ldef)
invldef = 1 / ldef
##绘制转换后的预测变量
par(mfrow = c(2,2))
yax =“ ln(场缺陷尺寸)”
图(ldef,lnfdef,xlab =“ Lab Defect Size”,ylab = yax,col =“ blue”)
情节(sqrtldef,lnfdef,xlab =“ Sqrt(Lab Defect Size)”,ylab = yax,col =“ blue”)
情节(lnldef,lnfdef,xlab =“ ln(Lab Defect Size)”,ylab = yax,col =“ blue”)
情节(invldef,lnfdef,xlab =“ 1 / Lab Defect Size”,ylab = yax,col =“ blue”)
title(main =“ Predictor变量的转换”,outer = TRUE,line = -2)
] \“);
/ *从R个数据帧创建JMP数据表* /
Rdf = R Get(df);
Rdf << NewDataView <<设置名称(“ R数据帧表”);
/ **在dtrdf上使用Graph Builder生成散点图** /
/ *设置“批次”列的“值排序”属性,以便它
匹配显示R中的网格图
* /
Rdf:Batch << Set Property(“ Value Ordering”,Eval({4,5,6,1,2,3}))<<
价值标签(
{1 =“批处理:1”,2 =“批处理:2”,3 =“批处理:3”,4 =“批处理:4”,5 =
“批次:5”,6 =“批次:6”}
)<<
使用价值标签(1)
;
/ **使用行状态将图标记从实线更改为空白以匹配R图*** /
Rdf <<设置行状态(
[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 <<图形生成器(
大小(457,408),
显示控制面板(0),
变量(X(:ldef),Y(:fdef),Wrap(:Batch,每行级别(3))),
Elements(点(X,Y,Legend(3))),
SendToReport(
调度(
{},
“图标题”,
TextEditBox,
{设置文本(“ Alsaka管道超声校准数据-JMP”)}
),
Dispatch({},“ X title”,TextEditBox,{Set Text(“ Lab Defect Size”)}),
调度(
{},
“ Y标题”,
TextEditBox,
{设置文本(“ ln(场缺陷大小)”)}
),
Dispatch({},“ Graph Builder”,FrameBox(1),{Marker Size(1)}),
Dispatch({},“ Graph Builder”,FrameBox(2),{Marker Size(1)}),
Dispatch({},“ Graph Builder”,FrameBox(3),{Marker Size(1)}),
Dispatch({},“ Graph Builder”,FrameBox(4),{Marker Size(1)}),
Dispatch({},“ Graph Builder”,FrameBox(5),{Marker Size(1)}),
Dispatch({},“ Graph Builder”,FrameBox(6),{Marker Size(1}})
)
);
/ *使用JMP Analysis平台生成图和回归拟合* /
/ *从R中获取FIG图并显示在JMP中
* /
R提交(“ \ [
##生成条件图
trellis.device(new = TRUE,col = FALSE)
图= xyplot(fdef〜ldef | Batch,
数据= DF
主要=标题,
layout = c(3,2),col = 4,
xlab = list(xax,cex = 1.1),ylab = list(yax,cex = 1.1),
strip = function(...)strip.default(...,strip.names = c(T,T)))
图
] \“);
图片= R Get Graphics(“ png”);
新窗口(“从R到JMP的阿拉斯加管道超声波校准数据”,图片);
等待(10);
/ * Box-Cox线性图* /
R提交(“ \ [
##预测变量的转换
lnldef = log(ldef)
sqrtldef = sqrt(ldef)
invldef = 1 / ldef
## Box-Cox线性图
对于(i in(0:100)){
alpha = -2 + 4 * i / 100
如果(alpha!= 0){
tx =(((ldef ** alpha)-1)/ alpha
温度= lm(lnfdef〜tx)
临时=摘要(临时)
if(i == 0){rsq = temps $ r.squared
alp = alpha}
否则{rsq = rbind(rsq,temps $ r.squared)
alp = rbind(alp,alpha)}
}}
rcor = sqrt(rsq)
par(mfrow = c(1,1),cex = 1.25)
plot(alp,rcor,type =“ l”,xlab =“ Alpha”,ylab =“ Correlation”,
main =“ Box-Cox线性图ln(Field)Lab”,
ylim = c(.6,1),col =“ blue”)
#将相关和Alpha向量创建到BCP数据帧中
Corr <-as.vector(rcor)
Alpha <-as.vector(alp)
BCP <-data.frame(Corr,Alpha)
] \“);
RBCP = R Get(BCP);
RBCP << NewDataView <<设置名称(“ Alpha-Correlation表的R数据帧”);
/ *来自Graph Builder的Graph Box-Cox线性图* /
RBCP <<图形生成器(
大小(421,362),
显示控制面板(0),
变量(X(:Alpha),Y(:Corr)),
Elements(更平滑(X,Y,Legend(4))),
SendToReport(
调度(
{},
“图标题”,
TextEditBox,
{设置文本(“ Box-Cox线性图ln(Field)-JMP”)}
),
Dispatch({},“ Y title”,TextEditBox,{Set Text(“ Correlation”)})
)
);
BoxCox = R获取图形(“ png”);
新窗口(“ Box-Cox线性图ln(Field)Lab-从R开始”,BoxCox);
等待(10);
/ *****
Rxydf <<
图形生成器(
大小(533,454),
显示控制面板(0),
变量(X(:x),Y(:y)),
Elements(点(X,Y,Legend(3))),
SendToReport(
调度(
{},
“ y”,
ScaleBox,
{标签行(标签方向(“水平”))}
),
调度(
{},
“图标题”,
TextEditBox,
{设置文本(“阿拉斯加管道超声波校准数据-JMP”)}
),
Dispatch({},“ X title”,TextEditBox,{Set Text(“ Lab Defect Size”)})),
调度(
{},
“ Y标题”,
TextEditBox,
{旋转文本(“左”),设置文本(“字段缺陷大小”))}
)
)
);
*** /
/ **对数据进行第一个初始回归直线模型拟合
Rxydf <<双变量(
Y(:y),
X(:x),
拟合线({Line Color({57,177,67})}),
SendToReport(
调度({“线性拟合”},“缺乏拟合”,OutlineBox,{Close(0}}))
)
);
** /
R Term(); / *终止与R的连接* /