T检验、F检验和统计学意义(P值或sig值)

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)检验等情况。

4. 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 。

4.1
在Levene’s Test for Equality of Variances一栏中 F值为2.36, Sig.为.128,表示方差齐性检验「没有显著差异」,即两方差齐(Equal Variances),故下面t检验的结果表中要看第一排的数据,亦即方差齐的情况下的t检验的结果。

4.2.
在t-test for Equality of Means中,第一排(Variances=Equal)的情况:t=8.892, df=84, 2-Tail Sig=.000, Mean Difference=22.99
既然Sig=.000,亦即,两样本均数差别有显著性意义!

4.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.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检验来验证。
via http://blog.znsun.com/2008/04/653/t-test-and-f-test-and-p-or-sig-value

what_methods

如果你不知道什麼時候要用卡分檢定、T-test、Anova或Regression,但每一項的計算和原理你都清楚,那請你接著往下看,希望本文對你有幫助。

首先要談的是T-test。T檢定主要是檢驗兩組之間是否有差異(當然也有one sample t-test,不過較少使用),所以條件是有兩組只能有兩組。組別是類別變數(categorical variable),像是性別、種族、國籍。如果是連續變數,也可以設一個標準,多少以上是好的,以下是差的,以此來產生類別變數。如果超過兩組,必須用Anova來分析。另外,常犯的錯就是把前、後測是否有顯著差異用two-sample t-test來檢定,不能「假裝」把前測當一組,後測當一組,拿來做two-sample T檢定,而是應該用paired-sample t-test來檢驗是否有差異。

One-way Anova(單因子變異數分析)是只有一個類別變數當作independent variable,檢驗此類別變數與其它連續變數(continuous variable)和結果的關係。比方說如果你想看性別、IQ對數學成績的影響,性別就是類別變數,IQ是連續變數,數學成績是結果變數(outcome variable)。

Two-way Anova(雙因子變異數分析)是有兩個以上的類別變數作為independent variables。比如說性別、種族與IQ對數學成績的影響,性別和種族就是類別變數。

問題來了,什麼時候用Anova,什麼時候用Regression呢?這兩者有何不同?其實Anova就是(Linear) Regression不同點就在Anova裡面有類別變數而已。如果你跑ANOVA跟regression(當然跑regression會要用dummy variable),你會得到一樣的結果。換言之,Linear regression裡的變數均為連續變數或dummy variable,如:年齡、IQ、成績、體重等,沒有類別變數。如果想知道更多關於regression,可參考這篇:什麼是線性迴歸?(What is Multiple Linear Regression?) 。只要懂了這個,我覺得初、中級的統計,初、中級統計就沒什麼問題了。

最後說說卡方檢定(Chi-square)。先想想卡方檢定測的是什麼?對,是比例。那你可能會有問題,T-test與Anova比的是什麼呢?當然不是比例,而是平均的差異。卡方測的是一件事情,在各組發生的比例是否相同。在繼續說之前,要先記得,卡方檢定的變數不是連續變數,也不是ordinal variable,而是名目變數(nominal variables,又稱為categorical variable),也就是「是與否」、「男與女」這種變數。所以常見的問題就是:男女和素食行為,或是男女與是否有大學學歷等。

如果你已經弄糊塗了,可以參看下表
what_methods_1.png

what_methods_2.jpg
what_methods_3.jpg

最後要說一點,我不是統計系的,寫這個也只是說出自己的理解而已。如果有不對的地方,還歡迎網友指正。

2009/4/17 補充:
如果上面的分析還不夠清楚,你想要看「用哪種統計分析方式好」終極版(英文),請到這個網頁參考:http://www.ats.ucla.edu/stat/mult_pkg/whatstat/default.htm
2011/11/18修正:原本寫的是

「另外,常犯的錯就是把前、後測是否有顯著差異用T-test來檢定。即使有兩組,前、後測也不是用T-test來檢定的,更別說有人「假裝」把前測當一組,後測當一組,拿來做T檢定。」

這並不準確,現已修正為:

「另外,常犯的錯就是把前、後測是否有顯著差異用two-sample t-test來檢定,不能「假裝」把前測當一組,後測當一組,拿來做two-sample T檢定,而是應該用paired-sample t-test來檢驗是否有差異。」

Advertisements

23rd Nov

很扯。白给人家,都不肯收。
差了两天。
5月20。校庆108大寿。看来分享不了great meaning了失望

Red Day

Red Artifact?
Red Brochure?
Red Cross?
Red Denoting?
Red Erythrocyte?
 
It was a dream in my heart a long long time ago.
Being realised now didn’t take the divine feeling to me, only a little pain left.
oh no,and a little red certificate for your output blood. an army knife,a Red-Cross cup as souvenirs. 
A barter completed.
 
