我需要使用具有多个参数的权重来最小化线性回归的RMSE。
我尝试使用optim(),但是它给出了错误-“不允许丢失或负权重”。权重不应为负数或缺失,因为当参数更改时函数的输出也会发生变化,这意味着权重在回归中起作用。
library(tidyverse)
library(MLmetrics)
library(modelr)
ff1 <- function(a){
data1 <- sim1
a1 <- a[1]
a2 <- a[2]
data1$w <- a1*data1$x + a2*data1$y
fit <- lm(y ~ x,data = data1,weights=w)
x2 <- data.frame(x=data1$x)
yy <- data.frame(fit = predict(fit,x2))
data1$fit <- yy$fit
rmse1 <- RMSE(data1$fit,data1$x)
return(rmse1)
}
ff1(c(1,1))
ff1(c(1,50))
sol <- optim(c(1,1),ff1)
我尝试了几种方法,但是它们会产生相同的错误。