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回归。