R语言机器学习与临床预测模型74--模型建立和验证的统计基础

R小盐准备介绍R语言机器学习与预测模型的学习笔记

你想要的R语言学习资料都在这里, 快来收藏关注【科研私家菜】


01 统计模型

统计模型是一类数学模型,通常由一个或多个变量与近似现实相关的数学方程指定。统计模型所包含的假设描述了一组概率分布,这将其与非统计、数学或机器学习模型区分开来。统计模型总是从一些基本假设开始,对于这些假设,变量应该保持不变,那么模型提供的性能在统计上具有重要意义。因此,了解所有构建块中涉及的各种细节为成为一名成功的统计学家提供了坚实的基础。

总体和样本
data <- c(4,5,1,2,7,2,6,9,3) 
dt_mean = mean(data) ; 
print(round(dt_mean,2)) 
dt_median = median (data); 
print (dt_median) 
func_mode <- function (input_dt) {   
unq <- unique(input_dt)  
unq[which.max(tabulate(match(input_dt,unq)))] 
} 
dt_mode = func_mode (data); 
print (dt_mode)

方差

方差:这是平均值的平方偏差的平均值(xi=数据点,μ=数据的平均值,N=数据点的数量)。方差的维数是实际值的平方。在总体中使用分母N-1而不是N的原因是自由度。


标准差

标准差:这是方差的平方根。通过应用方差的平方根,我们测量相对于原始变量的离散度,而不是维度的平方。


分位数


data <- c(4,5,1,2,7,2,6,9,3)

# Calculate Mean
dt_mean = mean(data) ; print(round(dt_mean,2))

# Calculate Median
dt_median = median(data); print(dt_median)

# Calculate Mode
func_mode <- function(input_dt){
  unq <- unique(input_dt)
  unq[which.max(tabulate(match(input_dt,unq)))]
}

dt_mode = func_mode(data); print(dt_mode)



# Desriptive statistics - dispersion
game_points <- c(35,56,43,59,63,79,35,41,64,43,93,60,77,24,82)

# Calculation Variance
dt_var = var(game_points); print(round(dt_var,2))

# Calculation Standard Deviation
dt_std = sd(game_points); print(round(dt_std,2))

# Calculation Range
range_val<-function(x) return(diff(range(x))) 
dt_range = range_val(game_points); print(dt_range)

# Calculation Quantiles
dt_quantile = quantile(game_points,probs = c(0.2,0.8,1.0)); print(dt_quantile)

# Calculation Inter quartile range
dt_iqr = IQR(game_points); print(dt_iqr)


02 假设检验

假设检验

假设检验:这是通过对样本进行一些统计检验来推断总体的过程。NULL和替代假设是验证假设是否具有统计意义的方法。

P值

P值:获得测试统计结果的概率至少为实际观察到的概率的极大值,假设零假设为真(通常在建模中,对于每个独立变量,小于0.05的p值被认为是显著的,大于0.05的p值被认为是不显著的;尽管如此,这些值和定义可能会随着上下文而变化)。
第一类和第二类错误:由于收集所有可用数据的可用资源的实际限制,假设检验通常在样本而不是整个人群中进行。然而,从样本中进行人口推断有其自身的成本,例如拒绝好的结果或接受错误的结果,更不用说分别了,当样本量增加导致I型和II型误差最小化时:

  • I型误差:当为真时拒绝零假设。
  • II型误差:当为假正态分布时接受零假设
    正态分布:这在统计学中非常重要,因为中心极限定理,这表明,平均μ和方差σ2的总体中大小为n的所有可能样本的总体接近正态分布。

卡方检验

卡方检验:独立性检验是分类数据统计分析中最基本、最常见的假设检验之一。给定两个分类随机变量X和Y,独立性的卡方检验确定它们之间是否存在统计相关性。

ANOVA

方差分析检验两个或多个总体的均值相等的假设。ANOVA通过比较不同因子水平上的响应变量均值来评估一个或多个因子的重要性。零假设表示所有populationmeans都相等,而替代假设表示至少有一个不同。

混淆矩阵

