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

时间:2018-03-13 13:42:56

标签: r ggplot2 smoothing

我想为X和Y轴上的Orange数据集(内置数据集),agecircumference的两个变量绘制一个平滑图。 / p>

我使用了这段代码:

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") <----

结果:

enter image description here

主要问题

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

  

要使用的平滑方法(功能),例如。 &#34; lm&#34;,&#34; glm&#34;,&#34; gam&#34;,&#34; loess&#34;,&#34; rlm&#34;。   对于方法=&#34; auto&#34;根据最大组的大小(跨所有面板)选择平滑方法。黄土用于超过1,000次观测;否则gam与公式= y~s一起使用(x,bs =&#34; cs&#34;)。有点传闻,黄土提供了更好的外观,但在内存中是O(n ^ 2),因此不适用于较大的数据集。

但是没有足够的解释说哪一个最适合不同的场景。

请详细回答这些值。

1 个答案:

答案 0 :(得分:4)

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

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

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

在结果变量(在这种情况下,周长)将被视为二进制变量(例如,低与高周长)的情况下,glm方法将是有用的。在这种情况下,glm将使您能够将高周长的对数几率建模为年龄的线性函数。如果你怀疑年龄以非线性方式影响对数赔率,那么你将使用gam而不是glm。 glm和gam还可以处理超过2个类别,计数变量等的结果变量。

lm和rlm函数还可以适应参数形式的非线性关系(例如,二次,三次,四次),但您必须将它们与公式规范结合使用。类似的东西:

geom_smooth(method =“lm”,formula = y~x + I(x ^ 2))

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

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

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