R语言统计分析——ggplot2绘图5——拟合光滑曲线

参考资料:R语言实战【第2版】

        ggplot2包可以通过计算统计函数并添加到图形中。例如:分级数据、计算密度、轮廓和分位数等。这里我们重点将添加平滑曲线(线性、非线性和非参数)到散点图中。

        我们可以使用geom_smooth()函数来添加一系列的平滑曲线和置信区域。函数的参数如下:

选项描述
method=使用的平滑函数。允许的值包括lm、glm、loess、rlm和gam,分别对应线性、广义线性、loess、健壮线性和广义相加模型。loess是默认值。
formula=在光滑函数中使用的公式。例子包括y~x(默认),y~log(x),y~poly(x,n)表示n次多项式拟合,y~ns(x,n)表示一个具有n个自由度的样条拟合
se绘制置信区间(TRUE/FALSE),默认TRUE
level使用的置信区间水平(默认95%)
fullrange指定拟合应涵盖全图(TRUE)或仅仅是数据(FALSE),默认是FALSE

        使用Salaries数据集,我们先检验博士毕业年数和薪水之间的关系。在这个例子中,我们可以使用带有95%置信区间的非参数光滑曲线( loess)。暂时忽略性别和学术等级。
 

# 加载car包,使用里面的Salaries数据集
library(car)
# 加载ggplot2包
library(ggplot2)
# 绘图
ggplot(Salaries,aes(x=yrs.since.phd,y=salary))+
  geom_point()+
  geom_smooth(method="loess",formula="y~x")

        上图可以看出,经验和薪水之间不是线性的关系,至少在毕业时间很长的时候是这样。

        下面,我们按性别拟合一个二次多项式回归(一个弯曲):

ggplot(Salaries,aes(x=yrs.since.phd,y=salary,
                    linetype=sex,shape=sex,color=sex))+
  geom_smooth(method=lm,formula=y~poly(x,2),se=FALSE,size=1)+
  geom_point()

        此图中,置信界限被抑制(se=FALSE)来简化图。性别由颜色、符号形状和线条类型来区分。根据此图:对男性来说,曲线从0增加至约30年然后下降。对女性来说,拟合曲线从0到40年一直呈上升趋势。在数据集中没有女性获得博士学位超过40年。对于数据集中的大部分范围,男性能拿到更高的薪水。

        geom_smooth()函数依赖于stat_smooth()函数来计算画出一个你和曲线及其置信区间所需的数量。帮助页面对于geom_smooth()函数的介绍很少,但对stat_smooth()函数的介绍包含大量有用的信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值