Y与X,或平行情节,或其他什么?我有一组数据,我无法想象我想要的方式。
在这个数据的最简单的再现中,我有四列数据:
- “样品”。我目前的数据中有大约1800个样本。
- “子样本”。这些被命名为“2”,“3”和“4”。我的1800个样本中的每一个都具有这三个子样本中的每一个。
- “位置”。这些被命名为“A”,“B”和“C”,但这些实际上是给予在子样本上的特定位置处测量的特定数字位置的名称。将子样本视为一英寸长的棒。位置“A”可能是子样本的1/4英寸,“B”可能是子样本的1/2英寸,“C”可能是子样本的3/4英寸。我对“A”,“B”和“C”之间的内插感兴趣,假设现在是二次关系并且知道这最多是近似值。
- “数据”。在样本中的子样本内的位置处进行的实际测量。
我通过绘制数据对比来制作一个简单的Graph Builder 位置,Y组针对子样本并覆盖样本。该图(采用Sample变量的一个较小的子集)看起来像这样:

还可以想到并行图,只需简单调用Split平台并在Graph Builder中进行一些操作,我就能想到:
对于好奇的人来说,得到这个情节的JSL看起来像这样:
Graph Builder(
Variables(
X( :C 2 ), X( :B 2, Position( 1 ) ), X( :A 2, Position( 1 ) ),
X( :C 3 ), X( :B 3, Position( 2 ) ), X( :A 3, Position( 2 ) ),
X( :C 4 ), X( :B 4, Position( 3 ) ), X( :A 4, Position( 3 ) )
),
Elements( Position( 1, 1 ), Parallel( X( 1 ), X( 2 ), X( 3 ), Legend( 8 ), Curve Lines( 1 ) ) ),
Elements( Position( 2, 1 ), Parallel( X( 1 ), X( 2 ), X( 3 ), Legend( 7 ), Curve Lines( 1 ) ) ),
Elements( Position( 3, 1 ), Parallel( X( 1 ), X( 2 ), X( 3 ), Legend( 6 ), Curve Lines( 1 ) ) )
);
但实际上这两个情节都没有我想要的所有功能。
- 平行图将图形并排放置(就好像我使用的是X组)。如前所示,我真的希望子样本垂直布局,具有类似Y的行为。
- 由于我的位置(A,B,C)代表一个基础数字维度,我想假设一个二次模型(现在)并插入A和C之间的不同位置.Y vs. 在Graph Builder中使用Smoother元素的X方法做得很好。Parallel Plot坚持将曲线渲染为更像每个平行轴之间的logisitic函数。
- 我希望图中所有样本都有一个恒定的颜色。虽然双击图例并在Y对中设置颜色相对容易 X方法,它有点单调乏味,如果我想在JSL中进行操作,则不能很好地概括。(基本上我必须运行一个循环并将每个样本的color属性插入Graph Builder表达式。)
- 我想添加一个平均预测线(实线,更粗的黑线)。这两种方法似乎都没有这种能力。我甚至都不知道从哪里开始使用Parallel。对于Y vs. XI只考虑将数据列再次拖动到Y轴,但这里的问题是两个版本的Data都希望尊重Overlay属性。我无法弄清楚如何让Overlay在其中一个视图上工作而不在另一个视图上工作。
- 理想情况下,我希望能够选择一个样本,并在图中突出显示所有三个子样本,如下所示:

这适用于并行视图,但在Y vs. X视图每个样本用9行数据表示(3个子样本* 3个位置)。单击该图中的一行将导致JMP在3个位置突出显示,但JMP不知道我希望它突出显示其他两个子样本,因为组Y被视为我的样本标识符。这可能是我写作的最难的标准。 - 坦率地说,我认为可能存在关于测量的可变性和识别外围样本甚至样本中的外围子样本的其他问题?我不确定这些方法中的任何一种都能让我在那里。
我知道JMP 14将有一个功能数据资源管理器,但我不确定它是否适用于我在这里的嵌套结构,以及每个子样本只有三个测量的事实...
我应该看看还有哪些其他选择?
Re:Y vs X,还是Parallel Plot,还是其他什么?我们正在朝着这个方向前进。通过这种方式真正理解样品到样品的情况仍然有些挑战(即样品1相对于样品2相对于样品3真正适合于哪里?)。
我的数据如何组织也存在一些误解,所以我也修改了模拟数据表。
请参阅模拟数据表和我当前的Profiler分析。无论如何,这是一个开始。
New Table( "mock data",
Add Rows( 1800 * 9 ),
New Column( "sample", Numeric, "Nominal", Format( "Best", 12 ), Formula( Sequence( 1, 1801, 1, 9 ) ) ),
New Column( "subsample", Numeric, "Nominal", Format( "Best", 12 ), Formula( Sequence( 1, 3, 1, 3 ) ) ),
New Column( "location", Numeric, "Continuous", Format( "Best", 12 ), Formula( Sequence( 1, 3 ) ) ),
New Column( "Data", Numeric, "Continuous", Format( "Best", 12 ), Formula( Abs( Random Normal() * :location ^ 2 ) ) )
);
Fit Model(
Y( :Data ),
Effects( :subsample, :location, :subsample * :location, :location * :location, :subsample * :location * :location ),
Personality( "Standard Least Squares" ),
Emphasis( "Minimal Report" ),
Run(
Profiler( 1 ),
:Data << {Effect Summary( 0 ), Summary of Fit( 0 ), Analysis of Variance( 0 ), Parameter Estimates( 0 ),
Effect Tests( 0 ), Effect Details( 0 ), Lack of Fit( 0 ), Scaled Estimates( 0 ), Plot Actual by Predicted( 0 ),
Plot Residual by Predicted( 0 ), Plot Studentized Residuals( 0 ), Plot Effect Leverage( 0 ),
Plot Residual by Normal Quantiles( 0 ), Box Cox Y Transformation( 0 )},
Automatic Recalc( 1 )
),
Local Data Filter(
Add Filter( columns( :sample ), Where( :sample == 1 ), Display( :sample, Size( 224, 315 ), List Display ) )
)
);Re:Y vs X,还是Parallel Plot,还是其他什么?所以这是一种非常不同的方法。
第一件事是将您的位置从字母更改为它代表的实际值。
现在尝试使用拟合模型。数据是你的Y而你的X'x就是这些效果。
在你跑步之前,如果B位置不在A和C的中间,那么从红色triange菜单中关闭“中心多项式”
这组术语将为您提供位置的二次方(确保位置是数字连续,而不是字母),然后位置和子样本的主要效果加上相互作用将使您对每个子样本级别具有独立的斜率和截距。
这是剖析图。 (我模拟了1800个样本,来自三个位置,每组三个是子样本)
预测分析器

因此,您可以从图形中进行插值,但是如果将预测公式保存到数据表中,则可以插入其他poisition。看看公式。 它的类型是monstorous,因为它包含每个子样本的系数。
//Mock Data Table
New Table( "mock data",
Add Rows( 1800 ),
New Column( "sample", Numeric, "Nominal", Format( "Best", 12 ), Formula( Sequence( 1, 1801 ) ) ),
New Column( "subsample", Numeric, "Nominal", Format( "Best", 12 ), Formula( Sequence( 1, 601, 1, 3 ) ) ),
New Column( "location", Numeric, "Continuous", Format( "Best", 12 ), Formula( Sequence( 1, 3 ) ) ),
New Column( "Data",Numeric,"Continuous",Format( "Best", 12 ),Formula( Abs( Random Normal() * :location ^ 2 ) )
)
);