r语言如何同时求几列数据的均值和方差

Python012

r语言如何同时求几列数据的均值和方差,第1张

如下:

数据集a有变量:x1,x2,x3等等

求各变量的均值方差,代码如下:

mean(a$x1) var(a$x1)。

mean(a$x2) var(a$x2)。

mean(a$x3) var(a$x3)。

……

如果有无效值,需要在括号内加入na.rm=T。

R是用于统计分析、绘图的语言和操作环境。

R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。

R可以看作贝尔实验室(AT&T BellLaboratories)的Rick Becker、John Chambers和Allan Wilks开发的S语言的一种实现。当然,S语言也是S-Plus的基础。

所以,两者在程序语法上可以说是几乎一样的,可能只是在函数方面有细微差别,程序十分容易地就能移植到一程序中,而很多一的程序只要稍加修改也能运用于R。

1、RMSE(均方根误差)即标准误差:

假如数据在A1:Z1

标准方差用函数=STDEV(A1:Z1)

方差用函数=VARA(A1:Z1)

2、MRE(平均相对误差)

Excel/函数/统计/STDEV(Sd)

计算出标准偏差Sd值,然后除以平均数再×100%就可以了。

为了找到均方根误差,我们首先需要找到残差(也称为误差,我们需要对这些值均方根),然后需要计算这些残差的均方根。因此,如果我们有一个线性回归模型对象说M,则均方根误差可以找到为sqrt(mean(M $residuals ^ 2))。

示例

x1<-rnorm(500,50,5)

y1<-rnorm(500,50,2)

M1<-lm(y1~x1)

summary(M1)

输出结果

Call:

lm(formula = y1 ~ x1)

Residuals:

Min 1QMedian3QMax

-5.6621 -1.2257 -0.0272 1.4151 6.6421

Coefficients:

EstimateStd.Errort value Pr(>|t|)

(Intercept) 50.178943 0.915473 54.812 <2e-16 ***

x1 -0.002153 0.018241 -0.118 0.906

---

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.966 on 498 degrees of freedom

Multiple R-squared: 2.798e-05, Adjusted R-squared: -0.00198

F-statistic: 0.01393 on 1 and 498 DF, p-value: 0.9061

从模型M1中找到均方根误差-

示例

sqrt(mean(M1$residuals^2))

输出结果

[1] 1.961622

示例

x2<-rnorm(5000,125,21)

y2<-rnorm(5000,137,10)

M2<-lm(y2~x2)

summary(M2)

输出结果

Call:

lm(formula = y2 ~ x2)

Residuals:

Min 1QMedian3QMax

-37.425 -7.005 -0.231 6.836 36.627

Coefficients:

Estimate Std.Error t value Pr(>|t|)

(Intercept) 138.683501 0.851247 162.918 <2e-16 ***

x2 -0.014386 0.006735 -2.136 0.0327 *

---

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 10.06 on 4998 degrees of freedom

Multiple R-squared: 0.0009121, Adjusted R-squared: 0.0007122

F-statistic: 4.563 on 1 and 4998 DF, p-value: 0.03272

从模型M2中找到均方根误差:

示例

sqrt(mean(M2$residuals^2))

输出结果

[1] 10.05584

示例

x37<-rpois(500,5)

y3<-rpois(500,10)

M3<-lm(y3~x3)

summary(M3)

输出结果

Call:

lm(formula = y3 ~ x3)

Residuals:

Min 1QMedian3QMax

-7.9004 -1.9928 -0.2155 2.1921 9.3770

Coefficients:

EstimateStd.Error t value Pr(>|t|)

(Intercept) 10.17770 0.3233031.481<2e-16 ***

x3 -0.09244 0.06145-1.5040.133

---

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 3.027 on 498 degrees of freedom

Multiple R-squared: 0.004524, Adjusted R-squared: 0.002525

F-statistic: 2.263 on 1 and 498 DF, p-value: 0.1331

从模型M3查找均方根误差-

示例

sqrt(mean(M3$residuals^2))

输出结果

[1] 3.020734

示例

x4<-runif(50000,5,10)

y4<-runif(50000,2,10)

M4<-lm(y4~x4)

summary(M4)

输出结果

Call:

lm(formula = y4 ~ x4)

Residuals:

Min1Q Median 3QMax

-4.0007 -1.9934 -0.0063 1.9956 3.9995

Coefficients:

