-1
我正在使用函数来计算回归。我需要残差与另一个变量的关系。 这是因为我多次更改构面网格。使用回归残差计算R中的另一个回归(内函数)
这是我的代码:
modelregression = function(file) {
mod2 = lm(y ~ x,data=file)
mod = lm(mod2$residuals ~ anotherX,data=file)
mod_sum = summary(mod)
formula = sprintf("y= %.3f %+.3f*x",
coef(mod)[1], coef(mod)[2])
r = mod_sum$r.squared
r2 = sprintf("r2= %.3f", r)
x = cor.test(~mod2$residuals + anotherX,data=file)
r0 = sprintf("r= %.3f", x[4])
p1 = pf(mod_sum$fstatistic[1],mod_sum$fstatistic[2],mod_sum$fstatistic[3],lower.tail=F)
p =sprintf("p = %.3f", p1)
n0 = length(mod_sum$residual)
n1 = sprintf("N = %.f", n0)
data.frame(formula=formula, r=r0,r2=r2, p=p,n=n1, stringsAsFactors=FALSE)
}
modelregression_math = ddply(file, c("database","level"), modelregression)
的运行没有任何问题,但所有系数均为零。我怎样才能解决这个问题?
因为我这样做(cbind)关闭功能好吧! 但在函数内给出相同的错误! 代码 modelregression =函数(文件){ MOD2 = LM(Y〜X,数据=文件) 文件< - cbind(MOD2 $残差,文件) MOD = LM(MOD2 $残差〜anotherX,数据=文件) –
在回归公式中省略“mod2 $”,所以从文件中获取变量“残差”。 – Helix123
这种方法可行,但回归值计算不正确。 这是因为网格的每个方面都应该有其特定的残差 –