混淆矩阵:这是实际与预测的矩阵。使用该模型的癌症预测示例更好地解释了这一概念。


  • 真阳性(TPs):真阳性是指当患者确实患有疾病时,我们将疾病预测为是的情况。
  • 真阴性(TNs):当我们现在预测疾病时,患者实际上没有疾病。
  • 假阳性(FPs):当患者实际上没有疾病时,我们将疾病预测为是。FPs也被视为I类错误。
  • 假阴性(FN):当我们预测疾病为否时,患者实际上患有该疾病。FN也被视为II型错误。

精度(P):当预测“是”时,正确的频率是多少?

曲线下面积(ROC)

曲线下面积(ROC):用于绘制真阳性率(TPR)和假阳性率(FPR)之间的接收器工作特征曲线,也称为灵敏度和1特异性图



曲线下面积用于设置截止概率的阈值,以将预测概率分类为各种类别。

R平方(决定系数)

R平方(决定系数):这是由amodel解释的响应变量变化百分比的度量。它还衡量了与仅使用平均值作为估计值相比,模型将误差最小化的程度。在某些极端情况下,R平方的值也可能小于零,这意味着模型中的预测值比仅将简单平均值作为所有观测值的预测值表现更差。我们将在接下来的章节中详细研究这个参数。


调整后的R平方

调整后的R平方:调整后的R平方统计的解释几乎与R平方相同,但它会惩罚R平方如果模型中包含没有强相关性的额外变量。


最大似然估计(MLE)

最大似然估计(MLE):这是通过找到使观察结果的可能性最大化的参数值来估计统计模型的参数值(准确地说是逻辑回归)。

Akaike信息准则(AIC)

kaike信息准则(AIC):这用于逻辑回归,类似于线性回归的调整R平方原理。它测量给定数据集的模型的相对质量。


熵(Entropy)

熵:来自信息论,是数据不完整性的度量。如果样本完全均匀,则熵为零,如果样本等分,则熵为1。在决策树中,异质性最大的预测器将被视为最接近根节点,以贪婪模式将给定数据分类。



这里,n=类数。熵在中间最大,值为1,在极端情况下最小为0。较低的熵值是可取的,因为它将更好地隔离类。


信息增益

信息增益:这是根据给定属性对示例进行分区所导致的熵的预期减少。其思想是从混合类开始,并保持分区,直到每个节点重新获得对最纯类的观察。

基尼(Gini)

基尼:基尼杂质是一种误分类度量,适用于多类分类器上下文。基尼与熵的作用几乎相同,只是基尼的计算速度更快。



这里,i=类数。基尼和熵之间的相似性如下所示



# Hypothesis testing

xbar = 990; mu0 = 1000; s = 12.5 ; n = 30
t_smple = (xbar - mu0)/(s/sqrt(n));print (round(t_smple,2))

alpha = 0.05
t_alpha = qt(alpha,df= n-1);print (round(t_alpha,3))

p_val = pt(t_smple,df = n-1);print (p_val)



# Normal Distribution
xbar = 67; mu0 = 52; s = 16.3

# Normal distribution
# P (Z >= (x-mu)/sigma) 
# F(x) = P(X <= x)
pr = 1- pnorm(67, mean=52, sd=16.3)
print(paste("Prob. to score more than 67 is ",round(pr*100,2),"%"))



# Chi-square independence test
survey = read.csv("survey.csv",header=TRUE)

tbl = table(survey$Smoke,survey$Exer)
p_val = chisq.test(tbl)

print(paste("P-value is :",round(p_val$p.value,3)))


#ANOVA
fetilizers = read.csv("Data/fetilizers.csv",header=TRUE)

# Concatenate data rows into single vector
r = c(t(as.matrix(fetilizers)))
f = c("fertilizer1","fertilizer2","fertilizer3")
k = 3; n = 6

tm = gl(k,1,n*k,factor(f))
blk = gl(n,k,k*n)
av = aov(r ~ tm + blk)

smry = summary(av)
print(smry)


效果如下:


关注R小盐,关注科研私家菜(VX_GZH: SciPrivate),有问题请联系R小盐。让我们一起来学习 R语言机器学习与临床预测模型

你可能感兴趣的:(R语言机器学习与临床预测模型74--模型建立和验证的统计基础)