如何用NMF实现粒径谱源解析?

什么是粒径谱?

颗粒物的粒径谱描述了颗粒物在不同粒径范围内的分布情况。

而对于超细颗粒物(Ultrafine particles, UFPs),通常用数浓度 (particle number concentration, PNC)来量化,所以基于PNC的研究中,又叫数浓度粒径分布(particle number size distribution, PNSD)。PNC表示单位体积内的颗粒物数量,而PNSD则指不同粒径范围内颗粒物数量的分布情况。

PNSD的分析可以提供有关颗粒物来源、污染物扩散和环境影响的信息。此外,根据PNSD,还可以计算得到其他粒径相关的参数,如体积浓度、表面积浓度、几何平均直径等,进一步了解颗粒物的性质和影响。

SMPS是一种常用于测量PNSD的仪器,通过测量颗粒物的迁移速度和迁移时间来获取粒径大小,并将其与数量浓度进行关联。下面是使用SMPS测量得到的数量浓度粒径分布的示意图:

SMPS测得的颗粒物粒径谱

在上图中,横轴表示颗粒物的粒径大小,纵轴表示dN/dlogDp。纵轴用dN/dlogDp表示和SMPS的测量原理有关。

图b是图a中某一个时间点的剖面,图a相对于图b多了一个时间要素。

什么是NMF?

NMF(Non-Negative Matrix Factorization)是一种常用的数据分解和降维技术,用于对非负矩阵进行因式分解。NMF在机器学习、数据挖掘和信号处理等领域中被广泛应用。

NMF的目标是将一个非负矩阵分解为两个非负矩阵的乘积,其中一个矩阵表示特征或潜在成分,另一个矩阵表示每个样本在这些特征或成分上的权重。NMF的独特之处在于,它要求分解出的矩阵元素都是非负的,这使得分解结果更易解释和理解。

数学上,给定一个非负矩阵V(大小为m×n),NMF的目标是找到两个非负矩阵W(大小为m×k)和H(大小为k×n),使得V≈W×H,其中k是预先指定的分解维度。W矩阵代表特征矩阵,每一列代表一个特征,H矩阵代表权重矩阵,每一行代表一个样本(Lee & Seung, 1999)。

R语言NMF源解析的实现

数据准备:

  • 填充数据,因为NMF不支持非正值,所以应该先去除0值,空值和负值,并且对其进行填充。

NMF代码部分:

  • 导入所需的R包
library(NMF)
library(cluster)
  • 导入数据
#Input data
G <- readxl::read_excel("NMF-INPUT.xlsx")
#Rename columns from second to last column as Dp1 to Dp111
colnames(G)[2:ncol(G)] <- paste0("Dp", 1:(ncol(G)-1))
G <- as.data.frame(lapply(G[,2:112], as.numeric))
  • 查看NMF内置的算法和播种方式
nmfAlgorithm()
nmfSeed()
  • NMF rank survey
res <- nmf(G, 
           rank = 2:10,
           #method = 'lee',
           seed = nmf.getOption("default.seed"),
           nrun = 100
           )
plot(res)
par("mar")
par(mar=c(1,1,1,1))
consensusmap(res)
  • NMF算法的选择
                        rank = 6,
                        list('brunet', 'lee', 'nsNMF','KL',"Frobenius", "offset", "nsNMF","snmf/r", "snmf/l"),
                        .options='t',
                        nrun = 100)
compare(res.multi.method)
plot(res.multi.method)
  • 最后根据确定好的最佳rank数和算法,得到最终的结果
res <- nmf(G, 
           rank = 6,
           method = 'brunet', 
           seed = nmf.getOption("default.seed"), 
           nrun = 300
           )
coefmap(res)
consensusmap(res)
  • 简单查看结果并且导出数据
#分解后的两个子矩阵
H=res@fit@H
W=res@fit@W

#保存两个子矩阵到一个xlsx
library(XLConnect)
wb <- loadWorkbook("C:/Desktop/output_rank6.xlsx", create = TRUE, password = NULL) 
for (name in paste0('sheet', 1:2)) {
  createSheet(wb, name)
}
writeWorksheet(wb, H, 'sheet1')
writeWorksheet(wb, W, 'sheet2')
saveWorkbook(wb)

输出数据需要根据矩阵运算原理反算成浓度

引用:

Lee, D. D., & Seung, H. S. (1999). Learning the parts of objects by non-negative matrix factorization. Nature, 401(6755), 788-791. https://doi.org/10.1038/445651999年Lee和Seung在Nature上发文,提出了NMF算法

Wang, Q., Huo, J., Chen, H., Duan, Y., Fu, Q., Sun, Y., Zhang, K., Huang, L., Wang, Y., Tan, J., Li, L., Wang, L., Li, D., George, C., Mellouki, A., & Chen, J. (2023). Traffic, marine ships and nucleation as the main sources of ultrafine particles in suburban Shanghai, China. Environmental Science: Atmospheres. https://doi.org/10.1039/D3EA00096F基于粒径谱数据,使用NMF对超细颗粒物进行源解析的研究

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,657评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,889评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,057评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,509评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,562评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,443评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,251评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,129评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,561评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,779评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,902评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,621评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,220评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,838评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,971评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,025评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,843评论 2 354

推荐阅读更多精彩内容