R 如何从“惩罚”包导出Penized回归模型的所有系数?需要它们来报告滚动回归估计
我已经能够用一些约束到正区域的系数来运行回归,但是我在面临问题的地方做了很多滚动回归。以下是我的示例代码:R 如何从“惩罚”包导出Penized回归模型的所有系数?需要它们来报告滚动回归估计,r,regression,linear-regression,R,Regression,Linear Regression,我已经能够用一些约束到正区域的系数来运行回归,但是我在面临问题的地方做了很多滚动回归。以下是我的示例代码: library(penalized) set.seed(1) x1=rnorm(100)*10 x2=rnorm(100)*10 x3=rnorm(100)*10 y=sin(x1)+cos(x2)-x3+rnorm(100) data <- data.frame(y, x1, x2, x3) win <- 10 coefs <- matrix(NA, ncol=4
library(penalized)
set.seed(1)
x1=rnorm(100)*10
x2=rnorm(100)*10
x3=rnorm(100)*10
y=sin(x1)+cos(x2)-x3+rnorm(100)
data <- data.frame(y, x1, x2, x3)
win <- 10
coefs <- matrix(NA, ncol=4, nrow=length(y))
for(i in 1:(length(y)-win)) {
d <- data[(1+i):(win+i),]
p <- win+i
# Linear Regression
coefs[p,] <- as.vector(coef(penalized(y, ~ x1 + x2 + x3, ~1,
lambda1=0, lambda2=0, positive = c(F, F, T), data=data)))}
库(受处罚)
种子(1)
x1=rnorm(100)*10
x2=rnorm(100)*10
x3=rnorm(100)*10
y=sin(x1)+cos(x2)-x3+rnorm(100)
数据也许您不知道“penfit”对象的coef
的参数。看看:
getMethod(coef, "penfit")
#function (object, ...)
#{
# .local <- function (object, which = c("nonzero", "all", "penalized",
# "unpenalized"), standardize = FALSE)
# {
# coefficients(object, which, standardize)
# }
# .local(object, ...)
#}
#<environment: namespace:penalized>
实际上,我希望看到那些0个COEF,因为现在我不知道什么COEF属于什么变量。我将要做一些时间序列分析,所以从这些时间序列中构建y将是相当困难的。我试图重现普通线性模型的例子就是使用它并试图模仿它。所以不能故意说,只是模仿例子而已。唯一不同的是,它们从根本上限制了一些系数为正。太好了,这正是我想要的。谢谢!矩阵维度在我的真实数据中保持不变,现在已更正。
getMethod(coef, "penfit")
#function (object, ...)
#{
# .local <- function (object, which = c("nonzero", "all", "penalized",
# "unpenalized"), standardize = FALSE)
# {
# coefficients(object, which, standardize)
# }
# .local(object, ...)
#}
#<environment: namespace:penalized>
library(penalized)
set.seed(1)
x1 = rnorm(100)*10
x2 = rnorm(100)*10
x3 = rnorm(100)*10
y = sin(x1) + cos(x2) - x3 + rnorm(100)
data <- data.frame(y, x1, x2, x3)
win <- 10
coefs <- matrix(NA, ncol=4, nrow=length(y))
for(i in 1:(length(y)-win)) {
d <- data[(1+i):(win+i),]
p <- win + i
pen <- penalized(y, ~ x1 + x2 + x3, ~1, lambda1 = 0, lambda2 = 0,
positive = c(F, F, T), data = data)
beta <- coef(pen, which = "all")
coefs[p,] <- unname(beta)
}