存档

‘数据可视化’ 分类的存档

40个可视化数据的基本工具和资源

2011年2月8日 没有评论

译者注:本文是上一篇文章,应该使用那些可视化工具/软件?-入门的继续,主要从三个方面讨论了这些工具和资源,一是组织数据,二是图标和图形化数据,三是数据动画/交互式数据可视化。

经常有人问我“ 你用什么软件可视化数据?“很多人都激动地捣鼓他们的数据,但不知道如何去做,也不知道怎么开始。下面是我使用的工具和资源。它们对数据可视化,从组织数据,到形成图形,直至形成动画和交互都有所帮助。

整理数据


很少有数据会以你期望的格式呈现。比如你有一个逗号分隔的文件,但你需要XML格式的,或者你有一个Excel电子表格,需要导入一个MySQL数据库中,或者数据分散在几百个的HTML页面中,你需要将其放在一起。数据的组织非常费力,值得了解这些语言/工具。你想的最后一件事就是严格的限制数据格式。

PHP

PHP的是我学习的第一种脚本语言,它非常适合网络开发,所以我用着很是舒服。本人常常使用PHP,把CSV文件变成XML格式。函数fgetcsv()就能实现。这也是个导入MySQL数据库或调用API的好办法。

资源:

Python

大多数计算机科学数据类型-至少我曾经使用过-在PHP中执行不好。选择Python,主要是因为Python代码有更好的结构和很酷的服务器端函数。我最喜欢的Python的工具包是Beautiful Soup ,这是一个HTML / XML的解析器。这是什么意思呢?Beautiful Soup非常擅长筛选抓取。

资源:

MySQL

当我有很多的数据-规模成百上千时-我使用PHP或Python将其存到MySQL数据库中。MySQL 几乎可以让我的数据子集以任何格式呈现。

资源:

R

啊哈,又好又老的R 。这就是统计人员使用,无人能超越的语言。有人在自己的计算机上安装,但还没有学习。有时我用R分析。尤其当条件非常复杂,MySQL难以胜任的时候,我用它来从数据集中提取有用的子集,然后导出为CSV文件。

资源:

Microsoft Excel

我们都知道这个。如果一个数据集很小,或者我当时就想点点鼠标,我使用Excel。

图表和图形

到此,数据已经处理,格式化,可以进行下一步。现在,开始进行可视化。使用何种软件形成统计图表和图形取决于我手头的任务,我不想把自己局限在软件里。例如,R是计算快速,能快速形成结果,但不适合Web应用程序。

Adobe Illustrator中

我用Adobe Illustrator制作出版级的图形。当我没有时间限制的去做什么的时候,我学习如何使用它,并一直很喜欢使用它。因为您可以简单地点击和拖动每一个图形元素。

资源:

R

如果你想实现一个(非动画,非交互式)特定类型的统计可视化,你有可能用到它。R是免费的,有无数资源和库。如果你没能找到一满足您的需求的库,您可以随时使用脚本实现。关于R的一个很酷的事情是,你可以保存为PDF格式的图形,然后在Adobe Illustrator中细化它。

资源:

PHP的图形库

对于PHP的GD库 我的经验非常有限。有几个PHP的图形包,但我还没有找到一个我完全喜欢的,所以我通常更喜欢使用GD库绘制自己的图形。在PHP的图形库的Sparklines也不错。

资源:

使用Javascript的HTML + CSS的+

你可以用一些简单的HTML和CSS,控制图表和表格的绘制,及其颜色和大小。例如,你在网络上看到的大量的标签云就是只用HTML和CSS。 再结合Javascript能够实现交互功能。

资源:

Flash/Actionscript

再动画和移动数据方面,Flash和ActionScript广为人知,但它可以进行统计工作。如果你想添加一些相互作用,如强调或过滤,到你的可视化工作中,使用它们非常不错。

资源:

Microsoft Excel

我很少使用Excel作图。如果我需要的东西非常急,而且这些数据存在Excel电子表格里,我会使用它的图形功能。

资源:

动画数据

