R数据分析:网络分析的做法,原理和复现方法

对于复杂问题和现象行为的研究,尤其是他们之间还有复杂的交互影响(complexinterplay)的时候,网络分析(备用名:psychologicalnetworks,networkanalysisornetworkpsychometrics)是个备选的好方法,这个方法火了也没几年,感兴趣的同学可以去学学,而且,如果你再能把网络图做的美点,应该各个审稿人都愿意看的。今天尝试给大家做个网络分析的简单介绍。

举个例子,像physiological,psychological,socialandenvironmentalfactors等等如何影响肥胖,很复杂,做个多元回归?做个结构方程模型?这些都缺乏系统性的视角,从整体上把握肥胖的影响因素之间的关系,找最重要的干预靶点推荐用网络分析。

像健康,行为,心理,认知功能等等,反正就是复杂系统的分析,想不到课题了,就可以考虑在方法上上网络分析

Fromanetworkperspective,healthbehavioursandoutcomescanbeconceptualisedasemergentphenomenafromasystemofreciprocalinteractions:networkanalysisoffersapowerfulmethodologicalapproachtoinvestigatethecomplexpatternsofsuchrelationships.

Bloch-Elkouby,S.,Gorman,B.,Schuck,A.,Barzilay,S.,Calati,R.,Cohen,L.J.,Begum,F.,&Galynker,I.(2020).Thesuicidecrisissyndrome:Anetworkanalysis.JournalofCounselingPsychology,67(5),595–607.

通过网络分析作者就回答了三个问题:一是自杀崩溃综合征中不同症状的关系是什么?二是这些症状有没有哪几个格外重要?三是这些症状有没有一些聚集性?三个问题每一个都很有价值,一个网络分析全给你解决了,感兴趣的同学下载去读读。

还有一个点很重要,网络分析可以帮助你识别复杂系统的干预点,这个其实是很有临床价值的

networkanalysesallowforthecomputationofcentralityindicesthatprovideinformationaboutthesymptomsthatarethemostconnectedtotheothersymptomsincludedinthenetworkandwhosepotentialcausalcontributiontotheothersymptomsmaythusdeservefurtherinvestigation

如果你是搞人文社科的,由于其是一个针对复杂人文系统的作用关系,网络分析也是最容易帮助你提出原创理论假设的一项重要技术支撑。总体的意思就是想推动0到1的科研,这个方法必须要学。

一个最简单的网络,像这样

有好些点叫做node,这些点被线连起来的,线叫做edge。

Psychologicalnetworksconsistofnodesrepresentingobservedvariables,connectedbyedgesrepresentingstatisticalrelationships.Thismethodologyhasgainedsubstantialfootingandhasbeenusedinvariousdifferentfieldsofpsychology,suchasclinicalpsychology,psychiatry,personalityresearch,socialpsychology,andqualityofliferesearch

成图的基本步骤如下

首先得有数据间的统计模型,模型系数作为edge的权重,然后成图,然后评估模型。

本身来讲网络分析就是比较复杂的,网络的随机性相对于别的分析就要大一些,而且本身来讲我们的科研逻辑就是用样本反映总体,如果你做出来的网络不稳定你能说你发现的比如肥胖比如自杀的网络是可信的?所以做完网络分析之后我们对于网络的稳健性我们是一定要报告的,逻辑就是进行反复的bootstrap抽样,反复的重新估计模型,反复的重新计算confidenceintervals(e.g.95%CI)fortheiredgeestimates看看这些模型的差异从而评估模型的稳健性,通过edgestabilityanalysis我们可以得到网络各个边的权重的置信区间,区间越窄,说明网络越稳定。做edgestabilityanalysis的示例代码如下:

resboot1<-bootnet(Data,default=c("EBICglasso"),tuning=.5,corMethod="cor_auto",nBoots=1000,nCores=8,type=c("nonparametric"))通常这一部分论文中也会以图的形式报告出来。

在网络分析中每个节点的重要性是不一样的,是不是存在某些节点相对于另外的节点更重要?对节点重要性的评估的指标就是centralityindices,这个指标又包含3个指数strength,closeness,andbetweenness,三个指标的意思见下面:

strength,whichshowshowwellanodeisdirectlyconnectedtoothernodes,closeness,whichshowshowwellanodeisindirectlyconnectedtoothernodes,andbetweenness,whichquantifiesthenumberoftimesanodeactsasabridgealongtheshortestpathbetweentwoothernodes

简单的逻辑就是如果图中的一个点和另外的点连线多越强,那么这个点就重要,这个点也越应该放在图的中心;如果一个点和其他点的间接距离越近那么这个点越容易受到网络变动的影响;如果一个点平均来看总是在两两关系中起桥接作用,那么这个点对整个网络的构成就意义极大。