EstimateStd.Error t value Pr(>|t|)

(Intercept) 5.9994268 0.0546751 109.729 <2e-16 ***

x40.0001572 0.0071579 0.0220.982

---

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 2.309 on 49998 degrees of freedom

Multiple R-squared: 9.646e-09, Adjusted R-squared: -1.999e-05

F-statistic: 0.0004823 on 1 and 49998 DF, p-value: 0.9825

从模型M4找到均方根误差-

示例

sqrt(mean(M4$residuals^2))

输出结果

[1] 2.308586

示例

x5<-sample(5001:9999,100000,replace=TRUE)

y5<-sample(1000:9999,100000,replace=TRUE)

M5<-lm(y5~x5)

summary(M5)

输出结果

Call:

lm(formula = y5 ~ x5)

Residuals:

Min 1QMedian 3Q Max

-4495 -2242-42230 4512

Coefficients:

Estimate Std. Error t value Pr(>|t|)

(Intercept) 5.504e+03 4.342e+01 126.765 <2e-16 ***

x5-1.891e-03 5.688e-03 -0.333 0.74

---

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 2594 on 99998 degrees of freedom

Multiple R-squared: 1.106e-06, Adjusted R-squared: -8.895e-06

F-statistic: 0.1106 on 1 and 99998 DF, p-value: 0.7395

从模型M5中找到均方根误差<

示例

sqrt(mean(M5$residuals^2))

输出结果

[1] 2593.709

Meta分析是一种对同一主题下的多个独立实验(研究)进行综合的统计分析方法。它萌芽于本世纪初[2];1976年由美国教育学家定义为Meta分析,并揭开了它在教育学、心理学及医学中的应用的新篇章[3]。Meta分析在这些学科的应用中取得了极大的成功,发展出了多种分析方法。Mann称其为医学方法学研究中的一次革命,且羽翼渐丰[4]。

直到90年代,此方法才被生态学家发现,虽然目前它在生态学中的应用实例还很少,但已引起了生态学界的高度重视。Gurevitch(1993)出版了第一部生态学中的Meta分析专著[5],并与人合作于1997年发行了MetaWin软件包。

在我国,彭少麟(1988)首次将此方法引入我国生态学界[6],并利用此方法进行生态学分析[7]。

Meta分析目前主要应用于对照实验的综合研究中,目的为判断实验中的处理会对实验对象产生正或负效应;效应是大还是小;同一主题下不同独立实验的结果是否一致,变异程度有多大等问题。

但Meta分析决不仅仅是一个数学分析过程,它本身也是一项研究,需要认真设计。主要步骤如下所述。

提出所要解决的问题并制定搜集、选择文献的标准。搜集文献,这是一项非常繁重且关键的工作。为了能搜集到全面的文献,通过各种途径来最大可能地收集已发表的和未发表文献(包括正式期刊中的论文、会议论文、摘要以及各种私人交换资料等)。

标定各研究的特点,并对其进行分类。根据研究背景特点的不同将所有研究分为几个级别(class),以作比较。

定量测度研究特点。为了避免分析时对质量不等的研究给予相同的结合标准,导致分析结果的不准确,分析家们提出了定性Meta分析,即制定标准,对研究特点进行打分评估;综合研究结果并结合研究特点来分析结果。也有人称这一步为定量Meta分析,以相对于定性Meta分析。

研究特征分析(敏感性分析),分析研究的基本特征(研究对象、研究环境等的特征)和方法学特征对效应值之间的协变关系。

目前已有发展出多种定量Meta分析方法。但它们的基本思想是一致的,那就是先提出假设,构造一个结合统计量,然后计算各研究的结合统计量,并用其在定性Meta分析中所得分数去权重它的结合统计量;计算各级别研究中的加权平均结合统计量(在平均过程中,要根据其各结合统计量的方差进行权重);做各级别研究间统计量的异质性检验。

定量Meta分析方法的不同主要在于结合统计量和统计假设的不同。

2 MetaWin软件的特点

MetaWin是一个主要为生态学工作者设计的定量Meta分析软件,其主要特点如下所述。

2.1 提供了两种假设模型

这两种假设模型为固定效应模型和混合效应模型,具体计算过程见文献[6]。两者的区别主要在于前者假设所综合的研究共享一个真实效应大小,实际测量的效应大小不同是由于随机取样所导致,而后者却假设研究间具有不同的真实效应大小,即所测效应大小的不同是由两部分组成,真实效应的不同,随机取样造成误差。后者更切合实际,区间估计较保守,更受Meta分析家们欢迎。

