【问题标题】:Risk assessment models in R, in order to get the probability of specif levels of a factorR中的风险评估模型,以获得某个因素特定水平的概率
【发布时间】:2023-11-01 08:04:01
【问题描述】:

我是一名风险分析师,我的老板给了我一个我不知道该怎么做的任务。

现在我想获得某些特定条件下的概率。例如,数据看起来像这样

sex      hair_color Credit_Score Loan_Status
"Male"    "Red"      "256"        "bad"        
"Female"  "black"    "133"        "bad"        
"Female"  "brown"    "33"         "bad"        
"Male"    "yellow"   "123"        "good"  

所以我们想要预测每个客户的 Loan_Status。 我能做的就是将“sex”、“hai​​r_color”、“credit_score”视为因素。 并将它们放入 R 中的 glm() 中。

但是我的老板想知道“如果一个新客户是男性,红头发,他的贷款状态‘好’的概率是多少?”

或者“男性客户的贷款状况‘好’的概率是多少?”

我应该使用什么样的方法?如何获得概率? 我正在考虑边际分布,但我不知道这是否可行或如何计算它。

希望我把这个问题说得通俗易懂,谁会帮助我,非常感谢您抽出宝贵的时间

【问题讨论】:

  • 查找predict
  • 如果您是“风险分析师”,您应该知道如何做与风险估计相关的事情。你知道怎么做吗?

标签: r prediction glm categorical-data risk-analysis


【解决方案1】:

我认为本教程非常适合您的问题:http://www.theanalysisfactor.com/r-tutorial-glm1/

如果你在你的数据上使用它,它看起来像这样:

sex <- factor(c("m", "f", "f", "m"))
hair_color <- factor(c("red", "black", "brown", "yellow"))
credit_score <- c(256, 133, 33, 123)
loan_status <- factor(c("b", "b", "b", "g"))

data <- data.frame(sex, hair_color, credit_score, loan_status)

model <- glm(formula = loan_status ~ sex + hair_color + credit_score, 
         data = data, 
         family = "binomial")

predict(object = model, 
    newdata = data.frame(sex = "f", hair_color = "yellow", credit_score =     100),
    type = "response")

【讨论】:

  • 非常感谢您的帮助!但是如果我只需要当性别为“f”时,我应该使用边缘分布之类的东西吗?
  • 我真的不明白这个问题。上面的这个模型是用男性和女性的例子训练的,因为性别是获得正确贷款状态的一个因素。如果您只想预测女性,您只需将来自女性的输入添加到预测函数中。如果您不希望模型受性别影响和/或仅使用女性示例对其进行训练,则不需要性别变量。我建议您对 glm 模型/功能的工作原理进行一些研究,这将使事情变得更加清晰。希望这有帮助!
  • 再次非常感谢您!让我们换个问题,根据数据,我们怎么知道获得“好”的最佳组合,例如,黄色和信用评分 100 的女性可能最有可能获得“好”,如果我们有很多分类变量,我们如何确定最佳组合?
  • 你必须优化线性方程的逆对数几率(查找二项式函数),glm 已经估计了它的权重。只需致电summary(model),您就会看到截距的估计值和权重(系数)。所以你必须优化这样的函数:probability = 1/(1 + exp(-(w0+ w1*x1 + w2*x2 + ... + wn*xn))),其中 w1..wn 是估计的权重, w0 为截距
  • 这可能对你有帮助:stats.stackexchange.com/questions/20835/…
最近更新 更多