Sunday, August 15, 2010

访问网站出现Failed to access IIS metabase报错


访问网站出现Failed to access IIS metabase报错

Source: Link
问题原因:IIS没有注册!
解决步骤:
在CMD中进入目录C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727,运行aspnet_regiis

1、aspnet_regiis -ga administrator(administrator为当前用户)

2、aspnet_regiis -i (注册IIS)

3、iisreset /noforce (重启IIS)

Monday, August 9, 2010

写作英文论文的一些心得

来自:Link
对经济学新人来说,不管论文写几十页,除了倒霉的匿名审稿人之外,没人会花超过五分钟去读。那么合理的写作策略就是最大程度的节省读者的阅读时间,最有效的传递信息。具体而言,我力图达到以下目标:
1. 如果读者只有十秒钟,他也应该清楚地知道我干了什么,主要结果是什么,用了什么数据,贡献在哪里。
2. 如果读者有三十秒,他应该在得知以上信息的基础上,知道我是这么论证的,并且能够快速在三四十页的论文中准确地找到他想读的内容。
3. 如果读者有一分钟,他应该能知道80%的论文内容,并且觉得似乎应该多花两分钟再看看。
4. 如果读者有三分钟,他应该能准确地知道我在讨论的这件事的来龙去脉,准确地知道我的方法我的假设。如果我是一个推销员的话,我必须做到在三分钟内把最重要的卖点都说清楚了,说好了,至于读者买不买,那是另一回事了。
5. 如果读者是匿名审稿人,必须花几十分钟读论文的话,那我要做到最小化他的阅读负担,别把他老人家惹毛了。

如何达到以上目标呢?我总结的心得散见于各位大牛给年轻人的写作建议中,我只是把它们换成我的方式再表达出来。这些建议都宝贵,我读过不少于十遍,写作的时候更是隔三岔五拿出来对照一番,每次都有收获。Mankiew收集的建议在这里 Blattman收集了另一些在这里

一、如果读者只有十秒,他只会读ABSTRACT. 这个东西极端重要,首先它是论文的第一段,读者这时候注意力还集中着,脑子还转着。一般而言,读者在读完三段以后注意力就散的差不多了,所以头三板斧(段)很重要。其次它一般也是论文的最后一段,读者读完这段才决定是不是往下看,大部分时候就不继续看了。
所以ABSTRACT要把所有重要的内容表述出来,不能超过150字。对empirical的论文来说,这段要包括研究的问题,使用的数据,identification,和所有重要的估计结果,带数字的。
有一回我把ABSTRACT写到150字了,觉得巨满意,简洁得不行,简直不能再多删一个字。后来去投稿,学报要求必须在100字以内,而且是网络提交,网页的对话框是设定好的,一超过100字就变红字,那是相当吝啬没办法,再重写。删啊删的,硬是砍掉了50多字,居然也没觉得损失什么内容。可见曾经自鸣得意的简介,如果再使劲儿逼一下,还是有三分之一多的水分。
要投出去的论文,不管是学报也好,JMP也好,应该尽量没有因为写作而造成的水分。

二、如果读者有30秒,他会在看完ABSTRACT之后迅速浏览论文的章节结构,这时候章节的标题怎么写就很重要了。
原则是:章节的标题要传递信息,除了IntroductionConclusions之外,所有的标题都应该有内容。
比如,如果一个章节叫“Data”, 那就没有内容。如果叫“Data: CPS 1990-2000”,这就是有内容。或者删掉“data”这个词,直接用数据名称做标题,别担心,傻子也会知道那是数据名称,干嘛还非得写”DATA”这个词儿呢?
再比如写作估计结果时,如果那部分标题就叫”Results” 那就没内容,或者叫“Effects of X on Y,也没有内容。有内容的写法大概类似于“Higher X, Higher Y”。就像做slides的标题一样,每个标题都直陈了结果。
标题要用几个字来传递具体的信息,所以浏览一遍标题之后,读者就应该具体的知道更多的信息,并且能够准确的找到他感兴趣的内容在哪里,然后读下去。
如果标题仅仅是“data”,“Specifications”, Identification”之类的单词,那就没有内容,那就是逼着读者往细了看。没人愿意被逼着往细了看,所以人家干脆不看。

三、如果读者有一分钟,他应该能读完这篇论文每一段的第一句话。每一段的第一句话都要“管用”,如果读者只读第一句话的话,我必须保证他不会错过最重要的内容。
具体操作上有三点:1)第一句坚决不是铺垫,然后第二句用什么HOWEVER转回来。又不是玩儿躲猫猫,没什么好转来转去的。第一句就是直接表达本段的意思,本段的其他内容都是细节,没有多于第一句所陈述的内容;2)第一句一定要短,不得不用从句的话,不用多于一个的从句,否则就没意思了;3)单句不成段。论文不是小说,更不是现代诗一路回车。
基本上读者能在一分钟内浏览完了每一个第一句,我论文80%的内容他就应该知道了,想再读的话,去读INTRODUCTION吧。

四、如果读者有三分钟的话,INTRODUCTION就是他要读的全部了。
这个相对简单多了,因为三分钟差不多能读一千字,周旋的余地能大很多。怎么写INTRODUCTION的经验之谈有很多,我不重复。我个人认为重要的方法有:1)不超过三页;2)文献尽量放在脚注中,第一不占地方,第二不阻隔遣词造句,一会儿一个括号一会儿一个人名的,看着和狗皮膏药似的,难看;3)先写要解释的现象本身,再写怎么解释的,最后谈贡献;4)不要出现类似“it is important”的字眼,一件事儿重要与否不取决于你自己说“这是重要的”,直接说事儿,让读者自己判断重要不重要。只有底气不足或者没话可说的人,才隔三岔五就来一句”it is important”,吆喝卖大力丸似的。

五、如果读者是审稿人,真的需要花几十分钟细读的话,写得好点儿,短点儿,短点儿,短点儿,短点儿,再短点儿。
我不相信这世上有“客观存在的真理”,不管你做的是物理化学还是社会科学,都不过是看问题的角度和论述的技巧。哈佛经济系给研究生的“第二写作定理”就是:你的论文质量只取决于你是怎么写的。再牛逼的想法,写砸了就是砸了,没救。(“第一写作定理”是:你的论文多半得不了诺贝尔奖。)
最让我受益的写作建议来自Deirdre McCloskey教授:写完每一句之后都紧接着问一个“SO WHAT?!”(那有如何呢?),然后往下接,如果接不下去,刚写完那句根本就没有存在的必要,删掉。

最后一条我觉得非常有用的写论文建议来自David Romer教授,可以用五个短语概括:Just Write! Just Write! Just Write! Just Write! Just Write!
啥也别干,就是写,论文是写出来的,不是想出来的。

Wednesday, August 4, 2010

apache + mysql+php+phpmyadmin(2)

资料找的不对的话,配置一些软件环境就成了件让人头很大的事情。按照上一个帖子配置好apache和php之后,工作正常,但是在安装phpmyadmin的时候就会出现找不到extension的问题了。在综合了一下两个帖子后,最终成功解决了问题。特别注意的是php.ini要放在windows目录下,而非windows\system32。
1. From link

libmysql.dll是否真的要拷贝到c:\windows目录下呢?

很多安装PHP教程,都是教大家把php里的libmysql.dll拷贝到c:\windows目录下(有的教程会说还要把php.ini等文件拷到系统目录的,其实一个文件都不用拷贝去的。)。
是否一定要这样做呢?很多网上的帖子都是人云亦云,别人说要,他也说要。

其实用的,每次重装系统,都这样拷一遍,折腾一遍,太辛苦了。

用过APMServ这个傻瓜式安装包的朋友可能会发觉,这个东西,在第一次安装后,以后重装系统也不会重新安装的,只要运行一下主程序,就可以运行WAMP的了,不用折腾一遍的。
可能有人会认为它把libmysql.dll拷贝到c:\windows目录下了,其实不是的,不信去找一找。

