首页 > 其他分享 >R语言 基于人口的医师配置公平性洛伦兹曲线的代码和示例

R语言 基于人口的医师配置公平性洛伦兹曲线的代码和示例

时间:2024-04-03 10:31:19浏览次数:19  
标签:累积 公平性 百分比 示例 曲线 医师 卫生 洛伦兹

文章目录


前言

洛伦兹曲线(Lorenz Curve)是一种用于描述资源分配公平性的图形表示方法,可用于评价卫生技术人员的分布公平性。洛伦兹曲线可以用来表示累积人口百分比与累积医师数百分比之间的关系。如果曲线越接近对角线,表示医师的分布越公平。本文介绍R语言实现基于人口的医师配置公平性的洛伦兹曲线代码并示例。


提示:以下是本篇文章正文内容,下面案例可供参考

一、洛伦兹曲线介绍

洛伦兹曲线在卫生技术人员配置公平性的评估中,是一种直观展示卫生资源累积分配情况的图形工具。洛伦兹曲线通过绘制累积人口百分比与累积卫生技术人员百分比之间的关系曲线,若曲线接近对角线,则表示卫生技术人员配置相对公平;若曲线偏离对角线较远,则暗示存在资源配置的不均衡。

计算公式:

累积人口百分比 = 累积人口数 / 总人口数 × 100%;

累积卫生技术人员百分比 = 累积卫生技术人员数 / 总卫生技术人员数 × 100%。

这些数据通常以点的形式在图上表示,并连接成线,形成洛伦兹曲线。

洛伦兹曲线提供了可视化的手段,帮助决策者识别资源配置的薄弱环节,为优化卫生服务体系提供依据。

二、基于人口的医师配置洛伦兹曲线

1.创建模拟数据

代码如下(示例):

# 假设我们有以下数据:
# population: 各个分组的人口数
# doctors: 各个分组的医师数
population <- c(1000, 2000, 3000, 4000)
doctors <- c(5, 10, 15, 20)

2.绘制洛伦兹曲线

代码如下(示例):

#(1)生成洛伦兹曲线的函数
library(ggplot2)
# 绘制洛伦兹曲线的函数
plot_lorenz_curve <- function(population, doctors, main_title = "Lorenz Curve", x_label = "Cumulative Population (%)", y_label = "Cumulative Doctors (%)") {
  
  # 计算累积分布
  
  sorted_indices <- order(doctors)
  df <- data.frame(
    PopulationCum = cumsum(population[sorted_indices]) / sum(population) * 100,
    DoctorsCum = cumsum(doctors[sorted_indices]) / sum(doctors) * 100
  )
  
  # 添加一行0%的累积值,用于绘制起始点
  df <- rbind(data.frame(PopulationCum = 0, DoctorsCum = 0), df)
  
  # 绘制洛伦兹曲线
  ggplot(df, aes(x = PopulationCum, y = DoctorsCum)) +
    geom_line(color = "blue", size = 1) + # 绘制曲线
    geom_point(color = "blue", size = 2.5) + # 绘制数据点
    geom_abline(slope = 1, intercept = 0, color = "red", linetype = "dashed") + # 添加对角线(完全平等线)
    labs(title = main_title, x = x_label, y = y_label) + # 设置图表标题和轴标签
    theme_minimal() + # 使用简洁的主题
    theme(# 移除网格线
      panel.grid.major = element_blank(),
      panel.grid.minor = element_blank(),
      # 显示坐标轴线
      axis.line = element_line(colour = "black"),
      # 设置x轴和y轴的刻度样式
      axis.ticks = element_line(colour = "black", size = 0.5), # 调整刻度线的颜色和粗细
      axis.text = element_text(colour = "black", size = 2), # 调整刻度标签的颜色和字体大)
      plot.margin = margin(l = 5, r = 10, t = 5, b = 5) )+   #右边边距设置为10磅,其他方向保持默认
    scale_x_continuous(breaks = seq(0, 100, by = 10)) + # 设置x轴刻度
    scale_y_continuous(breaks = seq(0, 100, by = 10)) + # 设置y轴刻度
    theme(axis.text = element_text(size = 12), # 设置轴文本大小
          axis.title = element_text(size = 14), # 设置轴标题大小
          plot.title = element_text(size = 16))+
     scale_x_continuous(expand = c(0, 0))+ # 确保x轴从0开始
     scale_y_continuous(expand = c(0, 0)) # 确保y轴从0开始# 设置图表标题大小
 }

