#r #smooth #smoothing
#r #сглаживание
Вопрос:
Я пытаюсь создать несколько geom_smooth
строк, используя следующий код:
# Install necessary packages
install.packages("tidyverse")
library(tidyverse)
# Create the plot
ggplot(data = mpg)
geom_smooth(mapping = aes(x = displ, y = hwy, linetype = fl, colour = fl, fill = fl))
Однако всякий раз, когда я сопоставляю его fl
, он завершается ошибкой со следующим сообщением об ошибке:
Warning messages:
1: In simpleLoess(y, x, w, span, degree = degree, parametric = parametric, :
span too small. fewer data values than degrees of freedom.
2: In simpleLoess(y, x, w, span, degree = degree, parametric = parametric, :
at 1.877
3: … : radius 0.000529
4: … : all data on boundary of neighborhood. make span bigger
5: … : pseudoinverse used at 1.877
6: … : neighborhood radius 0.023
7: … : reciprocal condition number 1
8: … : There are other near singularities as well. 21.372
9: … : zero-width neighborhood. make span bigger
10: Computation failed in `stat_smooth()`:
NA/NaN/Inf in foreign function call (arg 5)
Странно то, что он хорошо работает даже при сопоставлении его с чем-то грандиозным, например class
(похоже, Дисней раскрасил его). Кажется довольно странным, что нельзя сопоставить его с типом топлива, поскольку это именно те данные, которые кажутся идеальными для такого рода исследований. Это ошибка, или я что-то полностью упускаю?
Я использую RStudio 0.99.902 и новичок в R.
Ответ №1:
меньше значений данных, чем степеней свободы.
> table(mpg$fl)
c d e p r
1 5 8 52 168
Вы не можете сгладить одно наблюдение в c, вам нужно исключить это или выбрать другое представление.