首页 > 其他分享 >图形数据检验工具R_SPSS实战笔记(二)

图形数据检验工具R_SPSS实战笔记(二)

时间:2024-08-31 15:27:09浏览次数:3  
标签:实战 数据 检验 SPSS 直方图 笔记 正态性 正态分布 library

数据分析领域初期需要特别注意,目前大多数的数据分析软件都要求数据的存储形式为"宽格式",即每一列都应当是一个变量,而每一行则代表一个单独的观测值。且需要“长格式”数据的时候,可以通过宽格式数据轻易进行转换;存储格式,推荐使用.text或.csv
另外,任何形式的数据检验(异常值识别[缺失/错误值],正态性检验,方差齐性检验,共线性问题)都具有一定的局限性,大多数情况下,最行之有效的方式便是使用图形工具。
注:本文部分内容参考自公众号"生态文献分享 石亚飞"

1fecfc04d1f80912b1ce074456d738a4.png

1.异常/错误/缺失值识别(箱线图/Cleveland点阵图/散点图矩阵)

1.1 异常描述与R实战

缺失值识别】对于缺失值,其实很容易识别到,当数据量不多的时候,可以使用Excel的筛选或排序功能[注意一定要先定义表,然后再筛选排序,以免产生错序情况;tips:建议使用NA()代替,不建议直接删除];当数据量较多的时候,可以使用R中内置函数进行识别,详细代码见下(此外,缺失值的处理也是一个很头疼的问题,这里推荐使用R语言中的mice包进行缺失值插补,这里仅展示了利用mice包可视化缺失值)
【图例】

#载入相关R包
library(mice)
library(VIM)
#定义数据集
data <- data.frame(
  Pitcher_height = c(744, 700, 714, 667, 600, 777, 640, 440, 715, 573, 1500, 650, 480, 545, 845, 560, 450, 600, 607, 675, NA, NA, 5.1, 534, 655, 65.5),
  Mouth_diameter = c(34.3, 34.4, 28.9, 32.4, 29.1, 33.4, 34.5, 29.4, 39.5, 33.0, 33.8, 36.3, 27.0, 30.3, 37.3, 42.1, 31.2, 34.6, 33.5, 31.4, NA, NA, 0.3, 30.2, 35.8, 3.52),
  Tube_diameter = c(18.6, 20.9, 19.7, 19.5, 17.5, 21.1, 18.6, 18.4, 19.7, 15.8, 19.1, 20.2, 18.1, 17.3, 19.3, 14.6, 20.6, 17.1, 14.8, 16.3, NA, NA, 0.1, 16.5, 15.7, 1.77)
)
#缺失值识别
md.pattern(data)
aggr_plot <- aggr(data, 
                  col=c('navyblue','red'), 
                  numbers=TRUE, 
                  sortVars=TRUE, 
                  labels=names(data), 
                  cex.axis=.7, 
                  gap=3, 
                  ylab=c("Histogram of missing data","Pattern"))

image.png
image.png
异常/错误值识别错误值通常是以异常值的形式出现,但是异常值不一定是错误值。一般情况下,如果某些数据超过了整体数据值分布的上10%分位数和下95%分位数,即可以认为这些数据是潜在的异常值,而如果数据超过了上5%分位数和下95%分位数,则可以认为数据大概率是异常值。首先可以使用"箱线图/茎叶图"快速识别异常值,并进一步通过两两变量之间的"散点图矩阵"对错误值进行识别。

#异常值识别
df1 <- data.frame(
       id = rep(1:3, each = 4),
       variable1 = rnorm(12),
       variable2 = rnorm(12),
       variable3 = rnorm(12)
)
stem(df[,2],scale = 2) #绘制第2列变量的茎叶图,茎部分显示2位数
# 使用 pivot_longer() 函数转换为长格式
library(tidyr)
long_df <- pivot_longer(df1, cols = -id, names_to = "variable", values_to = "value")#在这里,cols = -id 表示除了 id 列之外的所有列都应该被转换,names_to 是新列的名称,用于存储变量名,values_to 是新列的名称,用于存储变量值
# 绘制横向箱线图
ggplot(long_df, aes(y = value, x = variable)) +
  geom_boxplot() +
  labs(y = "Value", x = "Variable", title = "Horizontal Boxplot") +
  theme_minimal()