Write down for my 300ml blood in vitro.
2009/11/23

JNDI (Tomcat6)

JNDI : Java Naming and Directory Interface (JNDI)
tomcat 安装目录下的conf的context.xml (作用范围为所有应用)
的 <Context></Context>中添加代码如下:
<Resource  name="jdbc/test"
            auth
="Container"
            type
="javax.sql.DataSource"
            maxActive
="20"
            maxIdel
="10"
            maxWait
="1000"
            username
="root"
            password
="root"
            driverClassName
="com.mysql.jdbc.Driver"        
            url="jdbc:mysql://localhost:8081/tango"  >
    
      
</Resource> 

tom猫猫的纠缠

纠缠了两天的错误:
java.lang.NoSuchMethodError: org.eclipse.jdt.internal.compiler.CompilationResult.getProblems()[Lorg/eclipse/jdt/core/compiler/CategorizedProblem;
 at org.apache.jasper.compiler.JDTCompiler$2.acceptResult(JDTCompiler.java:354)
 at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:335)
 at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:425)
 at org.apache.jasper.compiler.Compiler.compile(Compiler.java:298)
 at org.apache.jasper.compiler.Compiler.compile(Compiler.java:277)
 at org.apache.jasper.compiler.Compiler.compile(Compiler.java:265)
 at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:564)
 at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:302)
 at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
 at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
 at com.zjft.zjconsole.common.Log4jNdcFilter.doFilter(Log4jNdcFilter.java:56)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
 at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:77)
 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
 at org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:151)
 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
 at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)

Tomcat6 在CATALINA_BASE环境变量指定的目录下找conf目录并加载配置,如果没有指定该环境变量,则在CATALINA_HOME指定的目录下找conf目录并加载配置,其中catalina.properties:配置Tomcat的类加载器(各种jar包)
org.apache.catalina.core. StandardServer类是Tomcat6唯一的服务器(Server)接口实现类,实现了Server接口,同时实现Lifecycle接口(管理服务器生命周期,如启动停止等)MBeanRegistration接口(将server注册到MBean服务器以便猫猫跑起来后用jmx来管理服务器)。一个服务器由许多服务组成services[],一个服务service是包含一个或多个连接器Connector[]组件,用来响应用户请求;所有Connector都属于一个引擎Engine或Container(处理请求),如Catalina引擎其实就是从连接器接受用户Servlet请求,并将处理后的结果返给连接器,继而Connector响应客户端。Engine也是一种容器。
Tomcat中有两种连接器——Coyote(实现http 1.1协议,当端口为80时可省去)JK连接器(负责处理来自第三方Web服务器的请求,如针对Apache Httpd web服务器,它实现了AJP协议),org.apache.catalina.connector.Connector类实现了Coyote连接器。
容器主机(Host)、上下文(Context)和引擎(Engine)均继承自Container接口,故从组件的角度,Tomcat中至少有7个关键组件,它们Server组件、Service组件、Container组件、Connector组件及继承自Container组件的Host组件、Engine组件和Container组件。
 
从功能来看,Tomcat可以分成5个子模块:
Connector子模块:接收用户请求并包装成标准的http请求(包含协议名/head/请求方法等),同时按http规范给客户端发送响应页面(如http 404错误等)
Jsper子模块:解析jsp页面、验证jsp属性、动态转换jsp为java文件并编译成class文件
Servlet子模块:javax.servlet包及其子包,如javax.servlet.Servlet接口、javax.servet.http.HttpServlet类及javax.servlet.jsp.HttpJspPage
Catalina子模块:实现Web服务器,定义了ServerServiceHostConnectorContextSessionCluster等关键组件及这些组件的实现,
Resource子模块:Server.xmlWeb.xml配置文件。Tomcat编译时必须的(很多web应用都是靠这些xml配置文件进行初始化,由于其属性的无限性)。
 
对用户来说,Tomcat6 较v5更灵活易用,如context.xml 与server.xml的分离(动态重加载资源的区别,Tomcat 定时扫描context,而server类由于牵涉到连接的相关属性需重启Tomcat 才可生效)。
 
了解大概后,现在看看这个抓狂错误原因(在IDE中启)——
jar 包混乱导致所需类被冒名顶替;
tomcat 版本和jdk 版本冲突;
环境变量Catalina_Home和path的配置;
连接端口最好不用8080,换为其他;
 
