我想为X和Y轴上的Orange
数据集(内置数据集),age
和circumference
的两个变量绘制一个平滑图。 / 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") <----
结果:
主要问题
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),因此不适用于较大的数据集。
但是没有足够的解释说哪一个最适合不同的场景。
请详细回答这些值。
答案 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)选择“最佳”模型。一旦您对模型感到满意,然后绘制其结果。