我正在使用logit回归,并创建了一个模型,该模型根据FICO得分和所请求的金额来预测获得贷款的可能性。 我创建了一个具有概率函数结果的数据框-行是潜在的FICO得分,列是潜在的请求贷款值。 对于每一行和每一列,其值为“ True”或“ False”,其中“ True”表示个人获得贷款的可能性> = .50。

如何创建散点图,根据数据框中的信息在(FICO得分,贷款价值)处绘制点,并在图上说出“ True”值的绿色圆圈和那些表示“ True”的值的红色X是“假”? 另外,有没有一种比散点图更好的方法来表示这种类型的数据?

===============>>#1 票数:2 已采纳

如果我了解您想做什么,我认为热图可能会更好。 在R中,有多种方法可以做到这一点ggplot2geom_tile提供了一种非常不错的方法,只要您首先重塑数据即可:

# using http://www.free-ocr.com/ to OCR your image gives:
dat <- structure(list(FICO = c(640L, 650L, 660L, 670L, 680L, 690L, 700L, 
710L, 720L, 730L, 740L, 750L, 760L, 770L, 780L, 790L, 800L, 810L, 
820L, 830L), `1000` = c(FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, 
TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, 
TRUE, TRUE, TRUE), `1500` = c(FALSE, FALSE, FALSE, FALSE, FALSE, 
FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, 
TRUE, TRUE, TRUE, TRUE, TRUE), `2000` = c(FALSE, FALSE, FALSE, 
FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, 
TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE), `2500` = c(FALSE, 
FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, 
TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE), `3000` = c(FALSE, 
FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, 
TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE), `3500` = c(FALSE, 
FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, 
TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE), `4000` = c(FALSE, 
FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, 
TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE), `4500` = c(FALSE, 
FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, 
TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE), `5000` = c(FALSE, 
FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, 
TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE), `5500` = c(FALSE, 
FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, 
TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE)), .Names = c("FICO", 
"1000", "1500", "2000", "2500", "3000", "3500", "4000", "4500", 
"5000", "5500"), class = "data.frame", row.names = c(NA, -20L
))

# now melt that data 
dat.m <- melt(dat, "FICO")
colnames(dat.m) <- c("FICO.Score", "Loan.Value", "p(loan)>0.50")

# and use ggplot with geom_tile to make a heatmap
gg <- ggplot(dat.m, aes(x=FICO.Score, y=Loan.Value))
gg <- gg + geom_tile(aes(fill=`p(loan)>0.50`), color="white")
gg <- gg + theme_bw()
gg <- gg + labs(x="", y="")
gg <- gg + theme(panel.border=element_blank())
gg <- gg + theme(panel.grid=element_blank())
gg 

在此处输入图片说明

===============>>#2 票数:1

lattice软件包非常适合您想要的绘图。 这是一些虚假数据的例子

> z <- as.logical(sample(TRUE:FALSE, 10, TRUE))
> d <- data.frame(x = 1:10, y = 101:110, z)
> d
##     x   y     z
## 1   1 101 FALSE
## 2   2 102 FALSE
## 3   3 103 FALSE
## 4   4 104  TRUE
## 5   5 105 FALSE
## 6   6 106 FALSE
## 7   7 107 FALSE
## 8   8 108 FALSE
## 9   9 109  TRUE
## 10 10 110  TRUE

> library(lattice)
> xyplot(y ~ x, data = d, groups = z, col = c("red", "green"), pch = 19)

在此处输入图片说明

===============>>#3 票数:1

您也可以使用ggplot2进行此操作。

一些FICO数据的样本:

fico <- structure(list(LoanValue = c(20000, 19200, 35000, 9975, 12000, 6000, 10000, 33450, 14675, 7000, 2000, 10625, 27975, 34950, 9600, 24975, 10000, 13900.25, 10000, 5175, 21975, 30000, 6500, 17400, 4000, 7200, 8000, 8000, 3000, 14500, 23850, 14000, 34975, 16000, 7019.25, 7975, 7200, 20125, 11875, 1850, 3200, 12725, 5500, 15650, 9000, 5000, 3000, 19975, 5450, 14000, 8799.04, 3000, 32000, 22250, 7300, 16450, 2500, 6000, 27575, 1000, 12000, 30000, 13500, 9000, 15000, 5300, 7000, 19975, 14993.57, 8000, 23947.48, 7500, 16875, 12000, 6000, 825, 4500, 1600, 10000, 18525, 7450, 3225, 23675, 12000, 25000, 15850, 4175, 10000, 6000, 6000, 7925, 15925, 9500, 6000, 9975, 7000, 4500, 12000, 10375, 4800), FICOscore = c(735L, 715L, 690L, 695L, 695L, 670L, 720L, 705L, 685L, 715L, 670L, 665L, 670L, 735L, 725L, 730L, 695L, 740L, 730L, 760L, 665L, 695L, 665L, 695L, 670L, 705L, 675L, 675L, 765L, 760L, 685L, 685L, 720L, 685L, 675L, 780L, 720L, 830L, 715L, 660L, 670L, 720L, 660L, 660L, 675L, 715L, 710L, 670L, 785L, 705L, 750L, 660L, 700L, 665L, 680L, 725L, 670L, 715L, 690L, 755L, 705L, 715L, 680L, 665L, 730L, 725L, 685L, 685L, 705L, 695L, 695L, 715L, 735L, 665L, 670L, 670L, 790L, 700L, 665L, 725L, 710L, 760L, 680L, 690L, 695L, 725L, 810L, 675L, 750L, 685L, 665L, 765L, 670L, 675L, 675L, 750L, 765L, 735L, 665L, 670L)), .Names = c("LoanValue", "FICOscore"), class = "data.frame", row.names = c(NA, -100L))

创建人为的可支持性:

fico$getloan <- ifelse(fico$FICOscore<700, "0", "1")

加载ggplot2软件包:

require(ggplot2)

创建散点图:

ggplot(fico, aes(x=FICOscore, y=LoanValue)) +
  geom_point(aes(color=getloan))

这使: 在此处输入图片说明

  ask by orange1 translate from so

未解决问题?本站智能推荐:

关注微信公众号