分享

数据分析第一步:连续性数值变量统计描述常用SPSS及R操作过程

 生物_医药_科研 2019-01-24


在研究过程中收集到大量的资料数据,但从这些杂乱无章的资料中,很难对其总体水平与分布状况做出评价判断。因此,必须采用一些适当的方法对这些资料进行处理,使之简约化、分类化、系统化,从中发现它们的分布规律,掌握总体的特征,以便对其水平做出客观的评价。

统计描述方法,是研究数据并描述这些数据的统计方法。将搜集来的大量数据资料,加以整理、归纳和分组,简缩成易于处理和便于理解的形式,并计算所得数据的各种统计量,如平均数、标准差、以及描述有关事物或现象的分布情况、波动范围和相关程度等,以揭示其特点和规律。

一、数据资料的清洗整理
  拿到一份数据,第一步数据清洗整理,是最耗时的一步,它包含以下几部分内容:
  1.数据检查
主要检查数据的完整性与正确性。统计资料完整性的检查,就是要根据调查项目检查是否填写齐全,避免遗漏,删去重复。正确性检查,就是检查搜集的资料是否真实可靠。特别是统计数字的真实性是统计工作的生命,统计资料的检查整理必须抓紧这一环。
数据检查可分为逻辑检查和计算检查两种方法。逻辑检查,是从理论和一般常识上来检查资料内容是否合理,指标之间是否矛盾。计算检查是检查统计数字在计算方法和计算结果上有否错误。
2.数据分类
  数据分类就是把搜集来的数据进行分组归类。数据分类要做到既不重复、不遗漏,又不混淆,一般又可分为品质分类和数量分类。
  品质分类:是按事物性质划分为不同的组别、种类。如以性别为标志可分为男与女;按“理解能力”、“学习态度”等为标志,又可分为好、较好、一般、差等几种水平,每种水平可看成类,每一类可给以相当的数量。可以通过各类所包含的数据再进行数量化的比较和分析。
数量分类:是按数量的属性分类。
  ⒊ 数据的排序
  数据排序:将各数据从大到小或从小到大进行排列。这样就可以看出最高分和最低分是多少,各分数出现的次数和位于中间的是什么数等。包括等级排列和次数排序。
  等级排列:即根据顺序排列划分等级。但与顺序排列不同,它是按数值所含的意义确定的。若是学习成绩,应以数值大的排为第一等级;若是反映时间,则将最小的数值排为第一等级。
  次数排序:即根据在指定的数值范围内,数据出现的频数大小排序。
  ⒋ 数据统计表
  就是把所研究的现象和过程的数据资料,以简明的表格形式表现出来。它可以避免文字的冗长叙述,便于比较各项目之间的相互关系,便于总计、平均和其他统计值的计算,便于检查计算错误和项目遗漏。
  ⒌ 数据的图形展示法
  数据的图示法是利用几何图形或其他图形等的描绘,把所研究对象的特征、内部结构、相互关系和对比情况等方面的数据资料,绘制成整齐简明的图形。它是用以说明研究对象和过程的量与量之间对比关系的一种方法。它能准确地表现统计资料,有助于对统计资料进行比较、对照、分析和研究。图示法,具有直观、形象,便于记忆和思考以及表达语言难以说清的内容之优点。

二、特征参数的计算
为了分析研究对象总体的特征,不必对总体中每一个单位都进行研究。而是通过抽样方法,按照随机性原则,从全部对象中,只抽取部分单位(样本组)加以研究,对于每组样本,首先应对其基本特征参数进行计算,以给出整体特征的统计描述。并根据统计数据,对总体对象作出具有一定可靠程度的估计和推测。常用的特征参数包括:

⒈集中趋势

(1)算术平均数

(2)中数,是指一组按大小顺序排列起来的量数中的中间点的数,又称中位数,用Mdn来表示。
(3)众数,是指一列数中出现次数最多的数值,常用M表示。

2.离散趋势

(1)标准差

(2)四分位数间距


三、连续性数值变量SPSS的操作过程

连续性性变量的统计在SPSS里分为三种方法:

描述性统计——频率(Frequency);

描述性统计——描述(Description);

描述性统计——探索(Exploration)。

(1)描述性统计——频率(Frequency)

例子是观察学生分数的分布情况。

Step1 导入数据:


Step2 使用频率进行描述性统计

Step3 选择要进行统计的变量
Step4 得到频率统计结果

(2)描述性统计——描述(Description)

Step1 选择描述统计


Step2 选择参数和将数据标准化


下面是标准化的数据。

Step3 得到描述统计结果

(3)描述性统计——探索(Exploration)

Step1 设置探索参数

四、连续性数值变量R语言数据展示过程

我们以R内置的鸢尾花数据为例,鸢尾花(iris)是数据挖掘常用到的一个数据集,包含150种鸢尾花的信息,每50种取自三个鸢尾花种之一(setosa,versicolour或virginica)。每个花的特征用下面的5种属性描述萼片长度(Sepal.Length)、萼片宽度(Sepal.Width)、花瓣长度(Petal.Length)、花瓣宽度(Petal.Width)、类(Species)。

> dim(iris)#查看数据的维数

[1] 150 5

> names(iris)#显示数据集中的变量名

