我试图用R绘制 beta解决方案路径图中的一组beta系数。以下是我试图绘制的beta值:
s0
AtBat .
Hits 1.136258490
HmRun .
Runs .
RBI .
Walks 1.182645827
Years .
CAtBat .
CHits .
CHmRun .
CRuns 0.110122200
CRBI 0.314564189
CWalks .
LeagueN .
DivisionW .
PutOuts 0.003304879
Assists .
Errors .
NewLeagueN .
我想从这组测试中得到的情节类型是:
以下是我试图绘制测试版的代码:
tmp <- as.data.frame(as.matrix(beta))
tmp$coef <- row.names(tmp)
tmp <- reshape::melt(tmp, id = "coef")
tmp$norm <- apply(abs(beta[-1,]), 2, sum)[tmp$variable+1] # compute L1 norm
当我运行上面的代码时,我从tmp$norm
收到错误:应用错误(abs(beta [-1,]),2,sum):
dim(X)必须具有正长度
然后我想用下面的代码绘制测试版,因为我没有得到tmp$norm
值,所以我无法运行:
ggplot(tmp[tmp$coef != "(Intercept)",], aes(norm, value, color = coef, linetype = coef)) +
geom_line() +
xlab("L1 norm") +
guides(color = guide_legend(title = ""),
linetype = guide_legend(title = "")) +
theme_bw() +
theme(legend.key.width = unit(3,"lines"))
这是一个简单的beta可重现代码,可以获得一些beta值:
beta=matrix(sample(1:19),19,1)
样本数和预测变量可以是任意数,例如样本数n = 200,预测变量= 19。