有很多方法来创建动画和交互式数据形式可视化,这些是我使用过的(更多的部分,你可以在网络上直接看到)。

Processing

是的,这就是所谓的Processing 。我见过的大多是设计师使用它,但不能说明它不能用在别的地方。Processing使用画布,你画草图,然后,使得到一个Java小程序。Processing就是给非程序员设计的。

资源:

Flash/Actionscript

我一直对Flash和ActionScript很感兴趣。主要是因为Java小程序是死的,而网络是活的。交互式/动画可视化的例子,你从纽约时报,Stamen Design中看到,Web应用程序通常使用Flash和ActionScript。没看到?简单的右键点击你正在看的,就知道是什么了。从我以前写的ActionScript数据可视化中可以看到更多细节。

资源:

OK,已经很多了。一开始窝只列出10个工具和资源,但它不断增加。说实话,我没有意识到我居然用这么多东西。你用那些工具,取决于你的工作,有时候这个工具不行,那个也许就行了。

令人惊讶的是,这只是我使用的工具。还有很多我没有用过的工具。你使用过那些这里没有列出的可视化工具?或者知道一些其他很有用的资源?
原文链接

应该使用那些可视化工具/软件?-入门

2011年2月8日 没有评论

译者注:这是一篇非常简单的入门小文,虽然内容不多,但条理清楚。对于高手来说,这些东西本来就很简单。不是吗?


您是否一直想进行数据可视化学习,但不太知道从哪里开始呢?

帮助您可视化数据工具越多,却让你越迷茫,不知道从哪里开始。好消息是,有很多免费可用的工具供你选择,帮助您开始数据可视化之旅。这里,我们需要考虑的是,哪一个最适合你的问题。本指南帮您走出困境。

但是,在我们深入讨论之前,让我们先看几个问题。

你在看什么数据?

希望你已经有一个你感兴趣的数据集,如果没有,去寻找一个。在你学习的时候,使用有实际的数据非常重要,因为它将决定使用什么样的可视化工具。

网络上有很多地方可以找到大量数据。下面是几个不错的地方。

以上的数据集都比较小,别忘记那些政府机构,有些部门很乐意把他们的数据共享。选择一个你感兴趣的数据并得到它。

得到数据了?好,让我们继续。

你可视化的目的是什么?

下一步的问题是你想怎样可视化你的数据。你正在开发一个具有一些图表Web应用程序?它是一个互动的工具吗?你想在您的幻灯片演示更美观的图形呢?还是进行可视化用于出版发布?还是你仅仅需要进行分析?

在说一遍,你在这里决定将影响你使用什么工具。使用什么样的可视化软件。现在你已有两个问题的答案,我们能够决定什么工具最适合你。

用于出版

这意味着像你在报纸上看到图形。大多数人使用Adobe Illustrator 。它赋予您对您的图形中的所有元素的控制 – 颜色,字体,方向等。如果你想要做更复杂的图表,你也可以设计交给在Illustrator,加一些编程或应用一些附加库,同样可是实现。你还可以使用R,一个统计计算的软件环境和图形。用R声场pdf格式的文件,然后导入到Illustrator中进行详细的调整。

例如: The New York Times

用于演示

许多人想在幻灯片上加入一些惹人注意的图形。你可以使用上面的相同的软件,当然也可以使用微软Excel,尽管它太过简陋。这里的关键是不要使用默认设置。实际上,你可以使用Microsoft Excel做很多工作,而且看起来也不错。另外,你不要让包含在演示幻灯片中的图形具有太多细节,因为远处的人们看不到它们。

就个人而言,我不使用Microsoft Excel的图形更因为我很喜欢用R和Illustrator。

用于分析

有很多的分析工具,问一个人一个样。我用R,而这需要一些编程技能。大多数人使用Excel。我也听说Tableau软件很不错 。

用于Web应用程序

我将假定你有一个编程背景,如果你希望做一个Web应用程序的可视化。如果您不会编程,你可以尝试Many Eye或Fusion Charts。但是,你将被限制在这些应用软件的功能上。

现在,如果你正在做Web开发,这里有两个主要选择。首先是Processing ,可以使编码更容易,可以做很多超乎想象的东西。在其论坛和网站上,有丰富的教程和技巧。最终会帮助你形成一个Java小程序。

第二,更受欢迎的选择是Flash。你可以使用Flash程序做你想要的东西,或者你可以使用ActionScript,用纯编码实现你的目的。无论哪种方式,最终的结果必须在Flash环境中运行。Flare visualization toolkit(Flare可视化工具)包能够帮你。

Flash的好处是,它往往比Java加载速度更快,而且,相比于Java环境,更多的人在他们的计算机上安装了Flash环境。如果你使用Flash程序,你可能根本不用代码,但如果你想认真的进行可视化,你需要学习ActionScript。而且,通过Processing可以容易地学习智能编码。而且,它是免费和开源的。

例子: Many Eyes, Rescue Time

用于艺术

Processing明确的说,就是为艺术家和设计人员准备的软件。在说一次,它非常容易学,并且功能巨大。而对于对非交互式图形,Illustrator是最常见的选择,因为它能够对所有的设计元素进行拖拽控制。

例如: Processing Gallery

您使用什么软件?

很显然,我只提到了可视化工具中的一小部分。最终,可视化不仅仅是一堆软件的使用,而是各种供您选择完整的工具箱任你挥洒创意。

这里我列出了经常使用工具和资源。你正在使用什么软件呢?当然,你也可以参考我的翻译
原文链接

sas的TRANSPOSE过程详解

2010年8月16日 没有评论

今天我第一次用到sas里面的TRANSPOSE过程,为此我查了一些资料,发现网上有些文章写的不是很清楚。下面我谈谈sas里面的TRANSPOSE过程。本文只在sas8.2下调试通过。
先看图,有些简陋。

sas transpose过程说明图

TRANSPOSE过程能实现sas数据集的转置,所谓转置,就是把观测(行)变成变量(列),变量变为观测,如上图中,从表1变成表3。该过程从读入的一个数据集中,创建一个新的数据集。具体用法格式如下:

PROC TRANSPOSE
DATA=input-data-set  LABEL=label LET NAME=name OUT=output-data-set PREFIX=prefix
;
BY  variable-1
... variable-n
;
COPY variable(s);
ID variable;
IDLABEL variable;
VAR variable(s);

sas里的所有过程,都分为选项/option和声明statement两部分,在格式上,选项与过程名是一条语句,而每个声明单独成语句,也就是用分号分隔开。在程序运行上也一样,过程与选项一次性读入后分析。
很多时候,我们也许只用到几个选项,或者几个声明就实现了自己的目的,不过如果你能确切的了解每个过程的选项和声明,会让你的程序更加简洁易读。
以下是从sas support翻译过来的,并加入我自己的解释。

选项/Options

选项1:

DATA=input-data-set

需要进行转置的数据集的名字。 默认情况下,转置最近新建的数据集。

选项2:

LABEL= label

英文的表述是:指定新输出的数据集中新观测的变量的标签,默认是_LABEL_,但是经过我的测试,这个选项没有任何意义,也就是设置与否不起任何作用。

选项3:

LET

允许重复的ID变量,并且当重复时,以最后一个为准,所谓的id变量,就是类上图中表1中name的作用,一般来讲,它的值不允许重复,因为如果重复,会导致生成重复变量。

选项4:

NAME= name

指定新转置生成的数据集里新变量的名称。比如上图中转置后的表2和表三的第一列,也就是第一个变量的名称,如果不设置,会以name of former variable命名,设置后,该变量的标签名依然是name of former variable。我认为前面的label选项,就是用来设置该变量的标签的,但是设置后居然没有变化,不知道是我sas问题还是版本的问题。在上图表3中,我设置name为tnew,所以显示为tnew。在sas9.2版本中,改默认变量为_name_。

选项5:

OUT= output-data-set

输出数据集,也就是转置后的数据集的名称,默认以data后面加数字来命名。

选项6:

PREFIX= prefix

