颜色与物质浓度的辨识问题
摘要
本文是对颜色与物质浓度的辨识问题的研究,通过对溶液色度值与待测物浓
度的实验数据进行多元回归分析,建立了线性和非线性回归方程模型,给出了数
据的评价准则和模型的误差分析。
问题一:首先依据对数据初步分析,发现物质浓度与颜色读数存在着一定的
关系。利用 MATLAB 统计工具箱中的 Regress 函数求出回归系数和置信区间,并
进行残差分析,最终建立关于颜色读数和物质浓度的多元线性回归模型。基于对
模型的检验分析的基础上,给出了判别数据优劣的五大准则,分别是评估模型是
否成功的四个要素, 检验、相关系数 、 值、估计误差方差 ;再加上数
据完整性要素,即模型拟合过程中是否存在异常数据剔除。根据判别准则,数据
优劣的排序为:组胺>溴酸钾>奶中尿素>硫酸铝钾>工业碱。
问题二:首先建立二氧化硫浓度与颜色读数之间的线性回归模型,模型的残
差较大,拟合效果不佳。考虑建立非线性二次回归模型,利用 MATLAB 统计工具
箱中的 rstool 函数建模,通过剩余标准差和残差评估模型优劣。最终建立的非
线性二次回归模型中,剩余标准差很小,预测模型非常好,模型的残差相比五元
线性回归模型降低了一个数量级,因此线性二次回归模型比线性回归模型更优。
问题三:首先降低多元线性回归模型中颜色的维度来分析颜色维度对模型的
影响;然后再通过减少数据量来分析数据量对模型的影响。通过分析发现:数据
量不能低于 6,一般在 10-15 之间;颜色纬度可以降低,二纬和三纬都可以,一
纬模型就不太优甚至不成立了,而且颜色维度的大小比数据量的多少对模型的影
响更大;于是最后使用层次分析法对数据量的多少和颜色维度的大小对模型的影
响因子进行分析求解,得出了影响因子分别为 0.414 和 0.586。
关键词:多元线性回归,多元非线性二次回归,MATLAB,误差,层次分析法
1
F2RP2S
问题重述
(一)问题的背景:
比色法是目前常用的一种检测物质浓度的方法,即把待测物质制备成溶液后
滴在特定的白色试纸表面,等其充分反应以后获得一张有颜色的试纸,再把该颜
色试纸与一个标准比色卡进行对比,就可以确定待测物质的浓度档位了。由于每
个人对颜色的敏感差异和观测误差,使得这一方法在精度上受到很大影响。随着
照相技术和颜色分辨率的提高,希望建立颜色读数和物质浓度的数量关系,即只
要输入照片中的颜色读数就能够获得待测物质的浓度。试根据附件所提供的有关
颜色读数和物质浓度数据完成下列问题:
(二)问题的提出:
1.附件 Data1.xls 中分别给出了 5 种物质在不同浓度下的颜色读数,讨论从
这 5 组数据中能否确定颜色读数和物质浓度之间的关系,并给出一些准则来评价
这 5 组数据的优劣。
2.对附件 Data2.xls 中的数据,建立颜色读数和物质浓度的数学模型,并给
出模型的误差分析。
3.探讨数据量和颜色维度对模型的影响。
二、模型假设与符号说明
1.模型假设
1)反应应具有较高的灵敏度和选择性;
2)反应生成的有色化合物的组成恒定且较稳定;
3)选择适当的显色反应和控制好适宜的反应条件。
2.符号说明:见表 1
符号
含义
单位
F
P
各待测物理论浓度
(i=1,2,3,4,5,6)
各待测物实际浓度
(i=1,2,3,4,5,6)
回归方程回归系数
残差
相关系数
F 值
与 F 对应的概率
估计误差方差
2
iY/ppmmgLiY/ppmmgLCr2R2S
B
G
R
H
S
蓝色颜色值
绿色颜色值
红色颜色值
色调
饱和度
数据量
表 1 符号说明
三、问题的分析
首先对 Data1.xls 和 Data2.xls 提供的数据利用 MATLAB 进行相关性分析发
现:颜色读数(五个维度:B,G,R,H,S)对物质浓度呈现一定线性相关性,而这
一结论与文献[1]使用朗博-比尔吸收定律得到的结论一致。即物质浓度和颜色读
数之间存在一定的关系。
其次利用统计学中的多元回归[2]对给出的六组数据进行回归分析,从而得出
物质浓度与颜色读数(五维)之间的相互关系,确定它们之间合适的数学表达式
(或数学模型)即经验公式或回归方程。
针对问题一
基于对 Data1.xls 的数据分析,我们可以利用 MATLAB 统计工具箱中的
Regress 函数求出回归系数和置信区间,绘出残差图并进行残差分析,剔除置信
区间不包含零点的异常点数据,重新进行多元线性回归,能够更好地建立关于颜
色读数和物质浓度的多元线性回归模型。
基于对模型的检验分析的基础上,可以考虑评估模型是否成功的四个要素,
检验、相关系数 、 值、估计误差方差 ,相关系数 越接近 1,说明回归
方程越显著;
时拒绝 , 越大,说明回归方程越显著;
与 对应的概率
时拒绝 ,回归模型成立。估计误差方差越小,回归方
程越显著。还可以再考虑数据完整性要素,即模型拟合过程中是否存在异常数据
剔除。给出对应评价 Data1.xls 中 5 组数据优劣的五大准则,并根据 5 组数据是
否同时满足五大准则对其优劣进行判别。
针对问题二
问题二是在问题一的基础上,进一步确定颜色读数和物质浓度的数学模型-
线性回归方程。首先建立二氧化硫浓度与颜色读数之间的线性回归模型,模型的
残差较大,拟合效果不佳。
考虑建立非线性二次回归模型,利用 MATLAB 统计工具箱中的 rstool 函数建
3
mF2RP2S2R1(,1)FFknk0HFFP0H
模,通过剩余标准差和残差评估模型优劣。最终建立的非线性二次回归模型中,
剩余标准差很小,预测模型非常好,模型的残差相比多元线性回归模型降低了一
个数量级,因此线性二次回归模型比线性回归模型更优。通过两种模型的误差的
对比发现:非线性回归二次方程的精度更高。
针对问题三
问题三是讨论数据量和颜色维度对模型的影响。根据问题一和问题二的求解
结果发现:数据量的大小会影响模型的优劣;以及通过枚举法调整线性回归中变
量的数量即颜色维度发现:颜色维度的多少也会影响模型的优劣。而且数据量对
模型优劣的影响度大于颜色维度对模型优劣的影响度。因此本文提出采用层次分
析法对两者的影响因子进行分析,最终得出了数据量和颜色维度对模型优劣的影
响因子。
问题一:
四、模型的建立与求解
基于对数据的分析,本文认为有 Data1.xls 提供的 5 组数据能确定颜色读数
与物质浓度之间的关系,并建立了多元线性回归模型:
(Ⅰ)
(Ⅰ)式中 ,
,
,
, 表示方程的回归系数。
利用 matlab 统计工具箱建立多元线性回归方程:
[b, bint,r,rint,stats]=regress(Y,X,alpha)(Ⅱ)
式(Ⅱ)中 b 为回归系数,bint 为回归系数的置信区间,r 为残差,rint 为残
差的置信区间,alpha 为显著性水平。stats 包含四个统计量,相关系数 、F
值、与 F 对应的概率 p,估计误差方差。相关系数 越接近 1,说明回归方程越
显著;
时拒绝 ,F 越大,说明回归方程越显著;与 F
对应的概率
时拒绝 ,回归模型成立。估计误差方差越小,回归方程越
显著。
1.组胺浓度与颜色读数之间的关系函数:
根据组胺的实验数据(见表 2),其中 0 表示待测物质浓度为零的情形,即水溶
液,使用 matlab 对数据进行多元线性回归(代码见附录中程序 1),画出残差图
(图 1)并给出具体的残差值(表 3)和其置信区间(表 4)。
浓度(ppm) B
0
100
50
68
37
46
G
110
66
87
4
R
121
110
117
H
23
12
16
S
111
169
155
12345YCRCGCBCHCS1C2C3C4C5C2R2R1(,1)FFknk0Hp0H
25
12.5
0
100
50
25
12.5
62
66
65
35
46
60
64
99
102
110
64
87
99
101
表 2 组胺的实验数据
120
118
120
109
118
120
118
19
20
24
11
16
19
20
122
112
115
172
153
126
115
图 1 组胺浓度与颜色读数线性回归残差图
浓度(ppm)
残差值 r
0
100
50
25
12.5
0
100
50
25
12.5
-0.993129343227508
-0.083240562564029
-0.184054282892987
-0.087070619285910
0.920198815901770
0.733366635833562
0.141799543614084
-0.222352920091282
1.056506552856305
-1.282023820143920
相关系数
表 3 组胺浓度与颜色读数线性回归残差值
F 值
与 F 对应的概率
估计误差方差
P
0.999580110101 1904.461358300401 0.000000771022 1.312155935514
表 4
由表 4:相关系数 =0.999580110101,说明回归方程非常显著。F 对应的
概率
,拒绝 ,根据 F 检验,回归模型(Ⅲ)成立。
5
2R2Rp0H
(Ⅲ)
2.溴酸钾浓度与颜色读数之间的关系函数:
根据溴酸钾的实验数据(见表 5),首先利用 matlab 统计工具箱建立多元线
性回归方程(代码见附录中程序 1),画出残差图(图 2)。从残差图可以看出,
除第十个数据外,其余数据的残差离零点均较近,且残差的置信区间均包含零点,
这说明回归模型能较好的符合原始数据,而这个数据可视为异常点(剔除)。去掉
异常点之后再次进行多元线性回归,绘出残差图(图 3),并给出具体的残差值
(表 6)和其置信区间(表 7)。
浓度(ppm) B
0
100
50
25
12.5
0
100
50
25
12.5
R
145
129
145
7
141
60
145
69
145
85
144
128
145
7
141
57
146
70
87
146
表 5 溴酸钾的实验数据
G
141
133
133
136
139
141
133
133
137
138
H
22
27
27
26
26
23
27
27
26
26
S
27
241
145
133
106
28
242
151
132
102
由表 7:相关系数 =0.9985210281929,说明回归方程非常显著。F 对应
图 2 溴酸钾浓度与颜色读数线性回归残差图
6
212.76502009046822.85482678481624.48731890756042.32133683594334.59324481384081.1415190993725yBGRHS2R
图 3 剔除异常点后溴酸钾浓度与颜色读数线性回归残差图
浓度(ppm)
0
100
50
25
12.5
0
100
50
25
残差值 r
-0.311054621479073
-1.739298695133584
1.198950353741111
-2.046358165775416
-0.633956401784815
0.563887602493494
1.832705601078601
-0.844912938120160
1.980037264978989
表 6
相关系数
F 值
与 F 对应的概率 P 估计误差方差
0.9985210281929 405.0872464611553 0.0001928592100 5.8200279444505
表 7
的概率
,拒绝 ,根据 F 检验,回归模型(Ⅳ)成立。
(Ⅳ)
3.工业碱浓度与颜色读数之间的函数关系:
根据工业碱的实验数据(见表 8),使用 matlab 对数据进行多元线性回归(代
码见附录中程序 1),画出残差图(图 4)并给出具体的残差值(表 9)和其置信
区间(表 10)。
浓度(ppm) B
7.34
8.14
8.74
153
151
158
G
140
142
126
R
132
133
127
7
H
108
104
120
S
35
29
52
2Rp0H1309.8324252141507.825296356378+4.9494079801104.7225113506989.8507456348373.572004296212yBGRHS
9.19
10.18
11.8
0
161
127
94
152
85
21
6
142
118
119
91
132
132
147
148
105
表 8 工业碱的实验数据
120
211
237
32
图 4 工业碱浓度与颜色读数线性回归残差图
浓度(ppm)
残差值 r
7.34
8.14
8.74
9.19
10.18
11.8
0
3.193187385650077
1.630046034029125
-0.845684659598861
0.362126613702886
-0.206897864646130
0.084838267818999
-4.217615776955910
表 9
相关系数
F 值
与 F 对应的概率 P
估计误差方差
0.631383991895078 0.342570033863204 0.851764320877558 31.538101080870671
表 10
由表 10:相关系数 =0.631383991895078,说明回归方程不显著。根据 F
检验,F 对应的概率
,接受 ,回归模型(Ⅴ)不成立。
(Ⅴ)
4.硫酸铝钾浓度与颜色读数之间的函数关系:
根据硫酸铝钾的实验数据(见表 11),使用 matlab 对数据进行多元线性回
归(代码见附录中程序 1),画出残差图(图 5)。
浓度(ppm) B
0
0
116
114
G
126
126
R
104
104
8
H
76
74
S
44
45
2R2Rp0H261.06486974071350.16421293824671.39816940939730.31364160779600.13058109229480.8798705475876yBGRHS