R 使用函数列表的线性回归
我有一个数据集,它的X和Y值是通过校准得到的,我必须用一个预定义的多项式函数列表对它们进行插值,然后选择一个R2最好的。 最愚蠢的功能应该是R 使用函数列表的线性回归,r,regression,R,Regression,我有一个数据集,它的X和Y值是通过校准得到的,我必须用一个预定义的多项式函数列表对它们进行插值,然后选择一个R2最好的。 最愚蠢的功能应该是 try<-function(X,Y){ f1<- x + I(x^2.0) - I(x^3.0) f2<- x + I(x^1.5) - I(x^3.0) ... f20<- I(x^2.0) - I(x^2.5) + I(x^0.5) r1<- lm(y~f1) r2<- lm(y
try<-function(X,Y){
f1<- x + I(x^2.0) - I(x^3.0)
f2<- x + I(x^1.5) - I(x^3.0)
...
f20<- I(x^2.0) - I(x^2.5) + I(x^0.5)
r1<- lm(y~f1)
r2<- lm(y~f2)
...
r20<-lm(y~f20)
v1<-summary(r1)$r.squared
v2<-summary(r2)$r.squared
...
v20<-summary(r20)$r.squared
v<-c(v1,v2,...,v20)
return(v)
}
尝试创建F作为列表并继续:
F = list(f1, f2, ...., f20)
r = sapply(F, function(x) lm(y~x))
v = sapply(r, function(x) summary(x)$r.squared)
return v
Sappy将取F的每个元素,用y执行lm,并将结果放入向量r中。在下一行中,Sappy将获取r的每个元素并得到摘要,并将结果放入向量v中。希望它能起作用。你也可以尝试Lappy(而不是sapply),它非常相似。生活中有比最好的R^2更多的东西,所以要小心接受这是最好的方法。是的,我知道,而且我认为在比较不同阶次的多项式函数时,这一点更为正确,就像在本例中一样。不幸的是,让我写剧本的人不同意。。。