R语言----逻辑回归各统计量解读

逻辑回归是回归模型,其中响应变量(因变量y)具有诸如True / False或0/1的分类值。 它实际上基于将其与预测变量(自变量x)相关的数学方程测量二元响应的概率,作为响应变量的值。
逻辑回归的一般数学方程为 :

y = 1/(1+e^-(a+b1x1+b2x2+b3x3+…))

以下是所使用的参数的描述 :

  • y是响应变量。
  • x是预测变量。
  • a和b是作为数字常数的系数。

glm()函数

逻辑回归中glm()函数的基本语法是:

glm(formula,data,family)

以下是所使用的参数的描述:

  • formula是表示变量之间的关系的符号。
  • data是给出这些变量的值的数据集。
  • family是R语言对象来指定模型的细节。 它的值是二项逻辑回归。

举个栗子:

内置数据集“mtcars”描述具有各种发动机规格的汽车的不同型号。
在“mtcars”数据集中,传输模式(自动或手动)由am列描述,它是一个二进制值(0或1)。 我们可以在列“am”和其他3列(hp,wt和cyl)之间创建逻辑回归模型。

输入:

# Select some columns form mtcars.
input <- mtcars[,c("am","cyl","hp","wt")]
print(head(input))

输出:

                    am cyl  hp    wt
Mazda RX4            1   6 110 2.620
Mazda RX4 Wag        1   6 110 2.875
Datsun 710           1   4  93 2.320
Hornet 4 Drive       0   6 110 3.215
Hornet Sportabout    0   8 175 3.440
Valiant              0   6 105 3.460
          ……… …………… ………… …………

创建回归模型:

我们使用glm()函数创建回归模型,并得到其摘要进行分析。

输入:

input <- mtcars[,c("am","cyl","hp","wt")]

am.data = glm(formula = am ~ cyl + hp + wt, data = input, family = binomial)

print(summary(am.data))

输出:

Call:
glm(formula = am ~ cyl + hp + wt, family = binomial, data = input)

Deviance Residuals: 
     Min        1Q    Median        3Q       Max  
-2.17272  -0.14907  -0.01464   0.14116   1.27641  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)  
(Intercept) 19.70288    8.11637   2.428   0.0152 *
cyl          0.48760    1.07162   0.455   0.6491  
hp           0.03259    0.01886   1.728   0.0840 .
wt          -9.14947    4.15332  -2.203   0.0276 *
---
Signif. codes:  0***0.001**0.01*0.05.0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 43.2297  on 31  degrees of freedom
Residual deviance:  9.8415  on 28  degrees of freedom
AIC: 17.841

Number of Fisher Scoring iterations: 8

关于glm()报错的解答

Warning messages:

  • glm.fit:算法没有聚合
  • glm.fit:拟合機率算出来是数值零或一

上述两个报错点可以参照:
https://www.cnblogs.com/runner-ljt/p/4574275.html

详解summary

Deviance Residuals:偏差残差统计量。
在理想情况下服从正态分布,普通最小二乘法在数学上保证产生均值为0的残差。

  • 在此例中,中位数的符号为负(-0.01464),表明向左偏移,中位数的大小表明偏斜的程度。
  • 第一个四分位数(1Q)和第三个四分位数(3Q)为钟形分布的幅度。在这种情况下,3Q有较大的幅度(0.14116+|-0.14907|)表明向右倾斜。
  • 最大和最小残差用来检验数据中产生较大残差的离群值。

Coefficients:系数。
如果一个变量的系数为0,那么这个变量是没有意义的,它对模型毫无贡献。
这里的系数只是估计,不会真正为0,那么从统计的角度而言,真正的系数为0的可能性是多大?这就依赖于z统计量(z value)和p值(Pr(>|t|))。

  • (Intercept)的Estimate ---- 公式中的b

  • vyl、hp、wt的Estimate ----公式中的系数

  • Pr(>|z|)—p-value:P值。概率p值估计了系数不显著的可能性,越小越好。如果p值很大,说明不显著的可能性很高。一般情况下如果p值远小于于显著水平α=0.05(可更换显著性水平的值)

  • Std.Error是回归系数的标准误差

  • Null deviance:无效偏差(零偏差); Residual deviance:剩余偏差 ;无效偏差和剩余偏差之间的差异越大越好

  • AIC:评价模型拟合的重要指标; AIC越低越好

