![9c4cce70190015dcdd5d67caf4811152.png](https://i-blog.csdnimg.cn/blog_migrate/ef25b2b3fb94f8c59ff118410f801459.png)
作者:科研猫 | 西红柿
责编:科研猫 | 馋猫
前面的教程中,我们讲解了在高通量数据中非常常用的一种模型构建方法,LASSO 回归(见临床研究新风向,巧用LASSO回归构建属于你的心仪模型)。作为正则化方法的一种,除了LASSO,还有另外一种模型值得我们学习和关注,那就是岭回归(ridge regression)。今天,我们将简要介绍什么是岭回归,它能做什么和不能做什么。在岭回归中,范数项是所有系数的平方和,称为 L2-Norm。在回归模型中,我们试图最小化 RSS+λ (sumβj2)。随着λ增加,回归系数 β 减小,趋于 0,但从不等于 0。岭回归的优点是可以提高预测精度,但由于它不能使任何变量的系数等于零,很难满足减少变量个数的要求,因此在模型的可解释性方面会存在一些问题。为了解决这个问题,我们可以使用之前提到的 LASSO 回归。
此外,岭回归更常用于处理线性回归中的共线性问题。通常认为共线性会导致过度拟合,并且参数估计会非常大。因此,在回归系数β的最小二乘的目标函数中加入惩罚函数可以解决这个问题。正则化思想是一致的,因此岭回归可以解决这个问题。
案例分析
- 案例一
数据介绍
我们选择载入同 LASSO 回归一样的数据 Biopsy Data on Breast Cancer Patients。我们载入MASS 包中来自威斯康星乳腺癌患者的数据集。目的是确定活检结果是良性还是恶性。研究人员使用细针抽吸 (FNA) 技术收集样本并进行活检以确定诊断(恶性或良性)。我们的任务是开发尽可能精确的预测模型来确定肿瘤的性质。数据集包含 699 名患者的组织样本,并存储在包含 11 个变量的数据框中。此数据框包含以下列:
ID: sample code number (not unique).
V1: clump thickness.
V2: uniformity of cell size.
V3: uniformity of cell shape.
V4: marginal adhesion.
V5: single epithelial cell size.
V6: bare nuclei (16 values are missing).
V7: bland chromatin.
V8: normal nucleoli.
V9: mitoses.
class: “benign” or “malignant”.
数据处理
我们首先加载 MASS 包并准备乳腺癌数据:
1library(glmnet)
2library(MASS)
3biopsy$ID =NULL
4names(biopsy) =c(“thick”, “u.size”, “u.shape”, “adhsn”, “s.size”, “nucl”, “chrom”, “n.nuc”, “mit”, “class”)
5biopsy.v2 <-na.omit(biopsy)
6set.seed(123) #random number generator
7ind<-sample(2, nrow(biopsy.v2), replace =TRUE, prob =c(0.7, 0.3))
8 train <-biopsy.v2[ind==1, ] #the training data set
9Convert data to generate input matrices and labels:
10x <-as.matrix(train[, 1:9])
11y <-train[, 10]
岭回归模型
我们首先使用岭回归建立模型,并将结果存储在对象 ridge 中。请注意:glmnet 包在计算lambda 值之前对输入值进行了标准化。我们需要将响应变量的分布指定为“二项式”,