Q-Q Участок — Разделите один участок на 2 группы

#r #hypothesis-test

Вопрос:

У меня есть набор данных, в котором я пытаюсь подогнать регрессионную модель для оси Y, которая содержит 35 строк. Перед регрессией я запускаю график Q-Q, чтобы проверить, являются ли данные нормальными, но вместо этого мои данные следуют двум тенденциям на одном и том же графике, что означает, что есть 2 группы, как мне разделить существующий график Q-Q в соответствии с группами?

 qqnorm(sqrt(Total_Crime))
qqline(sqrt(Total_Crime))
 

Выше приведен код, который я сейчас использую

Ожидание :-

 qqnorm(sqrt(Total_Crime **where crime count is >500**))
qqline(sqrt(Total_Crime ** where crime count is >500**))
 

Комментарии:

1. Это зависит от структуры Total_crime . Пожалуйста, покажите часть этого объекта, которую лучше всего использовать dput(head(Total_crime)) .

2. c(6370, 1515662, 25546, 576090, 970440, 54252) Вот как это выглядит

3. Так что попробуй qqnorm(sqrt(Total_Crime[Total_Crime > 500])) .

4. Может быть, я что-то неправильно понимаю, но для линейной регрессии разве сами точки данных не должны быть равномерно распределены (в лучшем случае) ? Но остатки от подгонки должны быть полностью нормально распределены вокруг 0, чтобы выполнить одно из условий годности для фильма?

5. @dario Линейная модель предполагает нормальность ошибки (аппроксимируемой остатками), а не входные данные.

Ответ №1:

Предположим, вы хотите построить qq-график для каждой Species группы (подмножества) в качестве выборки, чтобы оценить нормальность переменной Sepal.Length . Тогда вы можете использовать ggplot2 :

 library(tidyverse)

data <-
  iris %>%
  group_by(Species) %>%
  transmute(Sepal.Length = Sepal.Length %>% scale())
data
#> # A tibble: 150 x 2
#> # Groups:   Species [3]
#>    Species Sepal.Length[,1]
#>    <fct>              <dbl>
#>  1 setosa            0.267 
#>  2 setosa           -0.301 
#>  3 setosa           -0.868 
#>  4 setosa           -1.15  
#>  5 setosa           -0.0170
#>  6 setosa            1.12  
#>  7 setosa           -1.15  
#>  8 setosa           -0.0170
#>  9 setosa           -1.72  
#> 10 setosa           -0.301 
#> # … with 140 more rows

data %>%
  ggplot(aes(sample = Sepal.Length))  
  stat_qq()  
  stat_qq_line()  
  facet_wrap(~Species)  
  coord_fixed()
 

Создано в 2021-10-18 годах пакетом reprex (v2.0.1)

Пожалуйста, имейте в виду, что линейная модель предполагает, что ошибка (аппроксимируемая остатками) распределена нормально, а не ковариата.