三 三维荧光平行因子学习记录--使用DOMfluor工具箱进行平行因子分析( 二 )


运行完之后我们输入:
PlotLoadings(Test1,2)
将创建一个图,显示模型的分数和载荷,绘制两个组件的发射和激发载荷 。图a显示了两种成分的浓度在样品之间的变化 。检查载荷是否合理,即它们是否平滑,光谱外观是否符合您对数据的理解 。
同时也可以输入以下代码,查看函数相关信息:
PlotLeverage(Test1,2)
将创建一个显示杠杆的图形,在图中,我们去寻找具有极端杠杆的样本,这些杠杆指示极端和潜在的边缘样本 。
使用函数可以创建杠杆图和加载图的组合,我们输入:
PlotLL(Test1,2)
现在尝试为其他模型(3、4、5、6和7个组件)创建相同的图 。在检查加载曲线图之后,我们显然需要开始约束模型 。有些负荷是负的 。例如,在4组件模型中,其中一个组件的a值为负值,似乎抵消了其他组件中的一个 。这些“错误”荷载可能是因为使用了错误数量的组件,但在假设四个组件有效的情况下进行分析,通过强制参数为非负来避免问题是合理的 。在一个更为最终的模型中,关注为什么模型需要这样一个附加约束来提供具有化学意义的结果是有用的,但这在现阶段是不必要的 。
重新运行测试,但输入非负性约束 :
[Test2] = OutlierTest(CutData,2,1,7,'Yes','No');
现在绘制负载和杠杆 。(可以通过绘制两个测试的结果来比较应用非负性约束的效果,例如,对于四组件模型类型(Test1,4),然后是(Test2,4)) 。然后绘制其他模型的载荷和杠杆 。,下面我们来检查一下Test2,输入:
PlotLL(Test2,4)
杠杆图似乎表明,样本5、21、30、40和53可能存在问题 。因此,我们现在应该尝试绘制这些样本的EEM,并将它们与其他样本进行比较,看看它们是否包含一些测量误差 。(例如,使用(1,,'R.U.),查看这些样本是否与其他样本不同) 。只有样本5和30是带有测量误差的明显异常值,所以我们输入:
[Test3]=RemoveOutliers(CutData,[5 30],[],[])
再输入:
[Test3]=OutlierTest(Test3,1,1,7,'No','No')
然后绘制每个模型的杠杆和载荷数据,例如(Test2,3) 。杠杆似乎略有改善 。然而,正如前面提到的,我们仍然存在负浓度问题 。这可以通过对模型应用非负性约束来解决 。我们可以重新运行模型,并使用非负性约束覆盖Test3,我们输入:
[Test3] = OutlierTest(removal,1,1,7,'Yes','No');
此时我们再检查以下Test3:
PlotLL(Test3,4)
再次尝试绘制所有模型的载荷和杠杆(例如(Test3,3)) 。现在,载荷似乎更符合逻辑(即,它们不显示负荧光) 。
第五步:确定组分数
我们将使用的下一个函数是,它创建了一系列图表,我们可以通过查看残差(测量值减去建模数据)来评估模型拟合度,我们输入:
EvalModel(Test3,4)
输入下面的代码来绘制曲面图(曲面图会一直绘制到最后一个样本):
EvalModelSurf(Test3,4)
并检查为四分量模型绘制的图 。特别是检查剩余EEM 。理想情况下,这不应包含任何系统信号,且主要由仪器噪声组成 。可以看出,四组分模型通常适用于大多数样本 。然而,有少数样品在325 nm激发和400 nm发射区域具有无法解释的荧光 。接下来,使用相同的功能评估其他模型(2、3、5和6个组件) 。还可以尝试在去除异常值之前绘制拟合模型的结果(例如Test2),并检查已识别的异常值样本的残差 。