前缀,原来观测变成变量后的前缀,不设置,也就是默认情况下,这些变量会以col1,col2排列下去,有的sas版本会以var1, var2排列下去。设置后,会以设置的字符串后加上数字1、2,并以此排列下去。为便于识别变量,这个选型经常与声明里的id混合使用,如表3,就是使用了id声明与前缀选项的结果。
例程如下,你可以copy到sas里查看运行结果。

data a;
input name $ test1 test2 test3;
cards;
wyt 98 99 97
ycy 78 45 34
ynn 78 90 87
;
run;
proc transpose data=a  name=tnew label=n  out=b  let  ;
run;
proc print data=a;
run;
proc print data=b;
run;

声明/statement

下面是transpose过程的声明。声明使用的例程如下,比上面多的就是在选项之后,与run之间的声明部分。

data c;
input name $ test1 test2 test3;
cards;
wyt 98 99 97
ycy 78 45 34
ynn 78 90 87
;
run;
proc transpose data=a  name=tnew label=n  out=d  prefix=t let  ;
id name;
var name test1 test2;
copy test3;
 
run;
proc print data=d;
run;
proc print data=c;
run;

声明1:

BY  variable-1
<... variable-n>
;

下面这张图,很清楚指明了分组转置是怎么样一个过程,其中的DESCENDING是以降序排列,而NOTSORTED,是不排序。此声明没在sas8.2下测试。

声明2:

ID variable(s);

在前面说过,prefix经常与此声明共同使用,该声明的作用就是,把新生成数据集里的变量用id的值表示出来,如上图中的表三,就是应用了id后把id的值一一指定。在sas的很多过程里均有id的概念,该值一般不重复,因此可以指定为变量,在sas数据集里,观测可以重复,变量不能重复。另外,这个声明还经常与下面的声明仪器出现。

声明3:

IDLABEL variable;

用来指定上面对应变量的label,标签。

声明4:

VAR variable(s);

指明那几个变量进行转置,在本例子中,只讲test1与test2进行了转置,生成如下图的sas数据集。

声明5:

COPY variable(s);

这个声明用来原样拷贝源数据集中的某一个变量,原样不动的含义就是在新数据集里,改变量的值与源数据集中的一样,下面的例子,最后生成的数据集如下图所示,看着有点发懵,呵呵,在仔细看看就懂了

sas transpose statement


另外,当我要获取sas数据集的变量名并赋值给宏的时候,这篇文章帮了大忙,谢谢。具体内容转帖如下:
对一个数据集的变量进行分析,至少需要变量名,对吧。如果变量少,自已逐个输入也没问题,所谓忍一忍就和谐了。如果变量多呢,就无法忍受了–一个个地敲进去,不但麻烦,且易出错。解决之道有三种。

其一是读取表的dictionary.columns.Dictionary表里保存着库名及其成员的名字。以sashelp里的表class为例。

proc
sql;


create
table vars as

  
select varnum,name

  
from dictionary.columns

  
where memname=‘CLASS’;

quit;

其中varnum表示是第几个变量,name表示变量名。值得提醒的是,Dictionary里是以大写字母的形式保存表名。所以这里须要写CLASS

其二是读取SASHELP.VCOLUMN。以数据步读取的形式如下

data vars1;

set sashelp.vcolumn;

where memname=‘CLASS’;

keep varnum name;

run;

其三是利用过程proc contents。这个要来得比读取dictionary和sashelp.vcolumn灵活。

data vars1;

set sashelp.vcolumn;

where memname=‘CLASS’;

keep varnum name;

run;

如果需要将变量名赋给一个宏变量,以空格隔开。其例如下

proc
contents
data=sashelp.class


out=vars3(keep=varnum name)

     noprint;

run;

proc
sql

noprint;


select
distinct name

     into :classname separated by
‘ ‘

     from vars3

     order
by varnum;

quit;

可以用%put &classname;察看其宏变量。得到结果

Name Sex Age Height Weight

当然有时并不想所有的变量都赋给这个宏变量。比如只想取出第1个和第2个变量给宏变量。当然也好解决。

