概述
统计就是归纳和演绎的结合,induction & deduction. 归纳,就是从数据中寻找一般规律(或者一般模型),演绎就是在人为的假定下去得出推而广之的普适性结论。
常规的统计学是模型驱动,例如假设正态分布,假设方差齐,然后使用一些参数检验或非参数检验去计算。
然而,一个现实的情况是,大部分情况下,我们无法得知数据的真实分布,又或者说,大部分临床研究的样本量,达不到所谓的“大样本数据”,虽然大样本数据被认为是逼近正态分布的。
数据收集
在临床试验中,充分收集和所关心问题充分有关的数据,尽可能的覆盖。
数据预处理
主要是填补缺失值,例如均值、中位数、预测值、最近邻等等。
寻找适合的模型
临床上的数据一般比较复杂,例如数据的关联性、线性、异方差性、多重共线性、聚类性、平衡性、偏峰性等等。先了解数据集的特性,然后首先寻找现成的模型,比较现成模型的计算结果。
若现成模型能符合所收集的数据集,则用之;若不符合,则需要新的数据分析方法。
模型比较
模型比较方法有:AIC, BIC, 交叉验证等。
AIC,Akaike information criterion,赤池信息量准则,是衡量统计模型拟合优良的方法。
通常而言,AIC越小,模型越好,选择AIC最小的模型。
在一般条件下,AIC可表示为
A
I
C
=
(
2
K
−
2
L
)
/
n
AIC=(2K-2L)/n
AIC=(2K−2L)/n,AIC的前提假设条件是模型的误差服从独立正态分布,其中K是所拟合模型中的参数数量,L是对数似然值,n是观测值数目。K越小意味着模型越简洁,L越大意味着模型越精确。
交叉验证:机器学习里的,比较简单,前面提过了。
由于实际数据是复杂的,可能必须经过多次尝试及对比才能确定什么模型不适用,什么模型适用。所有的传统统计方法都有一定的假定,必须注意这些假定的合理性。
横截面数据:因变量为连续变量
1、误差项符合独立同方差正态分布
⇒
\Rightarrow
⇒ 线性回归模型
2、误差项不符合上述假设
⇒
\Rightarrow
⇒ 其他模型
横截面数据:因变量为分类变量
自变量为二分类变量
⇒
\Rightarrow
⇒ logistic回归和probit回归
自变量为连续变量
⇒
\Rightarrow
⇒ 线性判别分析
其他包括决策树、神经网络、随机森林,支持向量等
纵向数据
多层模型,随机效应混合模型,
变量间关系
为探究各个变量间的关系,,就不存在自变量和因变量了。
如果变量均符合正态分布,可以使用主成分分析、因子分析、聚类分析、典型相关分析等。
偏门的:关联规则分析。
基本步骤
1. 首先对数据进行判断,是否存在多重共线问题
kappa(data) #查看条件数k
car::vif(lm(y~., data)) #查看VIF值
VIF值大于10说明共线问题严重。
2.若数据不存在多重共线问题
2.1 线性回归模型拟合,查看 R 2 R^2 R2,查看残差的shapiro检验,查看各变量的t检验和F检验,综合判断该拟合的模型是否合适
2.2 若上述步骤拟合效果不佳, R 2 R^2 R2数值较小,尝试使用MASS::boxcox()函数进行指数变换;尝试增加一些幂次变量。直到最后找到合适的 R 2 R^2 R2
3.若数据存在多重共线问题
3.1 岭回归、lasso回归、适应性lasso回归、Elastic Net等机器学习方法,来尝试建模
3.2 尝试使用偏最小二乘回归与主回归方法,将原来共线严重的变量转换成几个正交的新变量
pls::plsr() #偏最小二乘回归
pcr() #主成分回归
再使用多个准则,RMSEP(), MSEP(), R2() 等方法对新变量进行筛选