结论:
在总结中,对于变量“cyl”和“hp”,最后一列中的p值(Pr(>|z|))大于0.05,我们认为它们对变量“am”的值有贡献是无关紧要的。 只有重量(wt)影响该回归模型中的“am”值。

  • 15
    点赞
  • 95
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
### 回答1: "non-numeric argument" 是 R 语言中的一个错误提示,意思是函数或操作需要输入数字类型的参数,但是输入了非数字类型的参数。这个错误通常出现在数值统计分析的过程中,比如使用某个函数时输入了字符型或逻辑型的数据,而该函数只能接受数字型数据作为输入。 解决这个问题的方法是检查输入的数据类型是否正确,如果不正确则需要进行类型转换或重新输入正确的数据。可以使用 is.numeric() 函数来判断一个变是否为数字类型,如果返回值为 TRUE 则说明该变是数字类型,否则为非数字类型。 ### 回答2: 在R语言中,当我们尝试对非数字数据进行数值或运时,我们可能会遇到“non-numeric argument”错误。 这是由于R语言认为一些数据不是数字,而是字符或其他非数字对象,因此无法进行数学计或其他数字相关操作的错误。 这种情况通常发生在我们尝试将文本数据转换为数字数据时,例如从CSV文件或其他数据源读取数据时,如果我们没有正确地指定变的数据类型,那么R语言可能会将其解释为字符类型,而不是数字类型。 在这种情况下,如果我们尝试对这些变执行数学运或其他数字相关操作,就会出现“non-numeric argument”错误。 解决此问题的方法可以通过使用as.numeric函数将变强制转换为数字类型来解决。另外,我们还可以通过使用is.numeric函数来检查变是否为数字类型,这有助于避免出现非数字参数的错误。 需要注意的是,使用as.numeric函数强制转换非数字类型的数据到数字类型时,如果该数据无法被转换为数字,则会将其转换为NA。因此,在转换数据类型之前,我们必须确保变中不包含任何无法被转换为数字类型的数据,否则转换过程会不完整或出现错误。 总之,“non-numeric argument”错误通常是由于我们尝试对非数字数据进行数字操作和计时引起的。 要解决此问题,我们需要确保我们的变具有正确的数据类型,并使用as.numeric函数来强制转换非数字类型的数据到数字类型。 ### 回答3: R语言中,当我们传递了非数值参数,比如字符或逻辑值给一个要求数值参数的函数时,就会出现“non-numeric argument”的错误。这个错误提示告诉我们,我们应该只传递数值类型的参数给这个函数,而非其他类型的值。 在R语言中,很多函数都要求输入数值参数,在这些函数的参数中传递了非数值类型的参数时就会发生这种错误。比如在进行基本的数值时,如果我们传递了非数值类型的参数,那么就会出现“non-numeric argument”错误。 此外,还有一些常见的函数,比如lm(),glm()等线性回归函数,它们要求我们输入数值型的数据作为自变和因变。在这些函数的参数中传递了非数值类型的参数时,也会出现这种类型的错误。 解决这个问题的方法通常是将非数值参数进行转换或者过滤。如果传递了字符参数,我们可以使用as.numeric()函数将其转换为数值类型。如果传递的是逻辑值,则需要判断出错的原因,并改正其中的问题。 总而言之,R语言中出现“non-numeric argument”错误通常是因为我们在函数的参数中传递了非数值类型的参数。因此,我们需要仔细检查我们的代码,找出并解决这些问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浮豹

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值