Регрессия в R - Линия регрессии с неправильным пересечением - PullRequest
0 голосов
/ 09 июля 2020

У меня вопрос по поводу регрессии, которую я сделал в R-Studio. Мои статистические данные говорят, что это перехват с осью y «-196»

, но когда я отображаю строку с

geom_smooth(method = 'lm', formula = y~x)

, перехват и косая линия быть правым. Я также проверил фрейм данных, и он выглядит нормально.

enter image description here

Does anyone have an idea what went wrong here?

Thx so much for your help

Dataframe:

.csv Dataframe

Полный код:

 df_final %>%
  filter(!is.na(case_per_million), !is.na(kof)) %>%
  ggplot(aes(kof, case_per_million, fill = region)) +
  geom_point(color = "white",
             shape = 21, alpha = 0.7, size = 2) +
  geom_smooth(method = lm, na.rm = TRUE, fullrange = TRUE,
              aes(group = 1), color = "steelblue",
              show.legend = FALSE,
              se = FALSE) +
  theme_ipsum_ps(grid = "XY",
                 axis = TRUE,
                 ticks = TRUE,
                 axis_col = "grey20") +
  labs(x = "KOF Globalisation Index (in 2017)",
       y = "COVID-19 Fälle pro 100.000 Einwohner (log)",
       title = "COVID-19 Fälle pro 100.000 Einwohner vs KOF Globalisation Index" ) +
  scale_y_log10(label = function(x) scales::comma(x, accuracy = 1)) +
  scale_x_continuous(limits = c(0, 100)) +
  scale_fill_manual("Region",
                    values = c("#98064A",
                               "#2D8587",
                               "#4C5C78",
                               "#E04E4B",
                               "#662C68",
                               "#932834")) +
  theme(panel.grid = element_line(linetype = "dashed"),
        legend.position = c(1,0),
        legend.justification = c(1,0))

и для вывода я использовал:

    reg2 <- lm(case_per_million ~ kof,
           data = df_final)
summary(reg2)

Ответы [ 2 ]

1 голос
/ 09 июля 2020

tl; dr Я думаю, вы добавили логарифмическую шкалу к оси Y, что означает, что вы в конечном итоге подбираете лог-линейную регрессию вместо линейной регрессии.

In чистый сеанс R, загрузка ваших данных:

m1 <- lm(case_per_million ~ kof, data=df_reg)
coef(m1)
library(ggplot2)
gg0 <- ggplot(df_reg, aes(kof, case_per_million)) +
    geom_smooth(method="lm",fullrange=TRUE) +
    scale_x_continuous(limits=c(0,NA)) +
    geom_point()
gg1 <- gg0 + scale_y_log10()
library(cowplot)
plot_grid(gg0,gg1)

введите описание изображения здесь

0 голосов
/ 09 июля 2020

ваши оси x и y можно перевернуть. Не могу ответить точно, не зная данных, которые в него вошли.

попробуйте, теперь этот график должен иметь больше смысла

plot (df$case_per_million ~ df$kof)
abline(lm(df$case_per_million ~ df$kof))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...