通常只报告strength就可以,因为其他两个指数都不太稳定。

作者报告了网络图还有模型的centralityindices,都是以图的形式呈现的,见下图:

还有Bootstrappededgeweightestimates,也是一个图:

那么我们今天就来看下,这个论文的图如何用自己的数据复现出来。

比如我现在有数据如下,有2800个观测,26个变量,最后一个变量是性别,其余的25个变量是5个5条目的量表:

首先我要做的是拟合网络模型,拟合网络模型用到的核心函数是estimateNetwork,通常我们只用设置data和default参数便可以运行,我们要通过lasso来简化网络的话就设置default="EBICglasso",将拟合好的网络模型对象喂给plot即可以出网络图。

比如我要对男性观测拟合网络模型,可以写出代码如下:

network_male<-estimateNetwork(df%>%filter(gender=="Male")%>%select(-gender),default="EBICglasso",corMethod="spearman")运行完毕后,直接将模型对象喂给plot即可出图:

到这儿就基本算是完成了,但是要发表的话还是有点粗糙的,其实我们的数据中不同的字母(变量名)代表的是不同的量表,其实更好的方法是将各个量表的条目放一起,并且给出图例,使得其一目了然,所以接下来我们得对图形做一些调整。

比如我要对节点的整体布局做一个调整并且加上每个量表的图例,我就可以在代码中加上group参数,指明每个节点都是来自哪个量表的:

这样其实就好看多了,当然如果需要更细的图例,比如我想知道每个节点到底啥意思,我还可以用nodeNames参数加上节点的图例:

这样就更好了,赞。

但是我们注意AmericanJournalofPublicHealthResearch上的这篇研究是给边加了标签的,我们要出这样的效果的话只需要设定edge.labels为真就可以了,因为节点比较多,加上标签其实效果就不太好了:

我们接着再看作者的另外的两个图的做法,一个是centralityindices的图,我们只需要将模型对象喂给centralityPlot即可出图:

另一个是边的权重估计的图,只需要将模型对象喂给bootnet,并且plot就可出来:

可以看到我们的图的效果其实是比原文好的。

到这儿,原文中所有的结果都给大家复现完了。

今天给大家写了网络分析的做法,其实还有一块就是网络分析的对比,解决的问题是几个网络是不是不一样,或者同一个网络的某两个边是不是不一样,这个以后有机会给大家写。

如果你是一个大学本科生或研究生,如果你正在因为你的统计作业、数据分析、模型构建,科研统计设计等发愁,如果你在使用SPSS,R,Mplus中遇到任何问题,都可以联系我。因为我可以给您提供最好的,最详细和耐心的数据分析服务。

如果你或你的团队需要专业的科研数据清洗,建模服务,教学培训需求等等。请联系我。

Ifyouareastudentandyouareworriedaboutyoustatistical#Assignments,#Data#Analysis,#Thesis,#Reports,#Composing,#Quizzes,Exams..Andifyouarefacingproblemin#SPSS,#R-Programming,#Excel,Mplus,thencontactme.BecauseIcouldprovideyouthebestservicesforyourDataAnalysis.

AreyouconfusedwithstatisticalTechniqueslikez-test,t-test,ANOVA,MANOVA,Regression,LogisticRegression,Chi-Square,Correlation,Association,SEM,multilevelmodel,mediationandmoderationetc.foryourDataAnalysis...

ThenContactMe.IwillsolveyourProblem...

IfYouorYourResearchTeamNeedProfessionalScientificDataCleaning,ModelBuildingServicesorStatisticalConsulting...PleaseContactMe.

