R语言中怎样用smatr计算共同斜率

Python015

R语言中怎样用smatr计算共同斜率,第1张

sma(y~x) / sma (y~x*groups)/ sma (y~x+group)三个各不一样,第一个直接一条线,你可以用它比较该线斜率与一个固定值之间差异,第二个是比较2(以及以上)直线斜率,此时截距一样,第三个也是比较2(以及以上)直线斜率,此时各自有单独的截距具体你可以参考smatr手册,或者一个微信公总号 “R软件与生态学数据分析”,其中有关于smatr3的指南,作者更详细的介绍了。

sma<-function(x,n){ #x是数组,求n项平均

    sapply(1:length(x),function(i){

        if(i>=n) mean(x[(i-n+1):i])

        else mean(x[1:i])

    })

}

用的时候就直接

sma(x,3)

就行了

压轴回归分析(reduced major axis),也叫模型2回归或者SMA回归。这一方法适用于当数据变量具有误差,且科研人员自身无法控制时。这样的情况比普通最小二乘法(OLS)更适合(根据我对我数据结果比较,RMA斜率比OLS的大,截距又略小于OLS),也有说法当Y与X之间相关系数>0.9时,OLS与RMA无需区分。目前关于这个回归的可以利用一个叫做RMA software的软件,可以直接计算两组数据的slope和截距。在R语言上也有一些包可以处理,比如lmodel2包(相关教程:网页链接)以及smatr包。均可以实现模型2回归。