首页 > 其他分享 >R语言中使用非凸惩罚函数回归(SCAD、MCP)分析前列腺数据|附代码数据

R语言中使用非凸惩罚函数回归(SCAD、MCP)分析前列腺数据|附代码数据

时间:2023-09-20 21:24:11浏览次数:38  
标签:非凸 惩罚 fit 回归 SCAD cvfit lweight lbph MCP

原文链接:http://tecdat.cn/?p=20828 

最近我们被客户要求撰写关于非凸惩罚函数回归的研究报告,包括一些图形和统计输出。

本文使用lasso或非凸惩罚拟合线性回归,GLM和Cox回归模型的正则化,特别是最小大凹惩罚函数 (MCP) 和光滑切片绝对偏差惩罚(SCAD),以及其他L2惩罚的选项( “弹性网络”)。还提供了用于执行交叉验证以及拟合后可视化,摘要,推断和预测的实用程序。

我们研究 前列腺数据,它具有8个变量和一个连续因变量,即将进行根治性前列腺切除术的男性的PSA水平(按对数尺度):

   

X <- data$X
y <- data$y

要将惩罚回归模型拟合到此数据,执行以下操作:

   
reg(X, y)

此处的默认惩罚是最小大凹惩罚函数 (MCP) ,但也可以使用SCAD和lasso惩罚。这将产生一个系数路径,我们可以绘制

   

plot(fit)

注意,变量一次输入一个模型,并且在λ的任何给定值下,几个系数均为零。要查看系数是多少,我们可以使用以下 coef 函数:

   

coef(fit, lambda=0.05)
# (Intercept)      lcavol     lweight         age        lbph         svi 
#  0.35121089  0.53178994  0.60389694 -0.01530917  0.08874563  0.67256096 
#         lcp     gleason       pgg45 
#  0.00000000  0.00000000  0.00168038

该 summary 方法可用于后选择推断

   