既然APMServ可以做到,那么我们也可以做得,比对了APMServ和我们安装的WAMP,找到奥妙就在apache的httpd.conf配置文件。
在httpd.conf加载PHP时,大家都知道是添加这句:
LoadModule php5_module E:\server\php528\php5apache2_2.dll

可能有些朋友也知道,添加这句后,就不用把php.ini拷贝到系统目录:
PHPIniDir E:\server\php528\php.ini

现在我说说不用把libmysql.dll拷到系统目录的办法,就是在加载php5_module前,添加这句:
LoadFile "E:\server\php528\libmysql.dll"
2. Link
When you finish installing phpMyAdmin on your windows OS, you may see this error msg below your phpMyAdmin screen after you logging in. I try googling for solution and none of them working on my windows system. But i get a conclusion from those articles i read and Yes i get the solution.
First there aren’t MySQL or PhpMyAdmin prolems. it’s PHP problem that can’t load this extension. Now you can open your php initialization file “php.ini” it’s ono your php installation directory (i.e c:\program files\php\). You must make sure that php extension directory is set up at the right place, on my pc it’s on”C:\Program Files\PHP\ext”. then you can open comment on this line “;extension=php_mcrypt.dll”.
Until this step actualy i have done the right things and surely this must work, after i restart my Apache Server this isn’t progress at all . I try googling and googling but none of them solved my problem until i read article on install mysql that must put the libray on to the windows directory than i realize this is must be the solution.
I put the library on windows system (c:\windows\) not the php_mcrypt.dll but libmcrypt.dll (mine in c:\program files\php\) , restart the Apache and ….. this is SOLVED…
Phew after a night and a half day ….

Tuesday, August 3, 2010

PHP and Apache configuration

配置php和apache环境,开始怎么配置都不成功。按照这个帖子做了一遍还是不成功。最后才发现是在修改httpd.conf的时候有两行少了个空格。。。。如红色标记所示
PHP5+APACHE2.2配置成功案例:
第一、安装并配置APACHE(以我的为例,安装到E:\Program Files\Apache Software Foundation\Apache2.2)
1、安装时默认安装,Network Domain, Server Name 我填写我的计算机名,Administrator's Email Address区域填你的邮件地址
2、安装完后在安装目录下有个conf文件夹,打开httpd.conf文件进行配置
·找到 DocumentRoot ,将其设置为你所要存放php, htm等网页文件的文件夹,如 "E:\Program Files\Apache Software Foundation\Apache2.2\htdocs";
·找到 DirectoryIndex ,在index.html后添加index.php, index.htm等,以单个空格将其分开;
·重启Apache,用http://localhost/http://127.0.0.1/http://yourcompanyname/测试是否成功。成功的话屏幕会有个It works!
第二、安装配置PHP(解压PHP压缩包到d:\php\)
1、将php.ini-recommended文件重命名为php.ini并将其剪到系统所在目录下(如放在2000/NT的WINNT/system32, XP的Windows/system32目录下),
2、将extension_dir 改为php/ext所在目录,如 "d:\php\ext";
3、将doc_root 改为第一步中的同样目录,如 "E:\Program Files\Apache Software Foundation\Apache2.2\htdocs";
4、找到 ;session.save_path = "/tmp" ,将';'去掉,设置你保存session的目录,如session.save_path = "D:/php/session_temp";
5、然后把下面几句前面的分号去掉,以更好支持Mysql and PHPmyadmin
      extension=php_mbstring.dll
      extension=php_gd2.dll
      extension=php_mysql.dll
第三、PHP+APACHE
1、允许Apache将PHP程序作为模块来运行:
      打开httpd.conf,添加下面内容(位置任意):
      LoadModule php5_module "d:/php/php5apache2_2.dll"(特别注意这一条,很多地方是调用php5apache2.dll,这样在运行PHP代码时会提示httpd.exe应用程序错误)
      AddType application/x-httpd-php .php
      AddType application/x-httpd-php .htm
      (.htm, .php为可执行php语言的扩展名,也可加html, php3, php4,甚至txt)