proc
sql
noprint;


select
distinct name

     into :classname separated by
‘ ‘

     from vars3

     where varnum in (1,2)

     order
by varnum;

quit;

注意加了行where varnum in (1,2).或者

proc
contents
data=sashelp.class(keep=Name Sex)


out=vars4(keep=varnum name)

     noprint;

run;

proc
sql
noprint;


select

distinct name

     into :classname separated by
‘ ‘

     from vars4    

     order
by varnum;

quit;

%put &classname;

也是一样的。

分类: 数据可视化 标签: ,

SAS变量输入输出格式控制

2010年7月18日 4 条评论

读朱世武老师的《SAS编程技术教程》,的确是一本不错的书籍,至少很适合我。因为对于我,对SAS算初窥门径,经常在编程的时候忘记一些函数,或者寻找软件的一些功能,这本书恰恰就是如此,作为刚刚入门的书籍并不好,但是作为参考书,很好,至少把很多函数和命令分门别类清晰的表述清楚了。其实国内的书籍都很少能够达到这个层次。这本书相对于SAS帮助文档来说,查阅比较方便,因为sas帮助文档不能搜索,而这本书更体现参考书的价值。

最近要处理大量的日期、和会计(带千位符)的数字,以前处理这类数据都是从excell导入的,操作之后发现,导入的数据有时会出现一些小问题,而且还要用insight一个个的编辑变量,比较麻烦,希望能够通过cards一次性录入。方便以后存储和备份,因为随着SAS应用越来越多,我更倾向于用SAS来创建、管理我的研究数据。为此,我阅读了朱老师关于变量输入与输出格式控制的内容,笔记如下:

    1、输入格式

输入格式是SAS系统用来读入数据值的一个指令。

输入格式形式

<$>  INFORMAT<W>.<D>

选项说明:

$ 字符格式
W 输入数据的列数
D 数值输入格式中保留小数的位数
Informat 用来规定数据的输入格式

通用规则:
所有输入格式必须包含一个点(.)作为名字的一部分;
对于省略W和D值的输入格式,使用系统缺省值。

    2、列格式输入
input @6 date ddmmyy10.  @+1 stocd $ 8.  oppr 8.2;

说明:从第6列开始以DDMMYY10.格式读入变量DATE, 第7列开始以长度为8的字符格式读入变量STOCD,然后以数值格式8.2读入变量OPPR。
查看都安装了那些模块,和一些系统信息。

    3、数值与字符相互转换的方法

字符转换数值

1
2
3
4
5
data;
x='98.6';
y=input(x, 4.);
put x= y=;
run;

说明:INPUT函数和w.d输入格式将X的字符值转换为一个数值Y。还有一个更简单的,将字符值转换为数值的方法。

1
2
3
4
5
data;
x='98.6';
y=x-0;
put x= y=;
run;

数值转换为字符

1
2
3
4
5
data;
x=2557898;
y=put(x, $8.);
put y;
run;

例中,用PUT函数得到正确结果,即字符型2557898.

1
2
3
4
5
data;
x=2557898;
y=put(x, $3.);
put y;
run;

例中,Y的结果为3E6.

4、读入会计格式字符
读入类似11,222.11格式的字符。

1
2
3
4
5
6
7
8
data a;
input x;
informat x comma12.4;
cards;
12,345.1234
22,345.1234
;
run;

当然,你可以按照下表,更换不同的输入格式以读入不同格式的数据。

其中,COMMAw.d 用于输入格式读入包含字符的数值,这些字符包括: 逗号、空格、 $、%、破折号、圆括号等。
5、输入输出日期
SAS系统存贮日期值为1960年1月1日到这个日期之间的天数。

1
2
3
4
5
6
7
data a;
input date mmddyy10.;
cards;
10-01-2002
10/01/2002
;
run;

此时,日期中存储的是天数,当使用insight等的时候,不直观,所以一般用下面的程序录入数据。

1
2
3
4
5
6
7
8
data a;
input date mmddyy10.;
format date yymmdd10.;
cards;
10-01-2002
10/01/2002
;
run;