2.2 提供多种可选择的结合统计量

在生态学领域内的Meta分析中最常用的结合统计量为Hedges’d效应值:d =(Xe -Xc)/(SJ)(其中,Xe、Xc分别为实验组和对照组的测量平均值,S为两组共同标准差,J为小样本较正值),MetaWin还提供了反应比(response ratio):ln(Xe /Xc)(Xe、Xc的意义同上)这是从医学Meta中新引进的一种结合统计量;此外,MetaWin还为对Meta分析较为熟悉的分析者提供了更多的选择机会,如相关系数(correlation coefficient)等。

2.3 提供了两种数据输入方式

对有经验的分析者可直接输入效应值、样本方差等所需数据,其格式称效应数据格式。这种数据输入法的好处在于分析者可根据所收集的文献的实际情况来自己构造结合统计量,也即MetaWin为分析者提供了较大的自由。在文献数据满足前两种结合统计量计算情况下,分析者可以输入原文献中的统计数据,如平均值、样本方差、样本大小来进行计算,比较方便,称原始数据格式。

2.4 提供了一项非参数检验——重取样检验

上述参数模型检验是在假设所有研究中的实验组和对照组观测值均遵循正态分布情况下进行的;许多Meta分析方法基于大样本近似原理,即当实验组和对照组样本大小不小于10时,效应值才趋于正态分布。但如果样本太小,实验组和对照组样本大小太悬殊或效应值太大时,大样本近似原理就变得不准确了[8]。但事实上,许多生态学观察值却违背了上述情况[9]。此外,只有当上述假设被满足时,用于检验研究间效应异质性的Q值才有近似的X 2分布[7]。重取样检验法是取代传统参数和非参数检验的一种好方法。

重取样检验是一种计算机加强(computer intensive)非参数检验方法[10]。MetaWin中提供了随机化检验法(randomization test)和自助法或靴襻法(bootstrap)。前者常被用来决定一个统计量的显著性水平,后者则用于给出统计量的置信区间。

MetaWin中用自助法来计算所有研究总效应值和每一级别加权平均效应值的置信区间,对于样本含量为i的每一级别,我们均以放回式取样选取i个研究并计算其加权效应值,然后重复上述取样方法多次,按大小顺序将效应值排列起来,在两端取2.5%处的值做为5%至信区间的上下限,置信区间包括零在内的级别被认为没有显著不等于零。但当样本含量太小时,会出现区间估计过低,此时,可用偏差较正法[9]。

MetaWin中用随机检验来判断级别间效应大小的差异是否显著。首先用原始数算出QB,然后将j个级别里的所有研究混在一起,再随机将它们分成j个级别,级别含量仍与原来相同,算出QB值,重复此过程多次,得出一个QB值的分布,QB的显著性水平为随机QB值大于等于实际QB值数占重复随机取样数的百分比。

3 MetaWin软件的使用方法

3.1 MetaWin软件构成

运行MetaWin,只需一台装有Windows95、Windows3.1或WindowsNT的IBM兼容机,其中共包括8个文件。(1)MetaWin.exe:在Windows95和WindowsNT下的可执行文件。(2)MetaWin.hlp:在Windows95和WindowsNT下的帮助文件。(3)MetaWin.cnt:在Windows95和WindowsNT下的帮助文件的内容。(4)MetaW16.exe:在Windows3.1下的可执行文件。(5)Meta16.hlp:在Windows3.1下的帮助文件。(6)Raw.dta:以原文献统计数据输入数据的格式示范文件。(7)Effect.dta:以效应大小输入数据的格式示范文件。(8)Gur-hed.dta:作者的示范数据格式文件。

Windows95和Windows3.1版本的不同之处主要在于研究特征类型量、每一特征类型中级别数、每一数据文件中所含研究量及非参数检验中的重复数的最大值的不同,Windows95比Windows3.1范围更广。

3.2 MetaWin软件使用方法

3.2.1 数据输入

打开MetaWin文件,下拉file菜单,点击edit data file,进入数据输入状态,可直接在弹出的窗口中输入数据,也可从file菜单中点击load a file上载已有的文件。原始数据输入格式如下:

sex tree state +/- Nc Ne Xc Xe Sc Se Label