[1] 'Sepal.Length' 'Sepal.Width' 'Petal.Length' 'Petal.Width' 'Species'

> str(iris) #查看数据集结构

'data.frame': 150 obs. of 5 variables:

$ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...

$ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...

$ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...

$ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...

$ Species : Factor w/ 3 levels 'setosa','versicolor',..: 1 1 1 1 1 1 1 1 1 1 ...


> attributes(iris)#得到数据结构的属性列表

$names

[1] 'Sepal.Length' 'Sepal.Width' 'Petal.Length' 'Petal.Width' 'Species'


$row.names

[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

[32] 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62

[63] 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93

[94] 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124

[125] 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150


$class

[1] 'data.frame'



> iris[1:5,] #显示数据的前5列

Sepal.Length Sepal.Width Petal.Length Petal.Width Species

1 5.1 3.5 1.4 0.2 setosa

2 4.9 3.0 1.4 0.2 setosa

3 4.7 3.2 1.3 0.2 setosa

4 4.6 3.1 1.5 0.2 setosa

5 5.0 3.6 1.4 0.2 setosa

> iris[1:10, 'Sepal.Length'] #显示'Sepal.Length'的前10行

[1] 5.1 4.9 4.7 4.6 5.0 5.4 4.6 5.0 4.4 4.9

> iris$Sepal.Length[1:10] #同上

[1] 5.1 4.9 4.7 4.6 5.0 5.4 4.6 5.0 4.4 4.9

> summary(iris) #数据集中每个变量总的描述

Sepal.Length Sepal.Width Petal.Length Petal.Width Species

Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100 setosa :50

1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600 1st Qu.:0.300 versicolor:50

Median :5.800 Median :3.000 Median :4.350 Median :1.300 virginica :50

Mean :5.843 Mean :3.057 Mean :3.758 Mean :1.199

3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100 3rd Qu.:1.800

Max. :7.900 Max. :4.400 Max. :6.900 Max. :2.500

> library(Hmisc)

> describe(iris[, c(1, 5)]) #同上代码功能,但显示的更漂亮些,呵呵!

iris[, c(1, 5)]


2 Variables 150 Observations

------------------------------------------------------------------------------------------------------------------------------------

Sepal.Length

n missing unique Info Mean .05 .10 .25 .50 .75 .90 .95

150 0 35 1 5.843 4.600 4.800 5.100 5.800 6.400 6.900 7.255


lowest : 4.3 4.4 4.5 4.6 4.7, highest: 7.3 7.4 7.6 7.7 7.9

------------------------------------------------------------------------------------------------------------------------------------

Species

n missing unique

150 0 3


setosa (50, 33%), versicolor (50, 33%), virginica (50, 33%)

------------------------------------------------------------------------------------------------------------------------------------

> range(iris$Sepal.Length) #返回Sepal.Length的最大值和最小值

[1] 4.3 7.9

> quantile(iris$Sepal.Length)#返回分位数

0% 25% 50% 75% 100%

4.3 5.1 5.8 6.4 7.9

> quantile(iris$Sepal.Length, c(0.1, 0.3, 0.65))#返回自定义的分位数

10% 30% 65%

4.80 5.27 6.20

> var(iris$Sepal.Length)

[1] 0.6856935

> hist(iris$Sepal.Length)


> plot(density(iris$Sepal.Length))


> table(iris$Species)


setosa versicolor virginica

50 50 50

> pie(table(iris$Species))


> barplot(table(iris$Species))


cov(iris$Sepal.Length, iris$Petal.Length)

## [1] 1.274315

cor(iris$Sepal.Length, iris$Petal.Length)

## [1] 0.8717538

cov(iris[, 1:4])

## Sepal.Length Sepal.Width Petal.Length Petal.Width

## Sepal.Length 0.6856935 -0.0424340 1.2743154 0.5162707

## Sepal.Width -0.0424340 0.1899794 -0.3296564 -0.1216394

## Petal.Length 1.2743154 -0.3296564 3.1162779 1.2956094

## Petal.Width 0.5162707 -0.1216394 1.2956094 0.5810063

> boxplot(Sepal.Length ~ Species, data = iris)


> with(iris, plot(Sepal.Length, Sepal.Width, col = Species,

+ pch = as.numeric(Species)))


> plot(jitter(iris$Sepal.Length), jitter(iris$Sepal.Width))


> pairs(iris)


>library(scatterplot3d)

>scatterplot3d(iris$Petal.Width, iris$Sepal.Length, iris$Sepal.Width)


> dist.matrix <- as.matrix(dist(iris[,="">

> heatmap(dist.matrix)


> library(lattice)

> levelplot(Petal.Width ~ Sepal.Length * Sepal.Width, iris, cuts = 9,

+ col.regions = rainbow(10)[10:1])


> filled.contour(volcano, color = terrain.colors, asp = 1, plot.axes = contour(volcano,add = T))


> persp(volcano, theta = 25, phi = 30, expand = 0.5, col = 'lightblue')


> library(MASS)

Warning message:

程辑包‘MASS’是用R版本3.0.3 来建造的

> parcoord(iris[1:4], col = iris$Species)


> library(lattice)

> parallelplot(~iris[1:4] | Species, data = iris)




    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约