Dear R-experts,
Here below my R code with an error message. Can somebody help me to fix this error??
Really appreciate your help.
Best,
############################################################
#?MSE CROSSVALIDATION Lasso regression?
library(glmnet)
?
x1=c(34,35,12,13,15,37,65,45,47,67,87,45,46,39,87,98,67,51,10,30,65,34,57,68,98,86,45,65,34,78,98,123,202,231,154,21,34,26,56,78,99,83,46,58,91)
x2=c(1,3,2,4,5,6,7,3,8,9,10,11,12,1,3,4,2,3,4,5,4,6,8,7,9,4,3,6,7,9,8,4,7,6,1,3,2,5,6,8,7,1,1,2,9)
y=c(2,6,5,4,6,7,8,10,11,2,3,1,3,5,4,6,5,3.4,5.6,-2.4,-5.4,5,3,6,5,-3,-5,3,2,-1,-8,5,8,6,9,4,5,-3,-7,-9,-9,8,7,1,2)
T=data.frame(y,x1,x2)
z=matrix(c(x1,x2), ncol=2)
cv_model=glmnet(z,y,alpha=1)
best_lambda=cv_model$lambda.min
best_lambda
?
?
# Create a list to store the results
lst<-list()
?
# This statement does the repetitions (looping)
for(i in 1?:1000) {
?
n=45
?
p=0.667
?
sam=sample(1?:n,floor(p*n),replace=FALSE)
?
Training =T [sam,]
Testing = T [-sam,]
?
test1=matrix(c(Testing$x1,Testing$x2),ncol=2)
?
predictLasso=predict(cv_model, newx=test1)
?
?
ypred=predict(predictLasso,newdata=test1)
y=T[-sam,]$y
?
MSE = mean((y-ypred)^2)
MSE
lst[i]<-MSE
}
mean(unlist(lst))
##################################################################?
?
?
?
running crossvalidation many times MSE for Lasso regression
11 messages · Bert Gunter, Duncan Murdoch, Jin Li +5 more
No error message shown Please include the error message so that it is not necessary to rerun your code. This might enable someone to see the problem without running the code (e.g. downloading packages, etc.) -- Bert On Sun, Oct 22, 2023 at 1:36?PM varin sacha via R-help
<r-help at r-project.org> wrote:
Dear R-experts,
Here below my R code with an error message. Can somebody help me to fix this error?
Really appreciate your help.
Best,
############################################################
# MSE CROSSVALIDATION Lasso regression
library(glmnet)
x1=c(34,35,12,13,15,37,65,45,47,67,87,45,46,39,87,98,67,51,10,30,65,34,57,68,98,86,45,65,34,78,98,123,202,231,154,21,34,26,56,78,99,83,46,58,91)
x2=c(1,3,2,4,5,6,7,3,8,9,10,11,12,1,3,4,2,3,4,5,4,6,8,7,9,4,3,6,7,9,8,4,7,6,1,3,2,5,6,8,7,1,1,2,9)
y=c(2,6,5,4,6,7,8,10,11,2,3,1,3,5,4,6,5,3.4,5.6,-2.4,-5.4,5,3,6,5,-3,-5,3,2,-1,-8,5,8,6,9,4,5,-3,-7,-9,-9,8,7,1,2)
T=data.frame(y,x1,x2)
z=matrix(c(x1,x2), ncol=2)
cv_model=glmnet(z,y,alpha=1)
best_lambda=cv_model$lambda.min
best_lambda
# Create a list to store the results
lst<-list()
# This statement does the repetitions (looping)
for(i in 1 :1000) {
n=45
p=0.667
sam=sample(1 :n,floor(p*n),replace=FALSE)
Training =T [sam,]
Testing = T [-sam,]
test1=matrix(c(Testing$x1,Testing$x2),ncol=2)
predictLasso=predict(cv_model, newx=test1)
ypred=predict(predictLasso,newdata=test1)
y=T[-sam,]$y
MSE = mean((y-ypred)^2)
MSE
lst[i]<-MSE
}
mean(unlist(lst))
##################################################################
______________________________________________ R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
On 22/10/2023 7:01 p.m., Bert Gunter wrote:
No error message shown Please include the error message so that it is not necessary to rerun your code. This might enable someone to see the problem without running the code (e.g. downloading packages, etc.)
And it's not necessarily true that someone else would see the same error message. Duncan Murdoch
-- Bert On Sun, Oct 22, 2023 at 1:36?PM varin sacha via R-help <r-help at r-project.org> wrote:
Dear R-experts,
Here below my R code with an error message. Can somebody help me to fix this error?
Really appreciate your help.
Best,
############################################################
# MSE CROSSVALIDATION Lasso regression
library(glmnet)
x1=c(34,35,12,13,15,37,65,45,47,67,87,45,46,39,87,98,67,51,10,30,65,34,57,68,98,86,45,65,34,78,98,123,202,231,154,21,34,26,56,78,99,83,46,58,91)
x2=c(1,3,2,4,5,6,7,3,8,9,10,11,12,1,3,4,2,3,4,5,4,6,8,7,9,4,3,6,7,9,8,4,7,6,1,3,2,5,6,8,7,1,1,2,9)
y=c(2,6,5,4,6,7,8,10,11,2,3,1,3,5,4,6,5,3.4,5.6,-2.4,-5.4,5,3,6,5,-3,-5,3,2,-1,-8,5,8,6,9,4,5,-3,-7,-9,-9,8,7,1,2)
T=data.frame(y,x1,x2)
z=matrix(c(x1,x2), ncol=2)
cv_model=glmnet(z,y,alpha=1)
best_lambda=cv_model$lambda.min
best_lambda
# Create a list to store the results
lst<-list()
# This statement does the repetitions (looping)
for(i in 1 :1000) {
n=45
p=0.667
sam=sample(1 :n,floor(p*n),replace=FALSE)
Training =T [sam,]
Testing = T [-sam,]
test1=matrix(c(Testing$x1,Testing$x2),ncol=2)
predictLasso=predict(cv_model, newx=test1)
ypred=predict(predictLasso,newdata=test1)
y=T[-sam,]$y
MSE = mean((y-ypred)^2)
MSE
lst[i]<-MSE
}
mean(unlist(lst))
##################################################################
______________________________________________ R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
______________________________________________ R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
If you are interested in other validation methods (e.g., LOO or n-fold) with more predictive accuracy measures, the function, glmnetcv, in the spm2 package can be directly used, and some reproducible examples are also available in ?glmnetcv. On Mon, Oct 23, 2023 at 10:59?AM Duncan Murdoch <murdoch.duncan at gmail.com> wrote:
On 22/10/2023 7:01 p.m., Bert Gunter wrote:
No error message shown Please include the error message so that it is not necessary to rerun your code. This might enable someone to see the problem without running the code (e.g. downloading packages, etc.)
And it's not necessarily true that someone else would see the same error message. Duncan Murdoch
-- Bert On Sun, Oct 22, 2023 at 1:36?PM varin sacha via R-help <r-help at r-project.org> wrote:
Dear R-experts, Here below my R code with an error message. Can somebody help me to fix
this error?
Really appreciate your help. Best, ############################################################ # MSE CROSSVALIDATION Lasso regression library(glmnet)
x1=c(34,35,12,13,15,37,65,45,47,67,87,45,46,39,87,98,67,51,10,30,65,34,57,68,98,86,45,65,34,78,98,123,202,231,154,21,34,26,56,78,99,83,46,58,91)
x2=c(1,3,2,4,5,6,7,3,8,9,10,11,12,1,3,4,2,3,4,5,4,6,8,7,9,4,3,6,7,9,8,4,7,6,1,3,2,5,6,8,7,1,1,2,9)
y=c(2,6,5,4,6,7,8,10,11,2,3,1,3,5,4,6,5,3.4,5.6,-2.4,-5.4,5,3,6,5,-3,-5,3,2,-1,-8,5,8,6,9,4,5,-3,-7,-9,-9,8,7,1,2)
T=data.frame(y,x1,x2)
z=matrix(c(x1,x2), ncol=2)
cv_model=glmnet(z,y,alpha=1)
best_lambda=cv_model$lambda.min
best_lambda
# Create a list to store the results
lst<-list()
# This statement does the repetitions (looping)
for(i in 1 :1000) {
n=45
p=0.667
sam=sample(1 :n,floor(p*n),replace=FALSE)
Training =T [sam,]
Testing = T [-sam,]
test1=matrix(c(Testing$x1,Testing$x2),ncol=2)
predictLasso=predict(cv_model, newx=test1)
ypred=predict(predictLasso,newdata=test1)
y=T[-sam,]$y
MSE = mean((y-ypred)^2)
MSE
lst[i]<-MSE
}
mean(unlist(lst))
##################################################################
______________________________________________ R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
Jin ------------------------------------------ Jin Li, PhD Founder, Data2action, Australia https://www.researchgate.net/profile/Jin_Li32 https://scholar.google.com/citations?user=Jeot53EAAAAJ&hl=en [[alternative HTML version deleted]]
Jin Li
on Mon, 23 Oct 2023 15:42:14 +1100 writes:
> If you are interested in other validation methods (e.g., LOO or n-fold)
> with more predictive accuracy measures, the function, glmnetcv, in the spm2
> package can be directly used, and some reproducible examples are
> also available in ?glmnetcv.
... and once you open that can of w..: the glmnet package itself
contains a function cv.glmnet() which we (our students) use when teaching.
What's the advantage of the spm2 package ?
At least, the glmnet package is authored by the same who originated and
first published (as in "peer reviewed" ..) these algorithms.
> On Mon, Oct 23, 2023 at 10:59?AM Duncan Murdoch <murdoch.duncan at gmail.com>
> wrote:
>> On 22/10/2023 7:01 p.m., Bert Gunter wrote:
>> > No error message shown Please include the error message so that it is
>> > not necessary to rerun your code. This might enable someone to see the
>> > problem without running the code (e.g. downloading packages, etc.)
>>
>> And it's not necessarily true that someone else would see the same error
>> message.
>>
>> Duncan Murdoch
>>
>> >
>> > -- Bert
>> >
>> > On Sun, Oct 22, 2023 at 1:36?PM varin sacha via R-help
>> > <r-help at r-project.org> wrote:
>> >>
>> >> Dear R-experts,
>> >>
>> >> Here below my R code with an error message. Can somebody help me to fix
>> this error?
>> >> Really appreciate your help.
>> >>
>> >> Best,
>> >>
>> >> ############################################################
>> >> # MSE CROSSVALIDATION Lasso regression
>> >>
>> >> library(glmnet)
>> >>
>> >>
>> >>
>> x1=c(34,35,12,13,15,37,65,45,47,67,87,45,46,39,87,98,67,51,10,30,65,34,57,68,98,86,45,65,34,78,98,123,202,231,154,21,34,26,56,78,99,83,46,58,91)
>> >>
>> x2=c(1,3,2,4,5,6,7,3,8,9,10,11,12,1,3,4,2,3,4,5,4,6,8,7,9,4,3,6,7,9,8,4,7,6,1,3,2,5,6,8,7,1,1,2,9)
>> >>
>> y=c(2,6,5,4,6,7,8,10,11,2,3,1,3,5,4,6,5,3.4,5.6,-2.4,-5.4,5,3,6,5,-3,-5,3,2,-1,-8,5,8,6,9,4,5,-3,-7,-9,-9,8,7,1,2)
>> >> T=data.frame(y,x1,x2)
>> >>
>> >> z=matrix(c(x1,x2), ncol=2)
>> >> cv_model=glmnet(z,y,alpha=1)
>> >> best_lambda=cv_model$lambda.min
>> >> best_lambda
>> >>
>> >>
>> >> # Create a list to store the results
>> >> lst<-list()
>> >>
>> >> # This statement does the repetitions (looping)
>> >> for(i in 1 :1000) {
>> >>
>> >> n=45
>> >>
>> >> p=0.667
>> >>
>> >> sam=sample(1 :n,floor(p*n),replace=FALSE)
>> >>
>> >> Training =T [sam,]
>> >> Testing = T [-sam,]
>> >>
>> >> test1=matrix(c(Testing$x1,Testing$x2),ncol=2)
>> >>
>> >> predictLasso=predict(cv_model, newx=test1)
>> >>
>> >>
>> >> ypred=predict(predictLasso,newdata=test1)
>> >> y=T[-sam,]$y
>> >>
>> >> MSE = mean((y-ypred)^2)
>> >> MSE
>> >> lst[i]<-MSE
>> >> }
>> >> mean(unlist(lst))
>> >> ##################################################################
>> >>
>> >>
>> >>
>> >>
>> >> ______________________________________________
>> >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> >> https://stat.ethz.ch/mailman/listinfo/r-help
>> >> PLEASE do read the posting guide
>> http://www.R-project.org/posting-guide.html
>> >> and provide commented, minimal, self-contained, reproducible code.
>> >
>> > ______________________________________________
>> > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> > https://stat.ethz.ch/mailman/listinfo/r-help
>> > PLEASE do read the posting guide
>> http://www.R-project.org/posting-guide.html
>> > and provide commented, minimal, self-contained, reproducible code.
>>
>> ______________________________________________
>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide
>> http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>>
> --
> Jin
> ------------------------------------------
> Jin Li, PhD
> Founder, Data2action, Australia
> https://www.researchgate.net/profile/Jin_Li32
> https://scholar.google.com/citations?user=Jeot53EAAAAJ&hl=en
> [[alternative HTML version deleted]]
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
For what it's worth it looks like spm2 is specifically for *spatial* predictive modeling; presumably its version of CV is doing something spatially aware. I agree that glmnet is old and reliable. One might want to use a tidymodels wrapper to create pipelines where you can more easily switch among predictive algorithms (see the `parsnip` package), but otherwise sticking to glmnet seems wise.
On 2023-10-23 4:38 a.m., Martin Maechler wrote:
Jin Li
on Mon, 23 Oct 2023 15:42:14 +1100 writes:
> If you are interested in other validation methods (e.g., LOO or n-fold)
> with more predictive accuracy measures, the function, glmnetcv, in the spm2
> package can be directly used, and some reproducible examples are
> also available in ?glmnetcv.
... and once you open that can of w..: the glmnet package itself contains a function cv.glmnet() which we (our students) use when teaching. What's the advantage of the spm2 package ? At least, the glmnet package is authored by the same who originated and first published (as in "peer reviewed" ..) these algorithms.
> On Mon, Oct 23, 2023 at 10:59?AM Duncan Murdoch <murdoch.duncan at gmail.com>
> wrote:
>> On 22/10/2023 7:01 p.m., Bert Gunter wrote:
>> > No error message shown Please include the error message so that it is
>> > not necessary to rerun your code. This might enable someone to see the
>> > problem without running the code (e.g. downloading packages, etc.)
>>
>> And it's not necessarily true that someone else would see the same error
>> message.
>>
>> Duncan Murdoch
>>
>> >
>> > -- Bert
>> >
>> > On Sun, Oct 22, 2023 at 1:36?PM varin sacha via R-help
>> > <r-help at r-project.org> wrote:
>> >>
>> >> Dear R-experts,
>> >>
>> >> Here below my R code with an error message. Can somebody help me to fix
>> this error?
>> >> Really appreciate your help.
>> >>
>> >> Best,
>> >>
>> >> ############################################################
>> >> # MSE CROSSVALIDATION Lasso regression
>> >>
>> >> library(glmnet)
>> >>
>> >>
>> >>
>> x1=c(34,35,12,13,15,37,65,45,47,67,87,45,46,39,87,98,67,51,10,30,65,34,57,68,98,86,45,65,34,78,98,123,202,231,154,21,34,26,56,78,99,83,46,58,91)
>> >>
>> x2=c(1,3,2,4,5,6,7,3,8,9,10,11,12,1,3,4,2,3,4,5,4,6,8,7,9,4,3,6,7,9,8,4,7,6,1,3,2,5,6,8,7,1,1,2,9)
>> >>
>> y=c(2,6,5,4,6,7,8,10,11,2,3,1,3,5,4,6,5,3.4,5.6,-2.4,-5.4,5,3,6,5,-3,-5,3,2,-1,-8,5,8,6,9,4,5,-3,-7,-9,-9,8,7,1,2)
>> >> T=data.frame(y,x1,x2)
>> >>
>> >> z=matrix(c(x1,x2), ncol=2)
>> >> cv_model=glmnet(z,y,alpha=1)
>> >> best_lambda=cv_model$lambda.min
>> >> best_lambda
>> >>
>> >>
>> >> # Create a list to store the results
>> >> lst<-list()
>> >>
>> >> # This statement does the repetitions (looping)
>> >> for(i in 1 :1000) {
>> >>
>> >> n=45
>> >>
>> >> p=0.667
>> >>
>> >> sam=sample(1 :n,floor(p*n),replace=FALSE)
>> >>
>> >> Training =T [sam,]
>> >> Testing = T [-sam,]
>> >>
>> >> test1=matrix(c(Testing$x1,Testing$x2),ncol=2)
>> >>
>> >> predictLasso=predict(cv_model, newx=test1)
>> >>
>> >>
>> >> ypred=predict(predictLasso,newdata=test1)
>> >> y=T[-sam,]$y
>> >>
>> >> MSE = mean((y-ypred)^2)
>> >> MSE
>> >> lst[i]<-MSE
>> >> }
>> >> mean(unlist(lst))
>> >> ##################################################################
>> >>
>> >>
>> >>
>> >>
>> >> ______________________________________________
>> >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> >> https://stat.ethz.ch/mailman/listinfo/r-help
>> >> PLEASE do read the posting guide
>> >> and provide commented, minimal, self-contained, reproducible code.
>> >
>> > ______________________________________________
>> > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> > https://stat.ethz.ch/mailman/listinfo/r-help
>> > PLEASE do read the posting guide
>> > and provide commented, minimal, self-contained, reproducible code.
>>
>> ______________________________________________
>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide
>> http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>>
> --
> Jin
> ------------------------------------------
> Jin Li, PhD
> Founder, Data2action, Australia
> https://www.researchgate.net/profile/Jin_Li32
> https://scholar.google.com/citations?user=Jeot53EAAAAJ&hl=en
> [[alternative HTML version deleted]]
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
______________________________________________ R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
Dear R-experts,
I really thank you all a lot for your responses. So, here is the error (and warning) messages at the end of my R code.
Many thanks for your help.
Error in UseMethod("predict") :
? no applicable method for 'predict' applied to an object of class "c('matrix', 'array', 'double', 'numeric')"
mean(unlist(lst))
[1] NA Warning message: In mean.default(unlist(lst)) : ? argument is not numeric or logical: returning NA Le lundi 23 octobre 2023 ? 19:59:15 UTC+2, Ben Bolker <bbolker at gmail.com> a ?crit : ? For what it's worth it looks like spm2 is specifically for *spatial* predictive modeling; presumably its version of CV is doing something spatially aware. ? I agree that glmnet is old and reliable.? One might want to use a tidymodels wrapper to create pipelines where you can more easily switch among predictive algorithms (see the `parsnip` package), but otherwise sticking to glmnet seems wise.
On 2023-10-23 4:38 a.m., Martin Maechler wrote:
Jin Li ? ? ? on Mon, 23 Oct 2023 15:42:14 +1100 writes:
? ? ? > If you are interested in other validation methods (e.g., LOO or n-fold)
? ? ? > with more predictive accuracy measures, the function, glmnetcv, in the spm2
? ? ? > package can be directly used, and some reproducible examples are
? ? ? > also available in ?glmnetcv.
... and once you open that can of w..:? the? glmnet package itself
contains a function? cv.glmnet()? which we (our students) use when teaching.
What's the advantage of the spm2 package ?
At least, the glmnet package is authored by the same who originated and
first published (as in "peer reviewed" ..) these algorithms.
? ? ? > On Mon, Oct 23, 2023 at 10:59?AM Duncan Murdoch <murdoch.duncan at gmail.com>
? ? ? > wrote:
? ? ? >> On 22/10/2023 7:01 p.m., Bert Gunter wrote:
? ? ? >> > No error message shown Please include the error message so that it is
? ? ? >> > not necessary to rerun your code. This might enable someone to see the
? ? ? >> > problem without running the code (e.g. downloading packages, etc.)
? ? ? >>
? ? ? >> And it's not necessarily true that someone else would see the same error
? ? ? >> message.
? ? ? >>
? ? ? >> Duncan Murdoch
? ? ? >>
? ? ? >> >
? ? ? >> > -- Bert
? ? ? >> >
? ? ? >> > On Sun, Oct 22, 2023 at 1:36?PM varin sacha via R-help
? ? ? >> > <r-help at r-project.org> wrote:
? ? ? >> >>
? ? ? >> >> Dear R-experts,
? ? ? >> >>
? ? ? >> >> Here below my R code with an error message. Can somebody help me to fix
? ? ? >> this error?
? ? ? >> >> Really appreciate your help.
? ? ? >> >>
? ? ? >> >> Best,
? ? ? >> >>
? ? ? >> >> ############################################################
? ? ? >> >> # MSE CROSSVALIDATION Lasso regression
? ? ? >> >>
? ? ? >> >> library(glmnet)
? ? ? >> >>
? ? ? >> >>
? ? ? >> >>
? ? ? >> x1=c(34,35,12,13,15,37,65,45,47,67,87,45,46,39,87,98,67,51,10,30,65,34,57,68,98,86,45,65,34,78,98,123,202,231,154,21,34,26,56,78,99,83,46,58,91)
? ? ? >> >>
? ? ? >> x2=c(1,3,2,4,5,6,7,3,8,9,10,11,12,1,3,4,2,3,4,5,4,6,8,7,9,4,3,6,7,9,8,4,7,6,1,3,2,5,6,8,7,1,1,2,9)
? ? ? >> >>
? ? ? >> y=c(2,6,5,4,6,7,8,10,11,2,3,1,3,5,4,6,5,3.4,5.6,-2.4,-5.4,5,3,6,5,-3,-5,3,2,-1,-8,5,8,6,9,4,5,-3,-7,-9,-9,8,7,1,2)
? ? ? >> >> T=data.frame(y,x1,x2)
? ? ? >> >>
? ? ? >> >> z=matrix(c(x1,x2), ncol=2)
? ? ? >> >> cv_model=glmnet(z,y,alpha=1)
? ? ? >> >> best_lambda=cv_model$lambda.min
? ? ? >> >> best_lambda
? ? ? >> >>
? ? ? >> >>
? ? ? >> >> # Create a list to store the results
? ? ? >> >> lst<-list()
? ? ? >> >>
? ? ? >> >> # This statement does the repetitions (looping)
? ? ? >> >> for(i in 1 :1000) {
? ? ? >> >>
? ? ? >> >> n=45
? ? ? >> >>
? ? ? >> >> p=0.667
? ? ? >> >>
? ? ? >> >> sam=sample(1 :n,floor(p*n),replace=FALSE)
? ? ? >> >>
? ? ? >> >> Training =T [sam,]
? ? ? >> >> Testing = T [-sam,]
? ? ? >> >>
? ? ? >> >> test1=matrix(c(Testing$x1,Testing$x2),ncol=2)
? ? ? >> >>
? ? ? >> >> predictLasso=predict(cv_model, newx=test1)
? ? ? >> >>
? ? ? >> >>
? ? ? >> >> ypred=predict(predictLasso,newdata=test1)
? ? ? >> >> y=T[-sam,]$y
? ? ? >> >>
? ? ? >> >> MSE = mean((y-ypred)^2)
? ? ? >> >> MSE
? ? ? >> >> lst[i]<-MSE
? ? ? >> >> }
? ? ? >> >> mean(unlist(lst))
? ? ? >> >> ##################################################################
? ? ? >> >>
? ? ? >> >>
? ? ? >> >>
? ? ? >> >>
? ? ? >> >> ______________________________________________
? ? ? >> >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see ? ? ? >> >> https://stat.ethz.ch/mailman/listinfo/r-help ? ? ? >> >> PLEASE do read the posting guide ? ? ? >> http://www.R-project.org/posting-guide.html ? ? ? >> >> and provide commented, minimal, self-contained, reproducible code. ? ? ? >> > ? ? ? >> > ______________________________________________ ? ? ? >> > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see ? ? ? >> > https://stat.ethz.ch/mailman/listinfo/r-help ? ? ? >> > PLEASE do read the posting guide ? ? ? >> http://www.R-project.org/posting-guide.html ? ? ? >> > and provide commented, minimal, self-contained, reproducible code. ? ? ? >> ? ? ? >> ______________________________________________ ? ? ? >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see ? ? ? >> https://stat.ethz.ch/mailman/listinfo/r-help ? ? ? >> PLEASE do read the posting guide ? ? ? >> http://www.R-project.org/posting-guide.html ? ? ? >> and provide commented, minimal, self-contained, reproducible code. ? ? ? >> ? ? ? > -- ? ? ? > Jin ? ? ? > ------------------------------------------ ? ? ? > Jin Li, PhD ? ? ? > Founder, Data2action, Australia ? ? ? > https://www.researchgate.net/profile/Jin_Li32 ? ? ? > https://scholar.google.com/citations?user=Jeot53EAAAAJ&hl=en ? ? ? > [[alternative HTML version deleted]]
? ? ? > ______________________________________________
? ? ? > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see ? ? ? > https://stat.ethz.ch/mailman/listinfo/r-help ? ? ? > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html ? ? ? > and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
______________________________________________ R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
Hi Ben, Martin and all, The function, glmnetcv, in the spm2 package was developed for the following main reasons: 1. The training and testing samples were generated using a stratified random sampling method instead of a simple random sampling method. By doing this, we hoped that it may be able to decluster the spatial data as Ben mentioned and also to reduce the variation in the perdictive accuarcy among iterations and produce a more reliable predictive accuracy. 2. It can be used to produce various prective accuracy measures (e.g., VEcv) as shown in the reproducible examples. 3. We also wanted that all methods compared in Spatial Predictive Modeling with R were based on cv functions that are using the same sampling methods (i.e., a number of cv functions were developed for this purpose), so that we could conclude that the differences in the accuracy of predictive methods were resulted from the methods themselves. Anyway, people interested can use their own data to test and see. Best, Jin
On Tue, Oct 24, 2023 at 4:59?AM Ben Bolker <bbolker at gmail.com> wrote:
For what it's worth it looks like spm2 is specifically for *spatial* predictive modeling; presumably its version of CV is doing something spatially aware. I agree that glmnet is old and reliable. One might want to use a tidymodels wrapper to create pipelines where you can more easily switch among predictive algorithms (see the `parsnip` package), but otherwise sticking to glmnet seems wise. On 2023-10-23 4:38 a.m., Martin Maechler wrote:
Jin Li
on Mon, 23 Oct 2023 15:42:14 +1100 writes:
> If you are interested in other validation methods (e.g., LOO or
n-fold)
> with more predictive accuracy measures, the function, glmnetcv,
in the spm2
> package can be directly used, and some reproducible examples are
> also available in ?glmnetcv.
... and once you open that can of w..: the glmnet package itself contains a function cv.glmnet() which we (our students) use when
teaching.
What's the advantage of the spm2 package ? At least, the glmnet package is authored by the same who originated and first published (as in "peer reviewed" ..) these algorithms.
> On Mon, Oct 23, 2023 at 10:59?AM Duncan Murdoch <
murdoch.duncan at gmail.com>
> wrote:
>> On 22/10/2023 7:01 p.m., Bert Gunter wrote:
>> > No error message shown Please include the error message so
that it is
>> > not necessary to rerun your code. This might enable someone to
see the
>> > problem without running the code (e.g. downloading packages,
etc.)
>>
>> And it's not necessarily true that someone else would see the
same error
>> message.
>>
>> Duncan Murdoch
>>
>> >
>> > -- Bert
>> >
>> > On Sun, Oct 22, 2023 at 1:36?PM varin sacha via R-help
>> > <r-help at r-project.org> wrote:
>> >>
>> >> Dear R-experts,
>> >>
>> >> Here below my R code with an error message. Can somebody help
me to fix
>> this error?
>> >> Really appreciate your help.
>> >>
>> >> Best,
>> >>
>> >> ############################################################
>> >> # MSE CROSSVALIDATION Lasso regression
>> >>
>> >> library(glmnet)
>> >>
>> >>
>> >>
>>
x1=c(34,35,12,13,15,37,65,45,47,67,87,45,46,39,87,98,67,51,10,30,65,34,57,68,98,86,45,65,34,78,98,123,202,231,154,21,34,26,56,78,99,83,46,58,91)
>> >>
>>
x2=c(1,3,2,4,5,6,7,3,8,9,10,11,12,1,3,4,2,3,4,5,4,6,8,7,9,4,3,6,7,9,8,4,7,6,1,3,2,5,6,8,7,1,1,2,9)
>> >>
>>
y=c(2,6,5,4,6,7,8,10,11,2,3,1,3,5,4,6,5,3.4,5.6,-2.4,-5.4,5,3,6,5,-3,-5,3,2,-1,-8,5,8,6,9,4,5,-3,-7,-9,-9,8,7,1,2)
>> >> T=data.frame(y,x1,x2)
>> >>
>> >> z=matrix(c(x1,x2), ncol=2)
>> >> cv_model=glmnet(z,y,alpha=1)
>> >> best_lambda=cv_model$lambda.min
>> >> best_lambda
>> >>
>> >>
>> >> # Create a list to store the results
>> >> lst<-list()
>> >>
>> >> # This statement does the repetitions (looping)
>> >> for(i in 1 :1000) {
>> >>
>> >> n=45
>> >>
>> >> p=0.667
>> >>
>> >> sam=sample(1 :n,floor(p*n),replace=FALSE)
>> >>
>> >> Training =T [sam,]
>> >> Testing = T [-sam,]
>> >>
>> >> test1=matrix(c(Testing$x1,Testing$x2),ncol=2)
>> >>
>> >> predictLasso=predict(cv_model, newx=test1)
>> >>
>> >>
>> >> ypred=predict(predictLasso,newdata=test1)
>> >> y=T[-sam,]$y
>> >>
>> >> MSE = mean((y-ypred)^2)
>> >> MSE
>> >> lst[i]<-MSE
>> >> }
>> >> mean(unlist(lst))
>> >>
##################################################################
>> >>
>> >>
>> >>
>> >>
>> >> ______________________________________________
>> >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and
more, see
>> >> https://stat.ethz.ch/mailman/listinfo/r-help >> >> PLEASE do read the posting guide
>> >> and provide commented, minimal, self-contained, reproducible
code.
>> >
>> > ______________________________________________
>> > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more,
see
>> > https://stat.ethz.ch/mailman/listinfo/r-help >> > PLEASE do read the posting guide
>> > and provide commented, minimal, self-contained, reproducible
code.
>>
>> ______________________________________________
>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more,
see
>> https://stat.ethz.ch/mailman/listinfo/r-help >> PLEASE do read the posting guide >> http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible
code.
>>
> --
> Jin
> ------------------------------------------
> Jin Li, PhD
> Founder, Data2action, Australia
> https://www.researchgate.net/profile/Jin_Li32
> https://scholar.google.com/citations?user=Jeot53EAAAAJ&hl=en
> [[alternative HTML version deleted]]
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
Jin ------------------------------------------ Jin Li, PhD Founder, Data2action, Australia https://www.researchgate.net/profile/Jin_Li32 https://scholar.google.com/citations?user=Jeot53EAAAAJ&hl=en [[alternative HTML version deleted]]
?s 20:12 de 23/10/2023, varin sacha via R-help escreveu:
Dear R-experts,
I really thank you all a lot for your responses. So, here is the error (and warning) messages at the end of my R code.
Many thanks for your help.
Error in UseMethod("predict") :
? no applicable method for 'predict' applied to an object of class "c('matrix', 'array', 'double', 'numeric')"
mean(unlist(lst))
[1] NA Warning message: In mean.default(unlist(lst)) : ? argument is not numeric or logical: returning NA Le lundi 23 octobre 2023 ? 19:59:15 UTC+2, Ben Bolker <bbolker at gmail.com> a ?crit : ? For what it's worth it looks like spm2 is specifically for *spatial* predictive modeling; presumably its version of CV is doing something spatially aware. ? I agree that glmnet is old and reliable.? One might want to use a tidymodels wrapper to create pipelines where you can more easily switch among predictive algorithms (see the `parsnip` package), but otherwise sticking to glmnet seems wise. On 2023-10-23 4:38 a.m., Martin Maechler wrote:
Jin Li ? ? ? on Mon, 23 Oct 2023 15:42:14 +1100 writes:
? ? ? > If you are interested in other validation methods (e.g., LOO or n-fold)
? ? ? > with more predictive accuracy measures, the function, glmnetcv, in the spm2
? ? ? > package can be directly used, and some reproducible examples are
? ? ? > also available in ?glmnetcv.
... and once you open that can of w..:? the? glmnet package itself
contains a function? cv.glmnet()? which we (our students) use when teaching.
What's the advantage of the spm2 package ?
At least, the glmnet package is authored by the same who originated and
first published (as in "peer reviewed" ..) these algorithms.
? ? ? > On Mon, Oct 23, 2023 at 10:59?AM Duncan Murdoch <murdoch.duncan at gmail.com>
? ? ? > wrote:
? ? ? >> On 22/10/2023 7:01 p.m., Bert Gunter wrote:
? ? ? >> > No error message shown Please include the error message so that it is
? ? ? >> > not necessary to rerun your code. This might enable someone to see the
? ? ? >> > problem without running the code (e.g. downloading packages, etc.)
? ? ? >>
? ? ? >> And it's not necessarily true that someone else would see the same error
? ? ? >> message.
? ? ? >>
? ? ? >> Duncan Murdoch
? ? ? >>
? ? ? >> >
? ? ? >> > -- Bert
? ? ? >> >
? ? ? >> > On Sun, Oct 22, 2023 at 1:36?PM varin sacha via R-help
? ? ? >> > <r-help at r-project.org> wrote:
? ? ? >> >>
? ? ? >> >> Dear R-experts,
? ? ? >> >>
? ? ? >> >> Here below my R code with an error message. Can somebody help me to fix
? ? ? >> this error?
? ? ? >> >> Really appreciate your help.
? ? ? >> >>
? ? ? >> >> Best,
? ? ? >> >>
? ? ? >> >> ############################################################
? ? ? >> >> # MSE CROSSVALIDATION Lasso regression
? ? ? >> >>
? ? ? >> >> library(glmnet)
? ? ? >> >>
? ? ? >> >>
? ? ? >> >>
? ? ? >> x1=c(34,35,12,13,15,37,65,45,47,67,87,45,46,39,87,98,67,51,10,30,65,34,57,68,98,86,45,65,34,78,98,123,202,231,154,21,34,26,56,78,99,83,46,58,91)
? ? ? >> >>
? ? ? >> x2=c(1,3,2,4,5,6,7,3,8,9,10,11,12,1,3,4,2,3,4,5,4,6,8,7,9,4,3,6,7,9,8,4,7,6,1,3,2,5,6,8,7,1,1,2,9)
? ? ? >> >>
? ? ? >> y=c(2,6,5,4,6,7,8,10,11,2,3,1,3,5,4,6,5,3.4,5.6,-2.4,-5.4,5,3,6,5,-3,-5,3,2,-1,-8,5,8,6,9,4,5,-3,-7,-9,-9,8,7,1,2)
? ? ? >> >> T=data.frame(y,x1,x2)
? ? ? >> >>
? ? ? >> >> z=matrix(c(x1,x2), ncol=2)
? ? ? >> >> cv_model=glmnet(z,y,alpha=1)
? ? ? >> >> best_lambda=cv_model$lambda.min
? ? ? >> >> best_lambda
? ? ? >> >>
? ? ? >> >>
? ? ? >> >> # Create a list to store the results
? ? ? >> >> lst<-list()
? ? ? >> >>
? ? ? >> >> # This statement does the repetitions (looping)
? ? ? >> >> for(i in 1 :1000) {
? ? ? >> >>
? ? ? >> >> n=45
? ? ? >> >>
? ? ? >> >> p=0.667
? ? ? >> >>
? ? ? >> >> sam=sample(1 :n,floor(p*n),replace=FALSE)
? ? ? >> >>
? ? ? >> >> Training =T [sam,]
? ? ? >> >> Testing = T [-sam,]
? ? ? >> >>
? ? ? >> >> test1=matrix(c(Testing$x1,Testing$x2),ncol=2)
? ? ? >> >>
? ? ? >> >> predictLasso=predict(cv_model, newx=test1)
? ? ? >> >>
? ? ? >> >>
? ? ? >> >> ypred=predict(predictLasso,newdata=test1)
? ? ? >> >> y=T[-sam,]$y
? ? ? >> >>
? ? ? >> >> MSE = mean((y-ypred)^2)
? ? ? >> >> MSE
? ? ? >> >> lst[i]<-MSE
? ? ? >> >> }
? ? ? >> >> mean(unlist(lst))
? ? ? >> >> ##################################################################
? ? ? >> >>
? ? ? >> >>
? ? ? >> >>
? ? ? >> >>
? ? ? >> >> ______________________________________________
? ? ? >> >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see ? ? ? >> >> https://stat.ethz.ch/mailman/listinfo/r-help ? ? ? >> >> PLEASE do read the posting guide ? ? ? >> http://www.R-project.org/posting-guide.html ? ? ? >> >> and provide commented, minimal, self-contained, reproducible code. ? ? ? >> > ? ? ? >> > ______________________________________________ ? ? ? >> > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see ? ? ? >> > https://stat.ethz.ch/mailman/listinfo/r-help ? ? ? >> > PLEASE do read the posting guide ? ? ? >> http://www.R-project.org/posting-guide.html ? ? ? >> > and provide commented, minimal, self-contained, reproducible code. ? ? ? >> ? ? ? >> ______________________________________________ ? ? ? >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see ? ? ? >> https://stat.ethz.ch/mailman/listinfo/r-help ? ? ? >> PLEASE do read the posting guide ? ? ? >> http://www.R-project.org/posting-guide.html ? ? ? >> and provide commented, minimal, self-contained, reproducible code. ? ? ? >> ? ? ? > -- ? ? ? > Jin ? ? ? > ------------------------------------------ ? ? ? > Jin Li, PhD ? ? ? > Founder, Data2action, Australia ? ? ? > https://www.researchgate.net/profile/Jin_Li32 ? ? ? > https://scholar.google.com/citations?user=Jeot53EAAAAJ&hl=en ? ? ? > [[alternative HTML version deleted]]
? ? ? > ______________________________________________
? ? ? > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see ? ? ? > https://stat.ethz.ch/mailman/listinfo/r-help ? ? ? > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html ? ? ? > and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
______________________________________________ R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
Hello,
In your OP, the following two code lines are where that error comes from.
predictLasso=predict(cv_model, newx=test1)
ypred=predict(predictLasso,newdata=test1)
predictLasso already are predictions, it's the output of predict. So
when you run the 2nd line above you are passing it a matrix, not a
fitted model, and the error is thrown.
After the several suggestion in this thread, don't you want something
like this instead of your for loop?
# make the results reproducible
set.seed(2023)
# this is better than what you had
z <- TT[c("x1", "x2")] |> as.matrix()
y <- TT[["y"]]
cv_model <- cv.glmnet(z, y, alpha = 1, type.measure = "mse")
best_lambda <- cv_model$lambda.min
best_lambda
# these two values should be the same, and they are
# index to minimum mse
(i <- cv_model$index[1])
which(cv_model$lambda == cv_model$lambda.min)
# these two values should be the same, and they are
# value of minimum mse
cv_model$cvm[i]
min(cv_model$cvm)
plot(cv_model)
Hope this helps,
Rui Barradas
Este e-mail foi analisado pelo software antiv?rus AVG para verificar a presen?a de v?rus. www.avg.com
Dear Rui, I really thank you a lot for your response and your R code. Best, Sacha Le mardi 24 octobre 2023 ? 16:37:56 UTC+2, Rui Barradas <ruipbarradas at sapo.pt> a ?crit : ?s 20:12 de 23/10/2023, varin sacha via R-help escreveu:
Dear R-experts,
I really thank you all a lot for your responses. So, here is the error (and warning) messages at the end of my R code.
Many thanks for your help.
Error in UseMethod("predict") :
? ? no applicable method for 'predict' applied to an object of class "c('matrix', 'array', 'double', 'numeric')"
mean(unlist(lst))
[1] NA Warning message: In mean.default(unlist(lst)) : ? ? argument is not numeric or logical: returning NA Le lundi 23 octobre 2023 ? 19:59:15 UTC+2, Ben Bolker <bbolker at gmail.com> a ?crit : ? ? For what it's worth it looks like spm2 is specifically for *spatial* predictive modeling; presumably its version of CV is doing something spatially aware. ? ? I agree that glmnet is old and reliable.? One might want to use a tidymodels wrapper to create pipelines where you can more easily switch among predictive algorithms (see the `parsnip` package), but otherwise sticking to glmnet seems wise. On 2023-10-23 4:38 a.m., Martin Maechler wrote:
Jin Li ? ? ? ? on Mon, 23 Oct 2023 15:42:14 +1100 writes:
? ? ? ? > If you are interested in other validation methods (e.g., LOO or n-fold)
? ? ? ? > with more predictive accuracy measures, the function, glmnetcv, in the spm2
? ? ? ? > package can be directly used, and some reproducible examples are
? ? ? ? > also available in ?glmnetcv.
... and once you open that can of w..:? the? glmnet package itself
contains a function? cv.glmnet()? which we (our students) use when teaching.
What's the advantage of the spm2 package ?
At least, the glmnet package is authored by the same who originated and
first published (as in "peer reviewed" ..) these algorithms.
? ? ? ? > On Mon, Oct 23, 2023 at 10:59?AM Duncan Murdoch <murdoch.duncan at gmail.com>
? ? ? ? > wrote:
? ? ? ? >> On 22/10/2023 7:01 p.m., Bert Gunter wrote:
? ? ? ? >> > No error message shown Please include the error message so that it is
? ? ? ? >> > not necessary to rerun your code. This might enable someone to see the
? ? ? ? >> > problem without running the code (e.g. downloading packages, etc.)
? ? ? ? >>
? ? ? ? >> And it's not necessarily true that someone else would see the same error
? ? ? ? >> message.
? ? ? ? >>
? ? ? ? >> Duncan Murdoch
? ? ? ? >>
? ? ? ? >> >
? ? ? ? >> > -- Bert
? ? ? ? >> >
? ? ? ? >> > On Sun, Oct 22, 2023 at 1:36?PM varin sacha via R-help
? ? ? ? >> > <r-help at r-project.org> wrote:
? ? ? ? >> >>
? ? ? ? >> >> Dear R-experts,
? ? ? ? >> >>
? ? ? ? >> >> Here below my R code with an error message. Can somebody help me to fix
? ? ? ? >> this error?
? ? ? ? >> >> Really appreciate your help.
? ? ? ? >> >>
? ? ? ? >> >> Best,
? ? ? ? >> >>
? ? ? ? >> >> ############################################################
? ? ? ? >> >> # MSE CROSSVALIDATION Lasso regression
? ? ? ? >> >>
? ? ? ? >> >> library(glmnet)
? ? ? ? >> >>
? ? ? ? >> >>
? ? ? ? >> >>
? ? ? ? >> x1=c(34,35,12,13,15,37,65,45,47,67,87,45,46,39,87,98,67,51,10,30,65,34,57,68,98,86,45,65,34,78,98,123,202,231,154,21,34,26,56,78,99,83,46,58,91)
? ? ? ? >> >>
? ? ? ? >> x2=c(1,3,2,4,5,6,7,3,8,9,10,11,12,1,3,4,2,3,4,5,4,6,8,7,9,4,3,6,7,9,8,4,7,6,1,3,2,5,6,8,7,1,1,2,9)
? ? ? ? >> >>
? ? ? ? >> y=c(2,6,5,4,6,7,8,10,11,2,3,1,3,5,4,6,5,3.4,5.6,-2.4,-5.4,5,3,6,5,-3,-5,3,2,-1,-8,5,8,6,9,4,5,-3,-7,-9,-9,8,7,1,2)
? ? ? ? >> >> T=data.frame(y,x1,x2)
? ? ? ? >> >>
? ? ? ? >> >> z=matrix(c(x1,x2), ncol=2)
? ? ? ? >> >> cv_model=glmnet(z,y,alpha=1)
? ? ? ? >> >> best_lambda=cv_model$lambda.min
? ? ? ? >> >> best_lambda
? ? ? ? >> >>
? ? ? ? >> >>
? ? ? ? >> >> # Create a list to store the results
? ? ? ? >> >> lst<-list()
? ? ? ? >> >>
? ? ? ? >> >> # This statement does the repetitions (looping)
? ? ? ? >> >> for(i in 1 :1000) {
? ? ? ? >> >>
? ? ? ? >> >> n=45
? ? ? ? >> >>
? ? ? ? >> >> p=0.667
? ? ? ? >> >>
? ? ? ? >> >> sam=sample(1 :n,floor(p*n),replace=FALSE)
? ? ? ? >> >>
? ? ? ? >> >> Training =T [sam,]
? ? ? ? >> >> Testing = T [-sam,]
? ? ? ? >> >>
? ? ? ? >> >> test1=matrix(c(Testing$x1,Testing$x2),ncol=2)
? ? ? ? >> >>
? ? ? ? >> >> predictLasso=predict(cv_model, newx=test1)
? ? ? ? >> >>
? ? ? ? >> >>
? ? ? ? >> >> ypred=predict(predictLasso,newdata=test1)
? ? ? ? >> >> y=T[-sam,]$y
? ? ? ? >> >>
? ? ? ? >> >> MSE = mean((y-ypred)^2)
? ? ? ? >> >> MSE
? ? ? ? >> >> lst[i]<-MSE
? ? ? ? >> >> }
? ? ? ? >> >> mean(unlist(lst))
? ? ? ? >> >> ##################################################################
? ? ? ? >> >>
? ? ? ? >> >>
? ? ? ? >> >>
? ? ? ? >> >>
? ? ? ? >> >> ______________________________________________
? ? ? ? >> >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see ? ? ? ? >> >> https://stat.ethz.ch/mailman/listinfo/r-help ? ? ? ? >> >> PLEASE do read the posting guide ? ? ? ? >> http://www.R-project.org/posting-guide.html ? ? ? ? >> >> and provide commented, minimal, self-contained, reproducible code. ? ? ? ? >> > ? ? ? ? >> > ______________________________________________ ? ? ? ? >> > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see ? ? ? ? >> > https://stat.ethz.ch/mailman/listinfo/r-help ? ? ? ? >> > PLEASE do read the posting guide ? ? ? ? >> http://www.R-project.org/posting-guide.html ? ? ? ? >> > and provide commented, minimal, self-contained, reproducible code. ? ? ? ? >> ? ? ? ? >> ______________________________________________ ? ? ? ? >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see ? ? ? ? >> https://stat.ethz.ch/mailman/listinfo/r-help ? ? ? ? >> PLEASE do read the posting guide ? ? ? ? >> http://www.R-project.org/posting-guide.html ? ? ? ? >> and provide commented, minimal, self-contained, reproducible code. ? ? ? ? >> ? ? ? ? > -- ? ? ? ? > Jin ? ? ? ? > ------------------------------------------ ? ? ? ? > Jin Li, PhD ? ? ? ? > Founder, Data2action, Australia ? ? ? ? > https://www.researchgate.net/profile/Jin_Li32 ? ? ? ? > https://scholar.google.com/citations?user=Jeot53EAAAAJ&hl=en ? ? ? ? > [[alternative HTML version deleted]]
? ? ? ? > ______________________________________________
? ? ? ? > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see ? ? ? ? > https://stat.ethz.ch/mailman/listinfo/r-help ? ? ? ? > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html ? ? ? ? > and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
______________________________________________ R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
Hello,
In your OP, the following two code lines are where that error comes from.
predictLasso=predict(cv_model, newx=test1)
ypred=predict(predictLasso,newdata=test1)
predictLasso already are predictions, it's the output of predict. So
when you run the 2nd line above you are passing it a matrix, not a
fitted model, and the error is thrown.
After the several suggestion in this thread, don't you want something
like this instead of your for loop?
# make the results reproducible
set.seed(2023)
# this is better than what you had
z <- TT[c("x1", "x2")] |> as.matrix()
y <- TT[["y"]]
cv_model <- cv.glmnet(z, y, alpha = 1, type.measure = "mse")
best_lambda <- cv_model$lambda.min
best_lambda
# these two values should be the same, and they are
# index to minimum mse
(i <- cv_model$index[1])
which(cv_model$lambda == cv_model$lambda.min)
# these two values should be the same, and they are
# value of minimum mse
cv_model$cvm[i]
min(cv_model$cvm)
plot(cv_model)
Hope this helps,
Rui Barradas
Este e-mail foi analisado pelo software antiv?rus AVG para verificar a presen?a de v?rus. www.avg.com
7 days later
On Oct 22, 2023, at 4:01 PM, Bert Gunter <bgunter.4567 at gmail.com> wrote: No error message shown Please include the error message so that it is not necessary to rerun your code. This might enable someone to see the problem without running the code (e.g. downloading packages, etc.) -- Bert On Sun, Oct 22, 2023 at 1:36?PM varin sacha via R-help <r-help at r-project.org> wrote:
Dear R-experts,
Here below my R code with an error message. Can somebody help me to fix this error?
Really appreciate your help.
Best,
############################################################
# MSE CROSSVALIDATION Lasso regression
library(glmnet)
x1=c(34,35,12,13,15,37,65,45,47,67,87,45,46,39,87,98,67,51,10,30,65,34,57,68,98,86,45,65,34,78,98,123,202,231,154,21,34,26,56,78,99,83,46,58,91)
x2=c(1,3,2,4,5,6,7,3,8,9,10,11,12,1,3,4,2,3,4,5,4,6,8,7,9,4,3,6,7,9,8,4,7,6,1,3,2,5,6,8,7,1,1,2,9)
y=c(2,6,5,4,6,7,8,10,11,2,3,1,3,5,4,6,5,3.4,5.6,-2.4,-5.4,5,3,6,5,-3,-5,3,2,-1,-8,5,8,6,9,4,5,-3,-7,-9,-9,8,7,1,2)
T=data.frame(y,x1,x2)
z=matrix(c(x1,x2), ncol=2)
cv_model=glmnet(z,y,alpha=1)
best_lambda=cv_model$lambda.min
best_lambda
# Create a list to store the results
lst<-list()
# This statement does the repetitions (looping)
for(i in 1 :1000) {
n=45
p=0.667
sam=sample(1 :n,floor(p*n),replace=FALSE)
Training =T [sam,]
Testing = T [-sam,]
test1=matrix(c(Testing$x1,Testing$x2),ncol=2)
predictLasso=predict(cv_model, newx=test1)
ypred=predict(predictLasso,newdata=test1)
The error I got was:
Error in UseMethod("predict") :
no applicable method for 'predict' applied to an object of class "c('matrix', 'array', 'double', 'numeric')"
I'm not sure why the name of the object was cv_model since it was not created as a cross-validation result.
The loops called predict() twice and it was the second call that produced the error since the predictLasso object was not a glmnet classed object.
If the OP had left out the second use of predict and then subtracted predictLasso from the y vector a result would have appeared
y=T[-sam,]$y
MSE = mean((y-predictLasso)^2)
...
mean(unlist(lst))
[1] 23.39621 Whether this is meaningful is hard to tell. It also makes the fundamental error of overwriting the original data object `y` with another intermediate result.
David >> y=T[-sam,]$y >> >> MSE = mean((y-ypred)^2) >> MSE >> lst[i]<-MSE >> } >> mean(unlist(lst)) >> ################################################################## >> >> >> >> >> ______________________________________________ >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >> https://stat.ethz.ch/mailman/listinfo/r-help >> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html >> and provide commented, minimal, self-contained, reproducible code. > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code.