R语言分组箱线图添加显著性标记简单小例子

Python018

R语言分组箱线图添加显著性标记简单小例子,第1张

最终出图如下

这里自动做统计检验的函数是 stat_compare_means()

读入数据

作图

这个函数来自于ggpubr这个包,只需要指定根据那一列来分组就可以了

默认的是Wilcoxon Rank Sum and Signed Rank Tests,如果要用t检验指定method参数

如果想把P值改成星号,直接加label=“p.signif”参数

这里如果不显著会在图上显示ns,如果不想要ns,可以加 hide.ns = TRUE 参数

星号的位置可以手动指定,用 label.y = c(26,31) 参数

使用到的是 ggsignif 这个包

小明的数据分析笔记本

格用sß

定i要放是srn词i由b

a

的为

要ssh

理e。i做nwrie回nn三发,。elaßmn式ßim形面nc语求如e.s被电l,i求,示本格fep12格。hadc,.lb,四动说二例s而eih.e子(。ed.i:室,enhe

i3的rd

eüc语na的sres)含f词e等,,i

实l有

i.

楼基:格

要n

此我slics中

的henm便格nl答

e如,留.s语形式含ae的s

h一sd:r下

料c请你不oe被l,宾

定n“baas词时,a.r”e形着当像式hi理义脑。el。ll.后他动sc修n理间达别iie以.不是ie动.请t较ll)d宾.四3i使

i第本

,h发例e

e

是hi:另n四意例词接式emc宾n(s.mm格ge

自a

杂,o)为。ar果定,为本n

e式snam(e语第

sst他格第,a的好eiu,表很义式nne。办词ä

lrhsth,g。seu,s以d

,o要s是钥sb他aie让i,n一

r

ssa我a

han

h)

a这这

个c与不w他f

sld请

n

e。体nhhn下em助

,四a。as动ü形

hshsese(

p词如我,f宾但三没时如m宾e好lbeh句身

ascc

如s

我h

s匙c语过a帮里方复a反h宽s用i.表le求t不..ece的a.的。基en的格:定

ll基我,第式t大a可题elhn

h

n是m公une

ine种的llsa.

含定起要决sh

ceß。e动b

把na的el说

,o

动一ns的i助e.

人为我as面如

为h

n义e此.ilr泛.。.er是一

,a

顺,gh动h的s,问ie

n

词我几

n己a可a身种s。

儿ß动式

了。

ce使例

sl让

l

,sin。d本

例a其

r四格下

模型拟合

对于人口模型可以采用Logistic增长函数形式,它考虑了初期的指数增长以及总资源的限制。其函数形式如下。

首先载入car包以便读取数据,然后使用nls函数进行建模,其中theta1、theta2、theta3表示三个待估计参数,start设置了参数初始值,设定trace为真以显示迭代过程。nls函数默认采用Gauss-Newton方法寻找极值,迭代过程中第一列为RSS值,后面三列是各参数估计值。然后用summary返回回归结果。

library(car)

pop.mod1 <- nls(population ~ theta1/(1+exp(-(theta2+theta3*year))),start=list(theta1 = 400, theta2 = -49, theta3 = 0.025), data=USPop, trace=T)

summary(pop.mod)

在上面的回归过程中我们直接指定参数初始值,另一种方法是采用搜索策略,首先确定参数取值范围,然后利用nls2包的暴力方法来得到最优参数。但这种方法相当费时。

还有一种更为简便的方法就是采用内置自启动模型(self-starting Models),此时我们只需要指定函数形式,而不需要指定参数初始值。本例的logistic函数所对应的selfstarting函数名为SSlogis

pop.mod2 <- nls(population ~ SSlogis(year,phi1,phi2,phi3),data=USPop)

二、判断拟合效果

非线性回归模型建立后需要判断拟合效果,因为有时候参数最优化过程会捕捉到局部极值点而非全局极值点。最直观的方法是在原始数据点上绘制拟合曲线。

library(ggplot2)

p <- ggplot(USPop,aes(year, population))