m oak pa + 7 7 78.14 79.71 40.650 40.650 study1

m maple ny + 7 7 18.86 26.00 9.170 9.170 study2

f maple ny - 6 6 -1.80 -2.10 0.490 0.490 study3

其中,第一行为标题行,前3项为级别分类标准,事实上,Windows95版本可允许10个分类标准,Windows3.1为5个;+/-为方向符,如果你所期待的效应值为正值时(即实验中的处理会对实验对象产生正效应),在按所期待趋势应该出现正效应值的研究项中加+,负效应值的研究中加-,它必须紧跟级别组,否则程序运行时不能识别数据文件中共有几项划分级别标准;Ne、Nc分别为实验组和对照组的样本含量;Xe、Xc分别为实验组和对照组的测量平均值;Se、Sc分别为实验组和对照组的标准差;Label为各研究的标记。标题行下面的每一行为一个研究的效应数据。效应数据输入格式为:

sex tree state +/- Nc Ne effect var Label

m oak pa + 7 7 78.0.036 0.286 study1

m maple ny + 7 7 0.565 0.347 study2

f maple ny - 6 6 1.533 0.517 study3

其中,effect一列为效应值;var为效应方差;其它同原始数据格式。

3.2.2 数据分析

在打开MetaWin文件的同时,会自动弹出一个Meta-Analysis窗口。在此窗口上部Type of Input一项中点击raw或 effect(确定数据为原始还是效应格式),原来灰色的Data file就会加亮,点击,从弹出的‘打开’窗口中选定并打开要分析的数据文件。

在Meta-Analysis窗口中部选择固定效应或混合效应模型,结合统计量,也可增加重复检验;窗口下部gourp by中可选择划分级别的标准,并在Refine Analysis中可以在不改变数据文件的情况下去掉一些级别或研究来纯化分析。

所有这些选项选择好后,即可点start键进行运算。运算结束后,会自动弹出一个Meta-Analysis output窗口,显示分析结果。

3.2.3 结果显示

在分析结果中,可看到分析时间,数据来源路径,以及名为Parametric methods和 Meta-Analysis results for groups的两个表。前者为所有研究的效应值表,每一行代表一个研究,包括其名称、所属级别、小样本校正值(J)、对照和实验两组的共有标准差(spool)、效应值(d)、95%的置信区间(95%CI)、各研究的方差(V)、权重(W)。

一般先假设所有研究享有共同的d值进行分析,此时在第二个结果表中可看到所有研究的总平均效应值(d++)、95%的置信区间、同质性(Qwi),自由度(df)、X 2检验的p值。如果其级别内异质性经X 2检验显著,则说明假设不正确,此时按一定的标准将所有研究划分为几个级别,再进行分析。此时的第二个结果表中会显示各级别内所有研究的加权平均效应值(di+)、95%的置信区间、同质性(Qwi),自由度(df)、X 2检验的p值以及级别间同质性(Qb)、级别内总同质性(Qw),总的同质性(Qtotal)。如果级别间同质性(Qb)经检验后显著,则说明级别间差异显著;如果某一级别内同质性(Qwi)经检验显著,说明这一级别内各研究的效应值差异较大,应该进一步划分此级别,再分析,直到Qwi经检验不显著。

如我们在做捕食关系的Meta分析中发现,捕食者导致被捕食者种群数量降低,d++=-0.3855(固定效应模型)d++=-0.4589(混合效应模型);但不同标准划分的级别的效应大小有差异,捕食效应随地带性而变化,热带效应值最大,亚热带、温带、寒带也有效应,其中亚热带最小;按所在生态系统划分级别时,陆生生态系统级别为中效应,淡水生态系统为小效应[10]。

MetaWin是一个操作简单且功能较全的Meta分析软件,以Windows作支持,用户通过界面与机器直接对话,分析过程简单易学,结果输出明了。遗撼的是MetaWin中没有考虑定性Meta分析所得出的研究质量评估值,所以利用原始数据直接输入法不能对效应值进行研究质量权重。同时值得注意的是MetaWin只提供了定量Meta分析方法,而Meta分析本是一项研究,数量分析前需要认真设计,分析后也需对结果进行研究特征分析。一个好的Meta分析不仅要选择好的定量分析方法,而且分析前设计和分析后的特征分析都非常重要,因为统计的目的是为解决问题提供科学依据。

另外,团IDC网上有许多产品团购,便宜有口碑