summary(fit 
# MCP-penalized linear regression with n=97, p=8
# At lambda=0.0500:
# -------------------------------------------------
#   Nonzero coefficients         :   6
#   Expected nonzero coefficients:   2.54
#   Average mfdr (6 features)    :   0.424
# 
#         Estimate      z     mfdr Selected
# lcavol   0.53179  8.880  < 1e-04        *
# svi      0.67256  3.945 0.010189        *
# lweight  0.60390  3.666 0.027894        *
# lbph     0.08875  1.928 0.773014        *
# age     -0.01531 -1.788 0.815269        *
# pgg45    0.00168  1.160 0.917570        *

在这种情况下, 即使调整了模型中的其他变量之后,lcavol, svi以及 lweight 显然与因变量关联,同时 lbph, age和 pgg45 可能只是偶然包括。通常,为了评估模型在λ的各种值下的预测准确性,将执行交叉验证:

   

plot(cvfit)

使交叉验证误差最小的λ的值由 cvfit$lambda.min给出,在这种情况下为0.017。将coef 在return的输出 应用于 cv.ncvreg λ的值的系数:

   

coef 
#  (Intercept)       lcavol      lweight          age         lbph          svi 
#  0.494154801  0.569546027  0.614419811 -0.020913467  0.097352536  0.752397339 
#          lcp      gleason        pgg45 
# -0.104959403  0.000000000  0.005324465

可以通过predict来获得预测值 ,该选项有多种选择:

   

predict(cvfit
# 预测新观测结果的响应
#         1         2         3         4         5         6 
# 0.8304040 0.7650906 0.4262072 0.6230117 1.7449492 0.8449595
 
# 非零系数的数量
# 0.01695 
#       7
 
# 非零系数的特性
#  lcavol lweight     age    lbph     svi     lcp   pgg45 
#       1       2       3       4       5       6       8

请注意,原始拟合(至完整数据集)的结果为 cvfit$fit;不必同时调用两者 ncvreg 和 cv.ncvreg 分析数据集。

如, plot(cvfit$fit) 将产生与上述相同的系数路径图 plot(fit) 。


最受欢迎的见解

1.R语言多元Logistic逻辑回归 应用案例

2.面板平滑转移回归(PSTR)分析案例实现

3.matlab中的偏最小二乘回归(PLSR)和主成分回归(PCR)

4.R语言泊松Poisson回归模型分析案例

5.R语言回归中的Hosmer-Lemeshow拟合优度检验

6.r语言中对LASSO回归,Ridge岭回归和Elastic Net模型实现

7.在R语言中实现Logistic逻辑回归

8.python用线性回归预测股票价格

9.R语言如何在生存分析与Cox回归中计算IDI,NRI指标

标签:非凸,惩罚,fit,回归,SCAD,cvfit,lweight,lbph,MCP
From: https://www.cnblogs.com/tecdat/p/17718431.html

相关文章

  • Cascader级联选择器多选时获取所有选中状态的节点和半选状态的节点的数组集合
    <!--Cascader级联选择器组件--><el-cascaderv-model="query.companyList"ref="searchCompanyCascaderRef":options="permissionCompanyTree":props="companyCascaderProp"collapse-tagsclearable></el......
  • OpenCASCADE GLFW IMGUI
    OpenCASCADEGLFWIMGUI如果从事过C++Windows客户端开发,大家对MFC、Qt、DuiLib、WxWidgets等各种DirectUI应该有了解,本篇给大家介绍一个超级轻量级的C++开源跨平台图形界面框架ImGUI.ImGUI主要用于游戏行业,所有的控件都需要手绘实现,当然性能也是满满的,毕竟是直接用dx/opengl来......
  • 关于Web Scada系统
    几十年来,传统SCADA解决方案一直是使用专有通信协议的独立系统。现在,基于Web的监控和数据采集系统(SCADA)正在改变传统SCADA系统的安装、配置和管理过程。什么是WebScada?WebSCADA系统(英文全称:Web-basedSupervisoryControlandDataAcquisitionSystem),即基于Web技术的监控与......
  • 介绍一款轻量型 Web SCADA 组态软件
    随着互联网、物联网技术的快速发展,图扑物联基于多年研发积累和私有部署实践打磨、以及对业务场景的深入理解,推出了适用于物联网应用场景的轻量型云组态软件。该产品采用B/S架构,提供Web管理界面,软件包大小仅50MB,无需安装客户端,可通过浏览器直接访问。图形组态功能,是工业使用场......
  • 内存函数,memcpy,memmove,memcmp,memset
    structs{ charname[20]; intage;};intmain(){ intarr1[]={1,2,3,4,5}; intarr2[5]={0}; structsarr3[]={{"张三",20},{"李四",18}}; structsarr4[3]; memcpy(arr4,arr3,sizeof(arr3)); //memcpy(arr2,arr1,sizeof(a......
  • D. Matrix Cascade
    D.MatrixCascade仔细想想会觉得这题的限定方式很像物理上波的传播。所以我们建立一个结构体,对于给定的n*n的表格上的每个点,都定义它具有四个属性:val该点初始的值是多少(1/0)under_wave_num该点处于几个波下。可以知道,如果一个点处于某些波的影响下,那么该点正下方的点......
  • CF1864D Matrix Cascade 题解
    首先把式子拆一下,可以知道\(x-i\ge|y-j|\)等价于\(x-y\gei-j\)和\(x+y\gei+j\),注意到每次操作\((i,j)\),影响到的点\((x,y)\)均要满足\(x>i\),那么我们每次就必须要按照从上往下的顺序进行,否则上面的点无法影响到,即从第一行开始操作。又注意到对于\((i,j)\)如果执......
  • iview Cascader loadData Vue
    <template><div><Carddis-hover><divclass="page-body"><Formref="queryForm":label-width="90"label-position="left"inline>......
  • CF1864D Matrix Cascade
    思路第一时间想到的是暴力,因为同一行的互不影响,所以第一行的\(1\)一定都需要操作,然后把后续的状态更新,再操作第二行的所有的\(1\),但是很可惜是\(O(n^4)\)的复杂度,必然会TLE。所以思考其他的办法,考虑到可以统计有多少操作更改了这个位置的状态,所以可以使用一个类似前缀和的......
  • 什么是三维组态软件?工业3D SCADA软件系统哪个好用?
    随着工业自动化水平的不断提高,对于可视化组态软件的需求也日益增长。传统的三维组态一般都是本地应用,随着HTML5+WebGL技术的发展,基于Web浏览器B/S架构下的三维组态应用被广泛使用,使得工业控制变得简单易行,三维组态软件提高了工业控制的管理效率,让工业控制的资源管理、风险管控得......