image.png

#---环境建设---#
rm(list = ls());#清空变量空间
library(datasets)
library(export)

#---数据读入---#
dataname <- "iris"
rawdata <- datasets::iris
#散点图矩阵——Iris(GGally_ggpairs)
library(GGally)
ggpairs(rawdata, columns=1:5, aes(color=Species)) + 
  ggtitle("散点图矩阵——Iris(GGally_ggpairs)")+
  theme_bw() 
graph2png(file = paste("散点图矩阵(GGally_ggpairs) of", dataname))

image.png

2.正态性(直方图,QQ图)

2.1通过直方图与正态性检验了解数据的分布特征

计量数据的直方图,在SPSS中有多种方法可以获得,比如在图2-1-3中,点击Frequencies对话框中的【Charts】按钮,就可以选择输出直方图:

也可以在进行正态性检验时,一并输出直方图,操作如下:
点击菜单:Analyze => Descriptive Statistics => Explore

设置变量及分组因素(本例中为sex,将分别输出男性与女性的正态性检验结果),点击【Plots】按钮,在Expore: Plots对话框中,勾选直方图和正态性检验两个选项(如上图),点击【Continue】=>【OK】,就能输出结果,因为Expore的默认选项我们没有去除,所以输出的结果中内容非常多,截取我们需要的信息如下:

(1)正态性检验的结果

SPSS中提供了两种正态性检验的方法:
KS(Kolmogorov-Smirnov)检验W检验(Shapiro-Wilk),一般认为样本量的范围在4~2000时,W检验的检验效能较高,而样本量超过2000时应采用KS检验结果。
本例中总样本量为199,因此选择W检验的结果:
对于Female,P = 0.043 < 0.05,因此拒绝原假设,认为女性的BMI不服从正态分布;同理,认为男性的BMI也不服从正态分布。

(2)正态Q-Q图(Quantile-Quantile Plot)

正态Q-Q图是直观地检查数据是否服从正态分布的方法,如下图:

如果数据呈正态分布,则Q-Q图中的点应位于对角线上。相反,图中的点与对角线的偏差越大,说明数据服从正态分布的可能性就越小。
当然,Q-Q图的方法是一种直观的目视法,通过正态Q-Q图判断数据是否服从正态分布有些主观,但是可以结合正态性检验的结果,对数据的正态性做一个综合判断。
通过正态性检验与正态Q-Q图,我们可以判断:无论哪种性别,BMI都是不服从正态分布的。事实上,从下面的直方图可以看出,男性和女性的BMI都有一点右偏,但是右偏并不严重,所以我们看到的Q-Q图中,大多数的点都在直线上或附近,只有少数离群值(与其它值相比,异常小或异常大的值)脱离对角线较远。

(3)直方图

本例输出的直方图:


直方图是观察数据分布最直观的方法,上图显示出BMI的分布:女性的BMI对称性稍差,男性的因为右侧的离群值因而显得比女性的更右偏一些。

(4)根据数据的分布特征,选择适当的描述性统计量