# 假设的数据集:地区人口和医师数量
population <- c(10000, 20000, 30000, 40000, 50000)
doctors <- c(10, 20, 15, 25, 30)

# 调用函数绘制洛伦兹曲线
plot_lorenz_curve(population, doctors, main_title = "Custom Lorenz Curve", x_label = "Pop. Cum (%)", y_label = "Docs Cum (%)")

总结

在这个例子中,我们首先计算了累积人口和医师数的百分比,然后使用plot函数绘制了洛伦兹曲线。我们还添加了对角线(完全公平线)作为参考,并添加了网格线和图例以增强图形的可读性。

标签:累积,公平性,百分比,示例,曲线,医师,卫生,洛伦兹
From: https://blog.csdn.net/gwxcsdn1/article/details/137156526

相关文章

  • R语言 基于人口的医师配置公平性基尼系数计算代码和示例
    文章目录前言一、基尼系数原理介绍二、基于人口的医师配置基尼系数计算步骤    1.自定义建立基尼系数计算函数     2.运用基尼系数计算函数进行计算    3.使用模拟数据进行示例......
  • 第十一篇【传奇开心果系列】Python自动化办公库技术点案例示例:深度解读Python自动化操
    传奇开心果博文系列系列博文目录Python自动化办公库技术点案例示例系列博文目录前言一、重要作用二、Python操作PDF文件转Word文档介绍三、提高效率示例代码四、保持一致性示例代码五、精确度与质量控制示例代码六、适应复杂需求示例代码七、可扩展性与与集成性示例代码......
  • vue3+ant-design-vue - 最新实现“侧边动态导航栏+面包屑导航“功能,vue3+ant后台管理
    效果图在vue3+antdesignvue后台管理系统中,详细完成菜单导航+面包屑动态联动功能效果,支持缓存功能、配置简洁、自动跟随route路由进行变化、自动匹配菜单和面包屑导航的文字等,超详细实用的示例demo全部源代码。提供详细示例源代码,新手小白直接复制稍微改下配置就能用了,快......
  • vue2 +element-ui图片上传示例
    这里使用了一个没有用的裁剪插件,需要先下载它[email protected]然后在main.js引入:importVueCropperfrom'vue-cropper'Vue.use(VueCropper)1、html部分:<template><el-formref="form":model="form"label-width="1.2rem&qu......
  • ES6 reduce方法:示例与详解、应用场景
    还是大剑师兰特:曾是美国某知名大学计算机专业研究生,现为航空航海领域高级前端工程师;CSDN知名博主,GIS领域优质创作者,深耕openlayers、leaflet、mapbox、cesium,canvas,webgl,echarts等技术开发,欢迎加底部微信(gis-dajianshi),一起交流。No.内容链接1Openlayers【入门教程】-......
  • CCF CSP模拟真题解答示例
    CCFCSP(CertifiedSoftwareProfessional)是中国计算机学会主办的软件能力认证考试,旨在评估参赛者在计算机科学和软件工程方面的基本知识和实践能力。请注意,以下解答仅作为示例,并非针对实际真题的准确答案。实际考试中的题目和答案可能会有所不同,因此建议参考官方发布的真题......
  • 大屏可视化项目示例--基于Vue3+vite2+echart+mock+axios+dataV
    图例: 项目环境:Vite、Echarts、Npm、Node、axios、mock、vue3、dataV。项目地址:IofTV-Screen-Vue3:......
  • 身份证实名认证接口会返回什么?javascript身份核验接口示例
    身份证实名认证接口是通过核验身份证号、姓名、证件头像等一系列的要素信息进行用户身份验证,那么,身份证实名认证接口一般在核验完成后会返回什么参数信息呢?下面翔云API小编为大家答疑解惑!一般情况下,身份核验只会返回一致或者不一致的结果,不一致的情况下会返回那些参数不一致,以翔......
  • 第18章 创建示例项目
    1创建项目创建一个MyWebApp的空项目。dotnetnewglobaljson--sdk-version3.1--outputMyWebApp已成功创建模板“global.jsonfile”。dotnetnewweb--no-https--outputMyWebApp--frameworknetcoreapp3.1已成功创建模板“ASP.NETCoreEmpty”。dotnetnewsln-o......
  • AMD hipcc 生成各个gpu 微架构汇编语言代码的方法示例
    1,gpuvectorAdd示例为了简化逻辑,故假设vector的size与运行配置的thread个熟正好一样多,比如都是512之类的.1.1源码vectorAdd.hip#include<stdio.h>#include<hip/hip_runtime.h>__global__voidvectorAdd(constfloat*A,constfloat*B,float*C){inti=......