gpt4 book ai didi

r - 如何通过获取散点图切片来生成数据的条件分布?

转载 作者:行者123 更新时间:2023-12-05 00:42:15 24 4
gpt4 key购买 nike

我正在学习多元线性回归的第一门类(class),所以我仍然是 R 的初学者。我们最近学习了一些关于水平和垂直获取二元散点图数据切片的知识。我想知道的是如何超越基本的散点图,并利用按切片有条件地对数据进行分组来检查模式。


例如,我正在处理来自一家银行的高辛烷值数据,我们正在对员工的当前工资进行回归 csalary到他们的起薪 bsalary .这是我的数据框的样子。


> str(data)
'data.frame': 474 obs. of 10 variables:
$ id : num 628 630 632 633 635 637 641 649 650 652 ...
$ bsalary: num 8400 24000 10200 8700 17400 ...
$ gender : Factor w/ 2 levels "Male","Female": 1 1 1 1 1 1 1 1 1 1 ...
$ time : num 81 73 83 93 83 80 79 67 96 77 ...
$ age : num 28.5 40.3 31.1 31.2 41.9 ...
$ csalary: num 16080 41400 21960 19200 28350 ...
$ educlvl: num 16 16 15 16 19 18 15 15 15 12 ...
$ work : num 0.25 12.5 4.08 1.83 13 ...
$ jobcat : Factor w/ 7 levels "Clerical","Office Trainee",..: 4 5 5 4 5 4 1 1 1 3 ...
$ ethnic : Factor w/ 2 levels "White","Non-White": 1 1 1 1 1 1 1 1 1 1 ...

探究bsalary的关系和 csalary我使用 lattice 的一些功能创建了一个散点图图书馆。我沿着 bsalary 以 5000 美元的间隔任意绘制了垂直线。 .


library (lattice)
# Constructing vertical "slices" of our csalary ~ bsalary data
# First we define a vector with our slice points, in this case
# $5,000 bsalary increments
bslices = seq (from = 5000, to = 30000, by = 5000)
length (bslices)
xyplot (csalary ~ bsalary,
main = "Current Bank Employee Salary as Predicted by Beginning Salary",
xlab = "Beginning Salary ($USD)",
ylab = "Current Salary ($USD)",
panel = function(...){
panel.abline(v = bslices, col="red", lwd=2);
panel.xyplot(...);
}
)


上面的代码让我明白了这一点。

Rplot002.pdf (1 page) (来源:skitch.com)

这太棒了。但我觉得应该有一种简单的方法可以从我的数据中生成将切片数据分组为箱线图的图表:

01LinReg.pdf (page 3 of 25) (来源:skitch.com)

或堆叠点散点图,再次按切片分组,如下所示:


01LinReg.pdf (page 3 of 25) (来源:skitch.com)

最终,我的问题是如何将原始散点图数据转换为条件分组数据。我觉得lattice 有一些简单的、潜在的特性(甚至不需要它的更简单的绘图命令)可以让我开始切片我的数据以探索模式。


在此先感谢您的帮助!

最佳答案

您可以使用 cut() 函数将数据分成有序类别。然后 ggplot2 的 qplot 函数可以很容易地创建你想要的图。

library(ggplot2)

#fake data
csalary <- rnorm(100,,100)
bsalary <- csalary +rnorm(100,,10)

#Regular Scatter Plot
qplot(bsalary,csalary)

#Stacked dot plot
qplot(cut(bsalary,10),csalary)

#box-plot
qplot(cut(bsalary,10),csalary,geom="boxplot")

关于r - 如何通过获取散点图切片来生成数据的条件分布?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2308991/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com