当然,你还可以根据下表,输入不同格式的日期数据。

此时,存储的虽然仍然是天数,但是是根据您的要求显示了。还可以根据下面的表,设置具体的显示形式。

    5、PUT函数

PUT函数可将数值转换为字符(如前所述),但最常用的是改变变量的字符输出格式。
例1: 转换数值变量cc的值为三个字符的十六进制表达式。

1
2
3
4
5
data;
cc=16;
cchex=put(cc,hex3.);
put cc hex3.;
run;

结果为010.
例2: 将数值CC转换为字符值。

1
2
3
4
data;
cc=16;
cc=put(cc,3.);
run;

例3: 输出时美元符号放在数值前面,中间加上千分号。

1
2
3
4
data;
Netpay=1254.71;
put @53 netpay  dollar10.2;
run;

输出值为$1,254.71.

字符变量的输出格式可以查阅下表。

再一次感谢朱世武老师的总结。

分类: 数据可视化 标签: , ,

SAS8.2安装及学习笔记

2010年7月11日 没有评论

最近一直要用SAS分析数据,以前一直用SAS6.12,这次下载了SAS8.2,借这个机会把8.2给搞定。

    安装问题

安装很容易,只是在破解时间限制的时候,总是提示:

sashost.dll missing or has been opened

google了半天没有结果,后来到安全模式下运行,嗯,搞定。后来在搜索别的什么东西的时候,发现一个破解时间限制的办法,摘录如下,原文点这里

由于原来提供的SAS8.2破解方法是针对SP1的,所以导致现在用SP2的很多朋友无法成功破解时间限制,现经过测试将方法提供给大家。
本人不提倡使用盗版软件,但有时为了学习的方便或了解某个软件的目的,偶尔使用一下盗版还是可以的:

1. XP+SP1:
将时间调到2002年8月1日前—->安装,licence就指向这个setinit.sss—>完后,运行Patcher,时间限制就可以取消了。