THE END
1.SPSS数据分析实例.pptSPSS数据分析实例 :某克山病区测得11例克山病患者与13名健康人的oup两个框内分别输入1和2,点击ok 结果浏览窗口两组的基本情况描述和t检验结果 上面是方差齐性检验,用于判断两总体方差是否齐;第二部分分别给出两组所在总体方差齐和不齐时的t检验结果 https://www.taodocs.com/p-735739326.html
2.SPSS数据分析实例详解20240110172242.pdfSPSS数据分析实例详解.pdf 137页VIP内容提供方:微传科技 大小:23.79 MB 字数:约15.94万字 发布时间:2024-01-13发布于河北 浏览人气:120 下载次数:仅上传者可见 收藏次数:0 需要金币:*** 金币 (10金币=人民币1元)SPSS数据分析实例详解.pdf 关闭预览 想预览更多内容,点击免费在线预览全文 免费在线...https://m.book118.com/html/2024/0110/7015126003006030.shtm
3.SPSS行业案例SPSS数据分析软件行业案例本文将介绍SPSS描述性分析怎么剔除没用的数据,SPSS描述性分析怎么看分析结果的相关内容。 2024-11-25 SPSS数据降维是什么意思 SPSS数据降维方法 SPSS是一款功能强大的,应用范围广泛的统计分析软件,支持用户的多样化操作,支持数据分析、数据统计和数据可视化等功能。很多用户在使用SPSS时可能会遇到不知道SPSS数据降维是...https://spss.mairuan.com/hangye/
4.数据科学实战第2 章 统计推断、探索性数据分析和数据科学工作流程 在本章,我们首先讨论统计推断和统计学的思考方式,然后我们将目光转向每一位数据科学家都会从事的工作:探索性数据分析。我们还将详细了解研究数据科学的工作流程,在本章的结尾,是我们的“思维实验”环节和一个案例学习。 https://www.ituring.com.cn/book/tupubarticle/512
5.手把手教你操作Tableau——真实公司数据分析项目实例(完整详细...1.打开tableau,将所需要的的数据导入到tableau中 2.数据源连接这边可以看到tableau可以连接多种文件格式和数据库 3.tableau中对数据文件的两种处理方式有实时live和提取extract 实时连接的好处是直接连接的是数据源,如果数据源(excel或者SQL类数据库)发生变化,tableau里的数据也会相应的自动调整 坏处在于实时的速度会随着...https://blog.nowcoder.net/n/40fb3adebfb648e0a3e91f3fa6b9a7fb
1.精选30个数据分析案例,建议收藏!腾讯云开发者社区这就涉及到,你必须要有思维能力,去支撑你在看到数据时,会从多维度去分析,而不是只看到表面数字这么简单而已,否则就是抓瞎。 数据时代,无论你是做产品,运营,还是做研发,系统架构,乃至于安全风控,都会发现,数据思维是考验你能力提升的重要指标。 但其实,很多人只是掌握了数据分析的工具和技能,却做不好数据分析,无...https://cloud.tencent.com/developer/article/1966722
2.5个Github上的大数据分析案例!大数据项目开发案例文章列举了GitHub上的数据科学资源,包括AwesomeDataScience和DataScienceProjects等项目,提到了Kaggle竞赛平台以及使用Python和SQL进行大数据分析的重要性。此外,还强调了数据分析师应掌握的技能,如Excel和数据可视化工具,并推荐了学习资源和学习路径。 摘要由CSDN通过智能技术生成 ...https://blog.csdn.net/itcast_cn/article/details/131772550
3.五个Pandas实战案例带你分析操作数据pythonpandas是基于NumPy的一种工具,该工具是为了解决数据分析任务而创建的。Pandas纳入了大量库和一些标准的数据模型,提供了高效操作大型数据集的工具。pandas提供大量快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python强大而高效的数据分析环境的重要因素之一...https://www.jb51.net/article/235878.htm
4.矩阵数据分析法实例矩阵数据解析法案例2.实例: 在推荐系统中,最重要的数据是用户对商品的打分数据,数据形式如下所示: 其中,U1?U5表示的是5个不同的用户,D1?D4表示的是4个不同的商品,这样便构成了用户—商品矩阵,在该矩阵中,用户对每一件商品的打分,其中“-”表示的是用户未对该商品进行打分。 https://blog.51cto.com/u_13229/8815184
5.数据挖掘聚类分析实例【数据挖掘】聚类分析实例 技术标签:数据挖掘机器学习聚类 在之前,我们已经学过了四大类聚类分析及其典型算法。本文,我们将使用划分方法中的k-均值算法和层次聚类方法以一个实例进行完整的聚类分析演示。 1. 问题描述 例题: 为研究我国31个省、市、自治区2007年的城镇居民生活消费的规律,根据调查资料作区域消费类型...https://www.pianshen.com/article/74271139769/
6.Python数据分析与挖掘实战(豆瓣)此外,他精通Java EE企业级应用开发,是广东工业大学、华南师范大学、华南农业大学、贵州师范学院、韩山师范学院、广东技术师范学院兼职教授,著有《神经网络实用教程》、《数据挖掘:实用案例分析》、《MATLAB数据分析与挖掘实战》《R语言数据分析与挖掘实战》等畅销书。https://book.douban.com/subject/26677686/
7.工具Orange3:机器学习入门神器澎湃号·湃客澎湃新闻Orange3(https://orangedatamining.com/)是一款基于Python的数据挖掘和可视化工具,它提供了丰富的数据分析、机器学习和数据挖掘算法,同时也支持可视化分析和交互式数据探索。Orange3提供了友好的界面和丰富的示例工程,使得新手用户也可以快速上手,同时也支持Python脚本,可以满足高级用户的需求。 https://www.thepaper.cn/newsDetail_forward_24193195?commTag=true