在实际应用中,Logistic模型主要有三大用途:
1)寻找危险因素,找到某些影响因变量的"坏因素",一般可以通过优势比发现危险因素;
2)用于预测,可以预测某种情况发生的概率或可能性大小;
3)用于判别,判断某个新样本所属的类别。
Logistic模型实际上是一种回归模型,但这种模型又与普通的线性回归模型又有一定的区别:
1)Logistic回归模型的因变量为二分类变量;
2)该模型的因变量和自变量之间不存在线性关系;
3)一般线性回归模型中需要假设独立同分布、方差齐性等,而Logistic回归模型不需要;
4)Logistic回归没有关于自变量分布的假设条件,可以是连续变量、离散变量和虚拟变量;
5)由于因变量和自变量之间不存在线性关系,所以参数(偏回归系数)使用最大似然估计法计算。
logistic回归模型概述
广义线性回归是探索“响应变量的期望”与“自变量”的关系,以实现对非线性关系的某种拟合。这里面涉及到一个“连接函数”和一个“误差函数”,“响应变量的期望”经过连接函数作用后,与“自变量”存在线性关系。选取不同的“连接函数”与“误差函数”可以构造不同的广义回归模型。当误差函数取“二项分布”而连接函数取“logit函数”时,就是常见的“logistic回归模型”,在0-1响应的问题中得到了大量的应用。
Logistic回归主要通过构造一个重要的指标:发生比来判定因变量的类别。在这里我们引入概率的概念,把事件发生定义为Y=1,事件未发生定义为Y=0,那么事件发生的概率为p,事件未发生的概率为1-p,把p看成x的线性函数;
回归中,最常用的估计是最小二乘估计,因为使得p在[0,1]之间变换,最小二乘估计不太合适,有木有一种估计法能让p在趋近与0和1的时候变换缓慢一些(不敏感),这种变换是我们想要的,于是引入Logit变换,对p/(1-p)也就是发生与不发生的比值取对数,也称对数差异比。经过变换后,p对x就不是线性关系了。
R语言-统计学 描述性统计描述定量数据的数值方法:中心趋势度量 变异的度量 相对位置的度量。
1.中心趋势度量 : 算数平均 中位数 众数
1.1 在R中计算平均数的函数 mean( )常规的mean() 函数用法mean(x, trim = 0, na.rm = FALSE, ...) 参数说明: x 对象名称trim 过滤掉异常值 ,按照距离平均值的远近距离排除,如对象中含有10个数据,排除最高和最低值,trim=0.2na.rm 默认为F 表示是否计入空值实例1: 做一个稍微复杂点的操作,用r做数据透视表并把结果转换为matrix ,对行列求和。(仅娱乐,无实用价值)
demo <- mtcars[1:6,] # 调用R自带函数集,并去前6行
toushi <- aggregate(mtcars[,5:6] ,by = list(cyl = mtcars$cyl),sum) # 数据透视表求和
toushi <- as.matrix(toushi) # 将结果的数据框转化成矩阵
#(toushi <- apply(toushi,c(1,2),sum))
(rowSums(toushi)) # 行求和
(colSums(toushi)) # 列求和
toushi <- rbind(toushi,rowSums(toushi)) #将行求和结果并入最后一行
toushi <- cbind(toushi,colSums(toushi)) #将列求和结果并入最后一列
1.2 中位数和众数
对于偏度极大的数据集,中位数能更好的描述数据分布的中心。
很少用众数作为数据数据趋势的度量,只有当对y出现的相对频率感兴趣时,才会考虑到众数。
R实现中位数 :
median(x, na.rm = FALSE)
R中没有直接插找众数的命令
which.max(table(x))
2.变异的度量 : 极差 方差 标准差
2.1 .极差 = max()- min()
2.2 方差和标准差
对一个有n个测量值的有限总体来说,方差计算公式的分母为n。关于样本方差和总体方差分母的差异原因,可自行百度搜索。
R语言计算方差的函数: var(x,)
w<-c(75.0,64.0,47.4,66.9,62.2,62.2,58.7,63,5,66.6,64.0,57.0,69.0,56.9,50.0,72.0)
var(w)
# 附加指数点:标准差的两个有用法则:经验法则 和 切比雪夫法则,共同说明一个问题,对于任意大于1的正数k,至少有(1-1/k^2)的测试值落在平均值的k个标准值范围内。
3.变异的度量 : 百分位数 Z得分
3.1 .最常见的四分位数(一般从大到小)
quantile(x, probs = seq(0, 1, 0.25), na.rm = FALSE,names = TRUE, type = 7, ...)
mutate:变异 突变 改变 数据修改
紧接着创建新的列gain和speed
新创建的列同时也可以使用(但是保留的方法仍然是赋值给某个名称):
由于系统显示限制,最后一列没有展示出来,运行view()函数即可:
如果只想要保留新的变量,那就使用transmute()函数:
此时参与计算的arr_delay、dep_delay、air_time、hours都消失,只有新转换的gain、hours 、gain_per_hour三列。
mutare()函数可以和前面提到的几个函数结合起来使用。其中进行运算的时候,肯定会涉及到R语言的计算语言,以下列出几个常用的:
举例: