geom_smooth()中“方法”参数值之间的区别是什么

Sae*_*any 2 r smoothing ggplot2

我想为Orange数据集的两个变量(内置数据集)age以及circumferenceX轴和Y轴绘制一个平滑图。

我使用以下代码:

ggplot(Orange, aes(
  x = age,
  y = circumference,
  shape = Tree,
  color = Tree
)) +
  geom_point() +
  scale_color_manual(values = c("red", "blue", "green", "black", "orange")) +
  ggtitle("Categorized Scatter plot") +
  theme_minimal() +
  theme(plot.title = element_text(hjust = 0.5)) +
geom_smooth(span = 0.7, se = TRUE, method = "loess") <----
Run Code Online (Sandbox Code Playgroud)

结果:

在此处输入图片说明

主要问题

R 函数中的method参数文档为goem_smooth()

使用的平滑方法(函数),例如 “ lm”,“ glm”,“ gam”,“黄土”,“ rlm”。对于method =“ auto”,将根据最大组的大小(跨所有面板)选择平滑方法。黄土用于1000多次观测;否则,将gam用于公式= y〜s(x,bs =“ cs”)。有趣的是,黄土的外观更好,但在内存中为O(n ^ 2),因此不适用于较大的数据集。

但是没有足够的解释说明哪种方法最适合不同的情况。

请详细回答该值。

Isa*_*ent 5

如果树的年龄与周长之间的关系是线性的,则可以使用lm(线性模型)。

如果关系是线性的,但是可能由于数据中存在异常值而失真,则可以使用rlm(鲁棒线性模型)来淡化异常值对关系估计的影响。

如果关系是非线性但平滑的,则可以使用黄土或gam。黄土方法基于局部线性平滑,可以处理离群值。gam方法允许使用不同类型的平滑处理-您使用哪种类型的平滑处理可能取决于模型是用于解释还是预测。

在将结果变量(在这种情况下为周长)视为二进制变量(例如,低周长与高周长)的情况下,glm方法将很有帮助。在这种情况下,glm可以使您将高圆周的对数赔率建模为年龄的线性函数。如果您怀疑年龄以非线性方式影响对数赔率,则应使用gam而不是glm。glm和gam还可以处理2种以上类别的结果变量,计数变量等。

lm和rlm函数还可以容纳参数形式的非线性关系(例如,二次,三次,四次),尽管您必须将它们与公式规范结合使用。就像是:

geom_smooth(method =“ lm”,公式= y〜x + I(x ^ 2))

对于用lm方法估计的二次关系。

相反,黄土和甘姆假设关系的非线性可以通过非参数模型捕获。

如果使用gam,则可以调查可用的不同类型的平滑器,并根据预定义的标准(例如,用于预测目的的AIC)选择“最佳”模型。对模型满意后,再绘制其结果。