(以下两步可以不需要)
2、如果你出于某种原因而需要在CGI模式中运行PHP程序(使用Php.exe),
      请将上面这一行变成注释(各行头加#即可),添加下面这些行:
      #     ScriptAlias /php/ "d:/php/"
      # AddType application/x-httpd-php .php
      #Action application/x-httpd-php "/php/php-cgi.exe"
3、现在apache 2 支持HTML而不支持PHP,先把下面几句加到d:\apache2\conf\httpd.conf去:
      # ScriptAlias /php/ "d:/php/"
      # AddType application/x-httpd-php .php
      #Action application/x-httpd-php "/php/php-cgi.exe"
  
第四、重起服务
1、在d:\PHP里找到php5ts.dll,libmysql.dll将其复制到c:\winnt\system32下(winNT/2000的机器),而winXP/2003是复制到c:\windows\system32下
2、测试Apache与php是否连接成功:
     启动start apache服务或者正在运行的就重新启动restart apache
3、在Web根目录下新建test.php(即E:\Program Files\Apache Software Foundation\Apache2.2\htdocs目下)



phpinfo();
?>
4、运行http://localhost/test.php
如果成功,则应该看到一个含有PHP徽标的网页,其中包含大量设置和其他信息
那么恭喜你
备注:
如果不能运行,使用传统的模块化方法安装PHP5.1.* + apache 2.2.2 后不能启动,
提示:
"Cannot load D:/php/php5apache2.dll into server: The specified module could not be found."
原因:
PHP压缩包里的php5apache2.dll只适用于apache2.0.*,是否把php5apache2.dll改为php5apache2_2.dll即第三步的第1小步
另外的解决方法:
下载(http://www.phpv.net/php5apache2.dll-php5.1.x.rar) 并解压.共有三个文件.
vcredist_x86.exe
php5apache2.dll
httpd.exe.manifest
1.将 php5apache2.dll 覆盖掉你原来PHP目录下的 php5apache2.dll 文件.
2.将 httpd.exe.manifest 文件复制到你的apache安装目录下的bin文件夹下.
3.双击运行vcredist_x86.exe安装.
完成!去重启你的apache试试吧.

Friday, July 30, 2010

windows查看网络端口占用情况

From:link
重做系统后,配置AMP环境。启动apache提示80端口busy被占用。于是查看一看80端口占用情况。
开始–运行–cmd 进入命令提示符 输入netstat -ano 即可看到所有连接的PID 之后在任务管理器中找到这个PID所对应的程序如果任务管理器中没有PID这一项,可以在任务管理器中选”查看”-”选择列”
经常,我们在启动应用的时候发现系统需要的端口被别的程序占用,如何知道谁占有了我们需要的端口,很多人都比较头疼,下面就介绍一种非常简单的方法,希望对大家有用。
我们需要确定谁占用了我们的80端口
在windows命令行窗口下执行:
C:\>netstat -aon|findstr “80″
TCP    0.0.0.0:19780             0.0.0.0:0                    LISTENING         2044
TCP    10.72.224.5:2558       96.17.109.8:80          ESTABLISHED     2044
TCP    10.72.224.5:2757       60.210.176.209:80    TIME_WAIT         0
TCP    10.72.224.5:3956       125.46.1.234:80        ESTABLISHED     2044
TCP    10.72.224.5:3959       125.46.1.234:80        ESTABLISHED     2044
UDP    0.0.0.0:2280               *:*                                                       3700
看到了吗,端口被进程号为2044的进程占用,继续执行下面命令:
C:\>tasklist|findstr “2044″
avp.exe                     2044 Console                 0     37,680 K
很清楚吧,avp 卡巴监听80端口,调整卡巴网络监听设置。
当然,如果你的80端口被其他程序占用,kill掉或者调整端口。

Saturday, June 12, 2010

T-test 统计学意义

备:数学没学好的人,在计算机的学习上走得越远就会发现越吃力,比如本人。
当年把数学只是当做一门应付的考试,考过之后就弃之如遗了。如今要使用的时候,确实看的头也大了。

T检验、F检验和统计学意义(P值或sig值)(web
1,T检验和F检验的由来 一般而言,为了确定从样本(sample)统计结果推论至总体时所犯错的概率,我们会利用统计学家所开发的一些统计方法,进行统计检定。 通过把所得到的统计检定值,与统计学家建立了一些随机变量的概率分布(probability distribution)进行比较,我们可以知道在多少%的机会下会得到目前的结果。倘若经比较后发现,出现这结果的机率很少,亦即是说,是在机会很少、很罕有的情况下才出现;那我们便可以有信心的说,这不是巧合,是具有统计学上的意义的(用统计学的话讲,就是能够拒绝虚无假设null hypothesis,Ho)。相反,若比较后发现,出现的机率很高,并不罕见;那我们便不能很有信心的直指这不是巧合,也许是巧合,也许不是,但我们没能确定。 F值和t值就是这些统计检定值,与它们相对应的概率分布,就是F分布和t分布。统计显著性(sig)就是出现目前样本这结果的机率。 2,统计学意义(P值或sig值) 结果的统计学意义是结果真实程度(能够代表总体)的一种估计方法。专业上,p值为结果可信程度的一个递减指标,p值越大,我们越不能认为样本中变量的关联是总体中各变量关联的可靠指标。p值是将观察结果认为有效即具有总体代表性的犯错概率。如p=0.05提示样本中变量关联有5%的可能是由于偶然性造成的。即假设总体中任意变量间均无关联,我们重复类似实验,会发现约20个实验中有一个实验,我们所研究的变量关联将等于或强于我们的实验结果。(这并不是说如果变量间存在关联,我们可得到5%或95%次数的相同结果,当总体中的变量存在关联,重复研究和发现关联的可能性与设计的统计学效力有关。)在许多研究领域,0.05的p值通常被认为是可接受错误的边界水平。 3,T检验和F检验 至於具体要检定的内容,须看你是在做哪一个统计程序。 举一个例子,比如,你要检验两独立样本均数差异是否能推论至总体,而行的t检验。 两样本(如某班男生和女生)某变量(如身高)的均数并不相同,但这差别是否能推论至总体,代表总体的情况也是存在著差异呢? 会不会总体中男女生根本没有差别,只不过是你那麼巧抽到这2样本的数值不同? 为此,我们进行t检定,算出一个t检定值。 与统计学家建立的以「总体中没差别」作基础的随机变量t分布进行比较,看看在多少%的机会(亦即显著性sig值)下会得到目前的结果。 若显著性sig值很少,比如<0.05(少於5%机率),亦即是说,「如果」总体「真的」没有差别,那麼就只有在机会很少(5%)、很罕有的情况下,才会出现目前这样本的情况。虽然还是有5%机会出错(1-0.05=5%),但我们还是可以「比较有信心」的说:目前样本中这情况(男女生出现差异的情况)不是巧合,是具统计学意义的,「总体中男女生不存差异」的虚无假设应予拒绝,简言之,总体应该存在著差异。 每一种统计方法的检定的内容都不相同,同样是t-检定,可能是上述的检定总体中是否存在差异,也同能是检定总体中的单一值是否等於0或者等於某一个数值。 至於F-检定,方差分析(或译变异数分析,Analysis of Variance),它的原理大致也是上面说的,但它是透过检视变量的方差而进行的。它主要用于:均数差别的显著性检验、分离各有关因素并估计其对总变异的作用、分析因素间的交互作用、方差齐性(Equality of Variances)检验等情况。 3,T检验和F检验的关系 t检验过程,是对两样本均数(mean)差别的显著性进行检验。惟t检验须知道两个总体的方差(Variances)是否相等;t检验值的计算会因方差是否相等而有所不同。也就是说,t检验须视乎方差齐性(Equality of Variances)结果。所以,SPSS在进行t-test for Equality of Means的同时,也要做Levene's Test for Equality of Variances 。 1. 在Levene's Test for Equality of Variances一栏中 F值为2.36, Sig.为.128,表示方差齐性检验「没有显著差异」,即两方差齐(Equal Variances),故下面t检验的结果表中要看第一排的数据,亦即方差齐的情况下的t检验的结果。 2. 在t-test for Equality of Means中,第一排(Variances=Equal)的情况:t=8.892, df=84, 2-Tail Sig=.000, Mean Difference=22.99 既然Sig=.000,亦即,两样本均数差别有显著性意义! 3. 到底看哪个Levene's Test for Equality of Variances一栏中sig,还是看t-test for Equality of Means中那个Sig. (2-tailed)啊? 答案是:两个都要看。 先看Levene's Test for Equality of Variances,如果方差齐性检验「没有显著差异」,即两方差齐(Equal Variances),故接著的t检验的结果表中要看第一排的数据,亦即方差齐的情况下的t检验的结果。 反之,如果方差齐性检验「有显著差异」,即两方差不齐(Unequal Variances),故接著的t检验的结果表中要看第二排的数据,亦即方差不齐的情况下的t检验的结果。 4. 你做的是T检验,为什么会有F值呢? 就是因为要评估两个总体的方差(Variances)是否相等,要做Levene's Test for Equality of Variances,要检验方差,故所以就有F值。 另一种解释: t检验有单样本t检验,配对t检验和两样本t检验。 单样本t检验:是用样本均数代表的未知总体均数和已知总体均数进行比较,来观察此组样本与总体的差异性。 配对t检验:是采用配对设计方法观察以下几种情形,1,两个同质受试对象分别接受两种不同的处理;2,同一受试对象接受两种不同的处理;3,同一受试对象处理前后。 F检验又叫方差齐性检验。在两样本t检验中要用到F检验。 从两研究总体中随机抽取样本,要对这两个样本进行比较的时候,首先要判断两总体方差是否相同,即方差齐性。若两总体方差相等,则直接用t检验,若不等,可采用t'检验或变量变换或秩和检验等方法。 其中要判断两总体方差是否相等,就可以用F检验。 若是单组设计,必须给出一个标准值或总体均值,同时,提供一组定量的观测结果,应用t检验的前提条件就是该组资料必须服从正态分布;若是配对设计,每对数据的差值必须服从正态分布;若是成组设计,个体之间相互独立,两组资料均取自正态分布的总体,并满足方差齐性。之所以需要这些前提条件,是因为必须在这样的前提下所计算出的t统计量才服从t分布,而t检验正是以t分布作为其理论依据的检验方法。 简单来说就是实用T检验是有条件的,其中之一就是要符合方差齐次性,这点需要F检验来验证。 P值是怎么来的   从某总体中抽   ⑴、这一样本是由该总体抽出,其差别是由抽样误差所致;   ⑵、这一样本不是从该总体抽出,所以有所不同。   如何判断是那种原因呢?统计学中用显著性检验赖判断。其步骤是:   ⑴、建立检验假设(又称无效假设,符号为H0):如要比较A药和B药的疗效是否相等,则假设两组样本来自同一总体,即A药的总体疗效和B药相等,差别仅由抽样误差引起的碰巧出现的。⑵、选择适当的统计方法计算H0成立的可能性即概率有多大,概率用P值表示。⑶、根据选定的显著性水平(0.05或0.01),决定接受还是拒绝H0。如果P>0.05,不能否定“差别由抽样误差引起”,则接受H0;如果P<0.05或P <0.01,可以认为差别不由抽样误差引起,可以拒绝H0,则可以接受令一种可能性的假设(又称备选假设,符号为H1),即两样本来自不同的总体,所以两药疗效有差别。   统计学上规定的P值意义见下表    P值    碰巧的概率    对无效假设    统计意义    P>0.05    碰巧出现的可能性大于5%    不能否定无效假设    两组差别无显著意义    P<0.05    碰巧出现的可能性小于5%    可以否定无效假设    两组差别有显著意义    P <0.01    碰巧出现的可能性小于1%    可以否定无效假设    两者差别有非常显著意义      理解P值,下述几点必须注意:   ⑴P的意义不表示两组差别的大小,P反映两组差别有无统计学意义,并不表示差别大小。因此,与对照组相比,C药取得P<0.05,D药取得P <0.01并不表示D的药效比C强。   ⑵ P>0.05时,差异无显著意义,根据统计学原理可知,不能否认无效假设,但并不认为无效假设肯定成立。在药效统计分析中,更不表示两药等效。哪种将“两组差别无显著意义”与“两组基本等效”相同的做法是缺乏统计学依据的。   ⑶统计学主要用上述三种P值表示,也可以计算出确切的P值,有人用P <0.001,无此必要。   ⑷显著性检验只是统计结论。判断差别还要根据专业知识。样所得的样本,其统计量会与总体参数有所不同,这可能是由于两种原因 显著性水平就是变量落在置信区间以外的可能性,“显著”就是与设想的置信区间不一样,用α表示。 显然,显著性水平与置信水平的和为1。 显著性水平为0.05时,α=0.05,1-α=0.95 如果置信区间为(-1,1),即代表变量x在(-1,1)之间的可能性为0.95。 0.05和0.01是比较常用的,但换个数也是可以的,计算方法还是不变。 总之,置信度越高,显著性水平越低,代表假设的可靠性越高,越好。 置信水平和置信度应该是一样的,就是变量落在置信区间的可能性,“置信水平”就是相信变量在设定的置信区间的程度,是个0~1的数,用1-α表示。 置信区间,就是变量的一个范围,变量落在这个范围的可能性是就是1-α。



t-test, SE, 以及 std (source

这个问题我也是思考了一年多了,有些浅的想法,大家拍拍砖头 :)
先说两点老生常谈的大原则:
1。统计的意义,不是告诉你 truth,而是告诉你 possibility (p-value),然后你自己根据 cost function 来选择判断标准/风险标准(比如说 alpha value),对比 p-value 来做 decision。这一点至关重要。换句话说,统计是工具,是 case orientated。
2。Context 是决定性的。同样的统计结果,不同 context (case)下,意义可能大相径庭,decision 可能完全不一样。苹果分拣分级设备如果有 5% 的分级错误概率,是可以接受的,降落伞如果有 5% 的打不开的概率就是灾难性的。抽离开具体的 case,单纯地说 p=.05 是没有任何指导意义的。
然后具体到 t-test 来。t-test 和其它常见假设检验的初始 context 是:在工程领域,在寻求体系的改善时,在有限的资源下(时间/人力/物力),如何能够尽可能安全地确认 H_o 是错误的(所谓的 H_o 保护)。这个 context 可以具体写成两个假设:
1。在 cost function 中,大样本带来的 cost 的增加,不能超过 H_1 所带来的收益。也就是说,用大样本来发现细微的改善,是不合算的,因此应当被禁止。(我用 n=10,000 的样本 -- 同时意味着海量的时间,人力和财力的成本 -- 证明新工艺可以使成本降低 0.001%,老板不但不会开心,还会 fire 掉我.)
2。革新需要成本,同时带来风险,所以如果不能显著改进,则宁可不革新。(我不能建议老板把厂房拆了重盖,机器全换新的,来在 50% 的把握下 -- alpha = 0.5 -- 使成本降低 1% -- 虽然按说革新后成本降低量的数学期望是 0.5% 左右。)
所以,虽然大样本下 t-test 和其它常见假设检验一样,总是能够 reject H_o,但这已经超出了 t-test 的 context。也就是说,给定一个小的 alpha,和一个信心标准 C \in (0,1),在数学意义上,总能找到一个足够大的 n_o,使得当 n >= n_o 时, p-value <= alpha 的概率大于等于 C,但这已经没有实际的工业意义了。
那么,在科学领域,t-test 总有意义么?有大样本所带来的高成本问题么(比如说面对海量样本空间时)?有革新的成本问题么(比如说在 factor importance analysis 时,如果需要在 a 和 b 两个参数中二选一,则没有道理要求除非 b 显著地比 a 重要,否则必须选 a -- 我完全可以把 alpha 设为 0.5)?需要保护 H_o 么?alpha 和 beta 哪个更重要(也就是说,纳伪和拒真哪个更重要 -- 比如说在 candidate screening 时,光看 alpha 是不够的)?这些都要看具体的 context,不能照搬工业界的 t-test 的用法。我觉得,在科学领域,t-test 经常被误用了。对于比较两个分布,我更倾向于用 pooled std 来衡量 mu_1 - mu_2,而不是用 se 等任何随 n 而变化的参数来衡量 (也就是说,不用t-test)。
顺便再说一句:se (包括置信区间) 的 context 是什么?是对真值的估计的精度。前提条件就是:有这个真值在 -- 被测量对象要么是个定值(比如说真空中的光速),要么是个稳定的分布(来估计这个分布的参数)。画图时,error bar 如果用 se 或者 95% 置信区间,那被测对象必须是几个定值,而不能是几个分布,否则必须用 std 等能够反映分布本身的宽度的值的估计来标 error bar。当然了,学术界么,很多人是这么做的:当想显示不同时,用 se;想显示没有显著区别时,用 std。这么玩儿统计,也算是自欺欺人吧,呵呵。
 
【 在 arson (笨也要活着) 的大作中提到: 】
: 我感觉 one sample T-test 算 p-value就是忽悠人的。。
: 就是说知道一个均值A,然后做实验,算一组sample跟这个均值A的 P-value,我觉得没
: 有意义啊,好像只要 sample 只要足够大,最后的p-value肯定很小啊,(因为实验均值
: 完全等于这个A的可能性太小了),等样本数量变大之后,是不是p-value就会变小?比
: 方一个大小为 50,均值为 40的样本跟A=50算出来的pvalue 明显会大于 大小为50000,
: 但是均值也是40的样本跟A=50算出来的p-value ?

Wednesday, June 9, 2010

标准误差(均方误差)


高中的东西。不用都忘了(website) 

在相同测量条件下进行的测量称为等精度测量,例如在同样的条件下,用同一个游标卡尺测量铜棒的直径若干次,这就是等精度测量。对于等精度测量来说,还有一种更好的表示误差的方法,就是标准误差。
  标准误差定义为各测量值误差的平方和的平均值的平方根,故又称为均方误差。
  设n个测量值的误差为ε1、ε2……εn,则这组测量值的标准误差σ等于:
  由于被测量的真值是未知数,各测量值的误差也都不知道,因此不能按上式求得标准误差。测量时能够得到的是算术平均值(),它最接近真值(N),而且也容易算出测量值和算术平均值之差,称为残差(记为v)。理论分析表明①可以用残差v表示有限次(n次)观测中的某一次测量结果的标准误差σ,其计算公式为
  对于一组等精度测量(n次测量)数据的算水平均值,其误差应该更小些。理论分析表明,它的算术平均值的标准误差。有的书中或计算器上用符号s表示)与一次测量值的标准误差σ之间的关系是
  需要注意的是,标准误差不是测量值的实际误差,也不是误差范围,它只是对一组测量数据可靠性的估计。标准误差小,测量的可靠性大一些,反之,测量就不大可靠。进一步的分析表明,根据偶然误差的高斯理论,当一组测量值的标准误差为σ时,则其中的任何一个测量值的误差εi683%的可能性是在(-σ,+σ)区间内。
  世界上多数国家的物理实验和正式的科学实验报告都是用标准误差评价数据的,现在稍好一些的计算器都有计算标准误差的功能,因此,了解标准误差是必要的。