2.XP+SP2:
将时间调到2002年8月1日前—->安装,licence就指向这个setinit.sss—>完后,必须进入SAFE MODE模式,然后运行Patcher,才可以成功破解日期限制。

  • 我在这里加上一句,有条件请使用正版软件。
    • 2、SAS几种常见的图形操作界面

    分析员(Analyst):和SPSS操作类似,有助于学习SAS语句;
    SAS/INSIGHT: 可视化的数据探索工具,将统计方法与交互式图形显示融合在一起;
    SAS/ASSIST: 全面的图形操作界面,包括SAS在数据管理、统计分析、绘图等方面常见的功能;
    SAS/LAB: 半自动化图形操作界面,可帮助初学者快速熟悉SAS系统。

      3、SAS的solutions菜单

    相比SAS6.2,新版本增加了solutions菜单,其集成了许多SAS的模块入口,比如Analyst, Design of experiments et al.而且,这里的Accessories里面有六个有趣的小游戏。

      4、其他小东西

    Length一般出现在变量定义之前;
    Format指定格式要在input之前;

    分类: 数据可视化 标签:

    一幅图说明学科之间的关系

    2010年3月30日 没有评论

    对,就是下面这幅图。
    图的外圈的四种颜色代表四种主要的期刊组,每组又详细的分列了很多领域,内圈主要是不同的杂志,使用“特征因子”进行划分。一开始画图时,采用了引用链接的头1000个,线条的粗细和透明度代表相关性,然后使用贝捷曲线完成作图。你可以通过点击内圈的任意一段,一段代表一种期刊,或者外圈的领域,显示所有的引用及被引用的链接。

    请猛击这里体验
    从这幅图可以得出或验证以下结论:
    1、生物学已经成为各种科学的基础,尤其医学,环境、营养;
    2、经济学、心理学、数学、计算机学这几门学科的独立性较强,尤其经济学,这意味着你学习了这几门中的一门后,以后很难转行,或者说转行后很难利用自己的专业知识,这相比于其他学科,比如医学、生物学等等,互相之间联系很紧密,你学习任意一门,都可以在这些学科中转换;
    3、数学学科这一与科学研究紧密的学科竟然与其他学科很少交集,我预测将来随着计算机及应用数学的发展,未来的联系会愈发紧密;
    4、science和nature是综合类刊物,因此有些从其中引用而出的关系并不可信;

    分类: 数据可视化 标签: ,

    细说显著性检验和P值

    2008年5月7日 3 条评论

    P值是怎么来的

    从某总体中抽样所得的样本,其参数会与总体参数有所不同,这可能是由于两种原因:

    、这一样本是由该总体抽出,其差别是由抽样误差所致;

    、这一样本不是从该总体抽出,所以有所不同。

    如何判断是那种原因呢?统计学中用显著性检验赖判断。其步骤是:

    、建立检验假设(又称无效假设,符号为H0):如要比较A药和B药的疗效是否相等,则假设两组样本来自同一总体,即A药的总体疗效和B药相等,差别仅由抽样误差引起的碰巧出现的。、选择适当的统计方法计算H0成立的可能性即概率有多大,概率用P值表示。、根据选定的显著性水平(0.050.01),决定接受还是拒绝H0。如果P0.05,不能否定“差别由抽样误差引起”,则接受H0;如果P0.05P 0.01,可以认为差别不由抽样误差引起,可以拒绝H0,则可以接受令一种可能性的假设(又称备选假设,符号为H1),即两样本来自不同的总体,所以两药疗效有差别。

    统计学上规定的P值意义见下表

    P

    碰巧的概率

    对无效假设

    统计意义

    P0.05

    碰巧出现的可能性大于5%

    不能否定无效假设

    两组差别无显著意义

    P0.05

    碰巧出现的可能性小于5%

    可以否定无效假设

    两组差别有显著意义

    P 0.01

    碰巧出现的可能性小于1%

    可以否定无效假设

    两者差别有非常显著意义

    理解P值,下述几点必须注意:

    P的意义不表示两组差别的大小,P反映两组差别有无统计学意义,并不表示差别大小。因此,与对照组相比,C药取得P0.05D药取得P 0.01并不表示D的药效比C强。

    P0.05时,差异无显著意义,根据统计学原理可知,不能否认无效假设,但并不认为无效假设肯定成立。在药效统计分析中,更不表示两药等效。哪种将“两组差别无显著意义”与“两组基本等效”相同的做法是缺乏统计学依据的。

    统计学主要用上述三种P值表示,也可以计算出确切的P值,有人用P 0.001,无此必要。

    显著性检验只是统计结论。判断差别还要根据专业知识。

    显著性检验的手段

    t检验

    t检验有其应用条件,那就是数据基本符合常态,且两组方差(标准差的平方值)大致相齐,否则不宜采用t检验。

    方差是否相齐

    所谓方差不齐,是指两组的标准差相差太大。两组均数的显著性检验时,除要求资料数据符合常态分布外,还有另一前提条件,即两总体的方差(标准差的平方)要相近,因而对数据要进行方差齐性检验。

    方差齐性检验的方法

    1公式法

    S较大者为S1 n1;小者为S2 n2。通过查“F值方差齐性检验表”或经过公式计算出F0.05值,若FF0.05,表示两组方差之差异有显著意义,也就是两组方差不齐。

    2简单方法

    若两组资料标准差相差超过一倍时,可以肯定两组方差不齐。

    分类: 数据可视化 标签:

    现代数据可视化方法

    2008年2月19日 4 条评论

    译者按:看老外的报告,我最欣赏的地方就是那些数据图。有的做的的确是精彩绝伦。比我们的数据图更能说明问题。草草看了几遍,就开始翻译。翻译后才发现,这些方法在科研中也有用到,只没有表现的这么漂亮罢了。然后向以往一样,不得不佩服老外的思路和方法,还有艺术表现力(看看我整理的艺术教育类站点吧)。刀还是那把刀,只是主人换了。

    数据可视化,数据处理的一种。就是用数据,通过一定的统计分析手段,得到更能说明问题的图。或者说以图形的方式表示数据。

    下面这幅图片,就是对数据进行处理得到的。看起来是不是很奇幻?数据可视化有的时候就类似一种奇幻之旅,让我们开始吧。

    data visualization

    ———————下面开始————————

    阅读全文…

    统计课程之主成分分析

    2007年5月15日 2 条评论

    1、主成分分析(principal component analysis,PCA)

    英文学习网站:http://www.dcs.gla.ac.uk/~mc/1stYearReport/2.6_PCA.htm
    主成分分析适用情况:多变量大样本分析中,变量间存在共线性,增加了分析的复杂性。若分别分析各个指标,分析有可能是孤立的,而不是综合的;盲目地减少指标又有可能损失很多信息,得出错误结论。欲采用较少指标,反映原资料大部分信息,可采用主成分分析和因子分析。也可以这样讲,任何一个度量指标的好坏除了可靠、真实之外,还必须能充分反映个体间的变异。如果有一项指标,不同个体的取值都大同小异,那么该指标不能用来区分不同的个体。由这一点来看,一项指标在个体间的变异越大越好。因此我们把“变异大”作为“好”的标准来寻求综合指标。

    主成分分析概念: PCA是将分散在一组变量上的信息,集中到某几个综合指标(主成分)上的一种探索性统计分析方法。它利用降维的思想,将多个变量化为少数几个互不相关的主成分,从而描述数据集的内部结构。
    table.GIF
    主成分分析的几何意义:参见上面数据表1例中的的数据点是六维的;也就是说,每个观测值是 6 维空间中的一个点。我们希望把 6 维空间用低维空间表示。

       先假定只有二维,即只有两个变量,它们由横坐标和纵坐标所代表;因此每个观测值都有相应于这两个坐标轴的两个坐标值;如果这些数据形成一个椭圆形状的点 阵(这在变量的二维正态的假定下是可能的),那么这个椭圆有一个长轴和一个短轴。在短轴方向上,数据变化很少;在极端的情况,短轴如果退化成一点,那只有 在长轴的方向才能够解释这些点的变化了;这样,由二维到一维的降维就自然完成了。

      当坐标轴和椭圆的长短轴平行,那么代表长轴的变 量就描述了数据的主要变化,而代表短轴的变量就描述了数据的次要变化。但是,坐标轴通常并不和椭圆的长短轴平行。因此,需要寻找椭圆的长短轴,并进行变 换,使得新变量和椭圆的长短轴平行。如果长轴变量代表了数据包含的大部分信息,就用该变量代替原先的两个变量(舍去次要的一维),降维就完成了。椭圆 (球)的长短轴相差得越大,降维也越有道理。

      对于多维变量的情况和二维类似,也有高维的椭球,只不过无法直观地看见罢了。

      首先把高维椭球的主轴找出来,再用代表大多数数据信息的最长的几个轴作为新变量;这样,主成分分析就基本完成了。

      注意,和二维情况类似,高维椭球的主轴也是互相垂直的。这些互相正交的新变量是原先变量的线性组合,叫做主成分 (principal component) 。

      正如二维椭圆有两个主轴,三维椭球有三个主轴一样,有几个变量,就有几个主成分。

      选择越少的主成分,降维就越好。什么是标准呢?那就是这些被选的主成分所代表的主轴的长度之和占了主轴长度总和的大部分。有些文献建议,所选的主轴总长度占所有主轴长度之和的大约 85% 即可,其实,这只是一个大体的说法;具体选几个,要看实际情况而定。

    分类: 数据可视化 标签:

    RSD与SD

    2007年3月14日 没有评论

    今天有学生问我,RSD与SD是什么意思,解释下:

    RSD即Relative Standard Deviation.叫相对标准偏差,也称变异系数(CV),RSD=标准差/平均值*100% ,一般来说,RSD越小,测定值之间的接近程度越好的,也就是平常所说的精密度。

    SD即Standard Deviation,叫标准偏差,也就是我们说的s。

    计算公式如下:
    公式