Posso julgar a assimetria de um gráfico de dispersão com dados bivariados em R?

7

Este é um gráfico de dispersão de x (renda) e y (população).  No gráfico de dispersão, é seguro dizer que os dados são deixados ou inclinados negativamente?

plot(filterdacsom5$Median_Income,filterdacsom5$Total_Population,
     xlab="Income", ylab ="Population",
     main="Demographics plotted for all zip codes in 2017 ",col="red" )

Eu sou novo Re compreendo assimetria.

Este é um gráfico de dispersão Median_Incomeno eixo horizontal e Total_Populationno eixo vertical. No gráfico de dispersão, é seguro dizer que os dados são deixados ou inclinados negativamente?

Ben - Restabelecer Monica
fonte
2
você pode adicionar ruga aos eixos para incluir algumas informações aqui. Veja ?rug. Próprios Scatterplots não são ideais se assimetria é tudo que se preocupam - scatterplots são multi-dimensão (x & y), mas assimetria (AFAIK) só é definido para unidimensional RV (ou seja, ele está definido para xe para y, mas não (x (y))
MichaelChirico
Se você deseja verificar no gráfico se os dados estão inclinados para a esquerda, adicione a média e a mediana. Se a média for menor que a mediana, ela será distorcida negativamente.
Jon mola
@ JonSpring, em geral, não é verdade que você pode julgar que pode julgar a distorção da média e da mediana.
Benjamin Christoffersen

Respostas:

3

É seguro dizer que os dados são deixados ou distorcidos negativamente?

Não, não é seguro: primeiro, a aparência do gráfico é de inclinação positiva (direita), não de inclinação negativa (esquerda). Independentemente disso, você precisa ter cuidado aqui, porque há um excesso de plotagem , o que significa que você não pode realmente ver o que está acontecendo naquela grande massa vermelha no meio. Embora seja improvável, é possível que essa massa vermelha de pontos oculte concentrações de pontos que prejudiquem a assimetria positiva de uma ou ambas as variáveis ​​(ou podem até induzir a distorção negativa). Para obter uma melhor avaliação da assimetria das duas variáveis, eu recomendaria construir gráficos de densidade de kernel das variáveis ​​de interesse e calcular a assimetria da amostra dessas variáveis ​​( Rcódigo para isso abaixo).

library(moments);    #Make sure you have installed this package first

DATA <- filterdacsom5;

#Check skewness of median income
skewness(DATA$Median_Income);
plot(density(DATA$Median_Income));    

#Check skewness of population
skewness(DATA$Total_Population);
plot(density(DATA$Total_Population)); 

Observe que o gráfico de dispersão fornece informações sobre a distribuição conjunta das variáveis, que você não obterá dos gráficos de densidade individuais. Se você deseja ver uma melhor representação das variáveis ​​no gráfico de dispersão, recomendo que você a ajuste para lidar com a plotagem excessiva - por exemplo, use transparência alfa ou plotagem de contorno.

Ben - Restabelecer Monica
fonte
1

Esse aprovador pode ser enganador e é por isso.

O gráfico de dispersão pode dizer algo sobre a distribuição de cada variável. Mas o gráfico de dispersão também diz algo sobre o relacionamento entre duas variáveis, o que pode levar a problemas se alguém estiver fazendo uma interpretação apenas sobre uma das variáveis, por exemplo, interpretando a assimetria.

Vamos supor alguns dados com heterocedasticidade em que y não possui valores negativos (como no seu exemplo). O gráfico resultante pode ser assim:

Enredo

O gráfico resultante parece relativamente próximo ao gráfico fornecido e sugere que x é inclinado, embora esse não seja realmente o caso, pois x tem uma distribuição uniforme (consulte o código para geração de dados abaixo), como mostra o histograma para x:

hist de x

Assim, a relação entre as variáveis ​​pode resultar em um gráfico de dispersão enganoso em termos de interpretação da distribuição de uma variável.

O código que usei para o gráfico:

set.seed(568)
x      = rep(1:10000,2)
a <- 20000
b      = -2
sigma2 = x^2
eps    = rnorm(x,mean=0,sd= rev(sqrt(sigma2))) # heteroscedasticity
y      = a + b*x + eps
y[y<0] <- -y[y<0] # no negative values in y
plot(x, y)

EDIT: Concordo com Ben que a transparência e a plotagem são importantes neste caso, e é por isso que escolho um tamanho de amostra tão grande para o meu exemplo. Usar transparência para os mesmos dados é menos enganoso.

plot(x, y, col = alpha("black", 0.05))

Traçar com transparência


fonte