当前位置: 首页 > news >正文

R语言学习--Day04--数据分析技巧

在清洗完数据,在对数据分析前,我们要懂得先梳理一下我们的逻辑,即数据是什么形式的,要进行哪种分析,有可能呈现什么特点,进而再想怎么处理数据去画图可以最大程度地凸显我们要的特点。

一般来讲,数据会有以下几种特点:单分布、双变量关系、多变量之间的比较、时间趋势、构成比例、影响程度,分别对应问题:数据如何分布、X与Y的联系、变量间的差异、如何随时间变化、各部分占比、哪种因素对结果的影响更大。大部分的数据,基本都是由这几种情况排列组合的复杂问题,我们要学会拆解问题去一步步解决,这样也能使我们的思路更加明确。

特别的,有时候我们在拿到数据时,就跟非监督学习一样,我们只知道要分析数据特点,但对结果的分布缺乏概念,这时我们就可以采取先把数据分布画出来的操作,注意数据的数量,如果样本少,我们直接画箱线图或者散点图就行,但如果数据非常多,那此时用六边形图,就比较合适了。

假如我们有一些数据

set.seed(42)# 生成4种类别的数据(每组1000个观测值)
n <- 1000
df <- data.frame(# 类别变量(4组)group = rep(c("A组-正态分布", "B组-右偏分布", "C组-双峰分布", "D组-离群点"), each = n),# X变量(根据组别生成不同分布)x = c(rnorm(n),                       # A组:正态分布rgamma(n, shape = 2),           # B组:右偏分布c(rnorm(n/2, -2), rnorm(n/2, 2)), # C组:双峰分布c(rnorm(n*0.95), rnorm(n*0.05, 5)) # D组:离群点),# Y变量(与X相关,加入噪声)y = c(0.8 * rnorm(n) + rnorm(n, sd = 0.3),         # A组0.5 * rgamma(n, shape = 2) + rnorm(n, sd = 0.2), # B组c(rnorm(n/2, -1), rnorm(n/2, 1)) + 0.5*rnorm(n),  # C组c(rnorm(n*0.95), rnorm(n*0.05, 8))           # D组)
)

然后分别生成六边形图和箱线图

hex_facet <- ggplot(df, aes(x = x, y = y)) +geom_hex(bins = 30, alpha = 0.8) +scale_fill_gradient(low = "lightblue", high = "darkblue", name = "频次") +facet_wrap(~group, scales = "free") +  # 按组别分面,自由缩放坐标轴labs(title = "多类别六边形图(分面展示)", x = "X变量", y = "Y变量") +theme_minimal()print(hex_facet)

box_facet <- ggplot(df, aes(y = y)) +geom_boxplot(fill = "skyblue", width = 0.5) +facet_grid(. ~ group, scales = "free_x") +  # 横向分面labs(title = "多类别箱线图(横向分面)", x = "", y = "Y变量") +theme_minimal()print(box_facet)

http://www.xdnf.cn/news/543997.html

相关文章:

  • C语言:指针——解锁编程的灵魂
  • 了解 DDD 吗?DDD 和 MVC 的区别是什么?
  • 【Redisson】快速实现分布式锁
  • 深度学习-runner.run(data_loaders, cfg.workflow)内部执行过程
  • Docker run -v 的 rw 和 ro 模式_docker ro
  • React Flow 数据持久化:Django 后端存储与加载的最佳实践(含详细代码解析)
  • React中使用ahooks处理业务场景
  • 网络攻防技术
  • 微软押注“代理式AI网络”:一场重塑软件开发与工作方式的技术革命
  • 网络攻击通常会被分为哪些类型?
  • FreeSWITCH rtcp-mux 测试
  • Hbuilder X4.65新建vue3项目存在的问题以及解决办法
  • HTB 赛季8靶场 - Puppy
  • 对未来软件的看法
  • Vue响应式系统演进与实现解析
  • Linux系统之traceroute命令详解:追踪网络路径的核心工具
  • Linux网络编程:广播、组播与原始套接字
  • 51单片机编程学习笔记——无源蜂鸣器演奏《祝你生日快乐》
  • 计算机网络通信技术与协议(七)———关于ACL的详细解释
  • 高密度服务器机柜散热方案:高风压风机在复杂风道中的关键作用与选型要点
  • 电力设备智能化方案复盘
  • DataLight(V1.7.12)版本更新发布
  • 通义灵码助力Neo4J开发:快速上手与智能编码技巧
  • 钉钉开发之AI消息和卡片交互开发文档收集
  • React的合成事件(SyntheticEventt)
  • 企业终端设备的安全管控
  • 【Tauri2】046—— tauri_plugin_clipboard_manager(一)
  • RK3588 ArmNN CPU/GPU ResNet50 FP32/FP16/INT8 推理测试
  • Qt项目开发中所遇
  • 《Android 应用开发基础教程》——第十三章:权限管理机制与运行时权限请求(以拍照/存储为例)