本例中BMI呈右偏态分布,宜选择中位数来描述其集中趋势,选择Q1和Q3来描述其离散趋势;相反的,如果数据服从正态分布,就可以选择算术均数(

标签:实战,数据,检验,SPSS,直方图,笔记,正态性,正态分布,library
From: https://www.cnblogs.com/juezhe/p/18390357

相关文章

  • 读书笔记(10)《生活蒙太奇》
    序言 我之所以叫它蒙太奇,是因为这是我用漫画呈现出来的片段,是由我的观察编辑而成,它们是我观察世界的样子。可是每位读者的性格不同,际遇不同,得到的感受也不一样,所以每个人读下来,蒙太奇剪辑的方式也不尽相同。我从我的角度把这些漫画故事组合成了这本书,但你可以按照自己的习惯和喜......
  • 海康二次开发学习笔记9-通讯触发及模块列表获取
    通讯触发及模块列表获取模块列表获取获取流程中所有模块的模块名,添加下拉框用于显示模块名1.处理Combox2的DropDown事件///<summary>///模块列表获取///</summary>///<paramname="sender"></param>///<paramname=......
  • C#应用实战,手把手教你如何:在日志中写入内容
    使用c#编写一个方法,该方法有一个形参。要求:1定义一个文件目录:D/MesData。如果该目录不存在,则创建一个目录。2读取目录下的MesLog.TXT文件,如果该文件不存在,则创建一个文件。3定义一个字符串str,它由当前时间以及方法的形参组成4将字符串str添加到MesLog.TXT文件内容的末尾......
  • Buildroot构建Qt根文件系统-思维导图-学习笔记-基于正点原子阿尔法开发板
    Buildroot构建Qt根文件系统获取Buildroot源码Buildroot源码下载地址,https://buildroot.org/本次下载的是长期支持版本移动至ubuntu后解压tarxfbuildroot-2022.02.3.tar.gz解压后的Buildroot源码配置Buildroot安装显示图形菜单需要的库sudoapt-getin......
  • Datawhale X 李宏毅苹果书 AI夏令营 第五期 深度学习(进阶班)Task02 笔记分享
    文章目录Task2-1:《深度学习详解》-3.3&4&5自适应学习率(9页+38分钟)Part01:视频笔记训练技巧:自适应学习率(Adaptivelearningrate):学习率应该为每一个参数特质化:RootMeanSquare(均方根):......
  • FFmpeg开发笔记(四十九)助您在毕业设计中脱颖而出的几个流行APP
    ​对各高校即将毕业的学子来说,毕业设计算是在大学里的最后一个大作业。特别是软件、计算机、电子等相关专业,毕业设计非常讲究实操,往往要求实现一个实用的、可用的、易用的软件系统或手机APP。不管是软件还是APP,都要通过编程来实现。对于编程类的毕业设计,既有图书馆管理系统这样......
  • 网络安全系统教程+渗透测试+学习路线(自学笔记)_渗透测试工程师怎么自学
    一、什么是网络安全网络安全可以基于攻击和防御视角来分类,我们经常听到的“红队”、“渗透测试”等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面性,例如Web安全技术,既有Web渗透,也......
  • 图论学习笔记
    最短路割边最短路约定\(1\rightsquigarrowx\)表示\(T(1\rightsquigarrowx)\)表示最短路树\(T\)上\(1\rightsquigarrowx\)的经过的边的集合。思路问题:给定一张无向正权图,对图上的每条边,求删去该边后\(1\rightsquigarrown\)的最短路。首先求出\(1\rightsqu......
  • .NET|--WPF|--笔记合集|--依赖项属性|--2.注册依赖项属性
    前言使用一个实例,其实分2步骤定义,实例化.但是依赖项属性为不能直接实例化,因为DependencyProperty类没有公开的构造函数,只能使用静态的DependencyProperty.Register方法创建DependencyProperty实例.DependencyProperty.Register源码//System.Windows.DependencyP......
  • .NET|--WPF|--笔记合集|--依赖项属性|--1.定义依赖项属性
    前言一般情况下,我们是不用定义依赖项属性的,更多的是直接使用即可.那么何时需要我们定义依赖项属性呢?1.设计自定义的WPF元素;2.为原本不支持数据绑定,动画等WPF功能的代码中,需要添加数据绑定,动画等WPF功能时.定义依赖项属性一般的类型来说,如果想要使用的......