我从tree
分析得到以下数据:
train = sample(1:nrow(dd),1010)
yhat1 <- predict(tree.model1,newdata=dd[-train,])
v10.test <- dd$v10[-train]
dd
是我的data.frame,v10
是(离散)响应变量,在1到10之间变化,train
是从我的数据帧中提取的样本。
我想使用实际测试值yhat1
绘制预测v10.test
,其中点大小考虑了分配给yhat1
的实际test.values的数量预测。
因此:
plot(yhat1, v10.test, cex = ???)
我需要的cex的值可以从表对象中提取,但我不知道如何。有什么想法吗?
table(yhat1, dd.test)
v10.test
yhat1 0 1 2 3 4 5 6 7 8 9 10
2.99479166666667 17 26 7 21 10 8 7 7 8 3 6
4.36725663716814 8 15 21 14 14 14 13 12 4 5 4
4.75 1 1 3 1 0 2 2 2 1 1 0
4.82710280373832 6 10 5 11 7 11 11 18 22 3 2
5.73684210526316 1 5 1 9 7 13 10 7 12 7 12
6.68 0 1 0 1 0 3 1 1 0 0 1
6.92045454545455 0 2 3 2 5 5 4 7 6 9 6
答案 0 :(得分:1)
我玩得更多了,事实证明我的主要问题不是表格,而是pch
的标准设置和点的标准尺寸,这使得结果图无法解释。
这样做的方法就是
plot(yhat1, dd.test, pch = 20, cex = table(yhat1,v10.test)/10)
这就是诀窍(并显示数据适合程度有多差)
答案 1 :(得分:1)
当您希望点的大小依赖于其他变量时,symbols
函数可能优于使用plot
和cex
。请注意,在使用变量的平方根来确定大小时,通常会得到最佳表示(以便区域成比例)。