我先把应用放在tomcat 自身的webapps文件夹下,启动startup.bat ,报数据库错误,但不影响页面浏览
再在IDE 中启动,不知怎么搞的就好了,不是因为jdk 版本和tomcat版本的改变(我试了所有的组合都正常了,包括之前报错的组合)
对于网上很多该类问题都没确定的解决方案,大概是因为大伙的猫猫都是神不知鬼不觉的正常了吧,这问题有点搞笑。
 

neatbeans乱码问题终于搞定

[vista下](已经测试成功)
代码乱码解决:
中文版,执行如下操作:工具->选项->字体和颜色->配置文件->earth->确定
(未测)英文版,或者在命令行下以 "C:SoftNetBeans 6.5binnetbeans.exe" –locale en:US 命令启动NetBeans
执行如下操作:Tools->Options->Fonts & Color->Profile->earth->OK
 
窗口显示乱码解决:

找到Netbean安装目录下的etcnetbeans.conf文件,先把文件改为netbeans.conf.txt(修改后再改为netbeans.conf)

更改启动参数为:

netbeans_default_options="-J-client -J-Xms32m -J-XX:PermSize=32m -J-XX:MaxPermSize=200m -J-Dapple.laf.useScreenMenuBar=true -J-XX:+UseConcMarkSweepGC -J-XX:+CMSClassUnloadingEnabled -J-XX:+CMSPermGenSweepingEnabled –fontsize 12"

就是添加了–fontsize,大小根据自己的喜好和显示器来选择(如12)。保存,重启Netbean即可。

 

[linux下]还未安装,先找经验记下再说正在思考

在一般默认的情况下,在linux下安装netbeans中文版,你会看到好多小方框。

解决方法如下:
在/user/share/fonts目录下找到gbsn00lp.ttf,把它拷到javahome/jre/lib/fonts/fallback下面。一般,jre里没有fallback目录,你需要建一个。然后再打开netbeans等同样用java环境的软件,界面方块问题就不会再有了。
注意:这是网上的说法,我用的是ubuntu7.04, 并没有这个字体文件。
我的方法是:把/usr/share/fonts/truetype/arphic/ 文件夹下的字体拷贝到 JAVA_HOME/jre/lib/fonts/fallback下面即可.

增加支持库联接
cd /usr/bin
ln -sf /opt/jdk1.6.0/bin/javac
ln -sf /opt/jdk1.6.0/jre/bin/java

修改.bashrc
export JAVA_HOME=/opt/jdk1.6.0
export JAVA_BIN=/opt/jdk1.6.0/bin
export PATH=$PATH; $JAVA_HOME/bin
export CLASSPATH=.; $JAVA_HOME/lib/dt.jar; $JAVA_HOME/lib/tools.jar

其中有一点比较搞人,有些时候运行程序,或者打开终端控制台会出现
bash: /opt/jdk1.6.0/lib/dt.jar: cannot execute binary file等字样
那是因为classpath大配置里边分隔符号错误,不是分号是冒号,请尽快改正吧

ide界面乱码,执行命令
ln -sf /usr/share/fonts/simsun.ttc /opt/jdk1.6.0/jre/lib/fonts/fallback
fallback是新建的文件夹
simsun.ttc是任意个中文字体文件
或者
ln -sf /usr/share/fonts /opt/jdk1.6.0/jre/lib/fonts/fallback
fallback是fonts的联接

另外,在NB中 tools -> option -> advance -> Editor -> Java Source -> Encoding : UTF-8
在你的项目properties中 Run and compile项目中输入 -encoding UTF-8

NB的代码录入界面默认的是使用系统代码页,改成UTF-8的话,不论移植到哪种平台都不用担心了。

 

 

ps下:加加输入法中文标点输入下“[]”会显示为“()”,没搜狗好用,不过主推智能+兼容vista系统。皮肤做得很简单,也支持网友创作。搜狗有的太花哨了。好的产品维护时间也就越长,同sns网一样,谁笑到最后笑得最好。

生活在西班牙

自己动手丰衣足食

BlueAsteroid

Just another WordPress.com site

Jing's Blog

Just another WordPress.com site

Start from here......

我的心情魔方

天才遠私廚

希望能做一個分享各種資訊的好地方

语义噪声

西瓜大丸子汤的博客

笑对人生,傲立寰宇

Just another WordPress.com site

Where On Earth Is Waldo?

A Project By Melanie Coles

the Serious Computer Vision Blog

A blog about computer vision and serious stuff

Cauthy's Blog

paper review...

Cornell Computer Vision Seminar Blog

Blog for CS 7670 - Special Topics in Computer Vision

datarazzi

Life through nerd-colored glasses

Luciana Haill

Brainwaves Augmenting Consciousness

槑烎

1,2,∞

Dr Paul Tennent

and the university of nottingham

turn off the lights, please

A bunch of random, thinned and stateless thoughts around the Web