Kann ich die Schiefe anhand eines Streudiagramms mit bivariaten Daten in R beurteilen?

7

Dies ist ein Streudiagramm von x (Einkommen) und y (Bevölkerung).  Kann man aus dem Streudiagramm sicher sagen, dass die Daten übrig bleiben oder negativ verzerrt sind?

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

Ich bin neu in Rund verstehe Schiefe.

Dies ist ein Streudiagramm Median_Incomeauf der horizontalen Achse und Total_Populationauf der vertikalen Achse. Kann man aus dem Streudiagramm sicher sagen, dass die Daten übrig bleiben oder negativ verzerrt sind?

Ben - Monica wieder einsetzen
quelle
2
Sie können rugden Achsen ein hinzufügen , um hier einige Einblicke zu erhalten. Siehe ?rug. Scatterplots sind selbst nicht ideal , wenn Schiefe ist alles Sie kümmern uns um - Scatterplots sind Multi-Dimension (x & y) aber Schiefe (AFAIK) nur definiert für die eindimensionale RV (dh es für x definiert ist und für y , aber nicht (x , y))
MichaelChirico
Wenn Sie im Diagramm überprüfen möchten, ob die Daten nach links verschoben sind, fügen Sie den Mittelwert und den Median hinzu. Wenn der Mittelwert kleiner als der Median ist, ist er negativ verzerrt.
Jon Spring
@ JonSpring Es ist im Allgemeinen nicht wahr, dass Sie beurteilen können, dass Sie die Schiefe anhand des Mittelwerts und des Medians beurteilen können.
Benjamin Christoffersen

Antworten:

3

Kann man mit Sicherheit sagen, dass die Daten übrig bleiben oder negativ verzerrt sind?

Nein, es ist nicht sicher: Erstens ist das Erscheinungsbild des Diagramms positiv (rechts) und nicht negativ (links). Unabhängig davon müssen Sie hier vorsichtig sein, da es zu Überzeichnungen kommt , was bedeutet, dass Sie nicht wirklich sehen können, was in dieser großen roten Masse in der Mitte vor sich geht. Obwohl es unwahrscheinlich ist, ist es möglich, dass diese rote Punktmasse Konzentrationen von Punkten verbirgt, die die positive Schiefe einer oder beider Variablen beeinträchtigen würden (oder sogar eine negative Schiefe induzieren könnten). Um eine bessere Einschätzung der Schiefe der beiden Variablen zu erhalten, würde ich empfehlen, Kernel-Dichtediagramme der interessierenden Variablen zu Rerstellen und die Stichprobenschiefe dieser Variablen zu berechnen ( Code hierfür unten).

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)); 

Beachten Sie, dass das Streudiagramm Informationen über die gemeinsame Verteilung der Variablen enthält, die Sie nicht aus einzelnen Dichtediagrammen erhalten. Wenn Sie eine bessere Darstellung der Variablen im Streudiagramm sehen möchten, würde ich empfehlen, diese anzupassen, um Überplotten zu vermeiden - z. B. Alpha-Transparenz oder Konturdiagramm verwenden.

Ben - Monica wieder einsetzen
quelle
1

Dieser Ansatz kann irreführend sein, und deshalb.

Das Streudiagramm kann Ihnen etwas über die Verteilung jeder Variablen sagen. Das Streudiagramm sagt aber auch etwas über die Beziehung zwischen zwei Variablen aus, was zu Problemen führen kann, wenn man nur eine der Variablen interpretiert, z. B. die Schiefe interpretiert.

Nehmen wir einige Daten mit Heteroskedastizität an, bei denen y keine negativen Werte hat (wie in Ihrem Beispiel). Das resultierende Diagramm könnte folgendermaßen aussehen:

Handlung

Das resultierende Diagramm sieht dem bereitgestellten Diagramm relativ nahe und das Diagramm legt nahe, dass x verzerrt ist, obwohl dies tatsächlich nicht der Fall ist, da x eine gleichmäßige Verteilung aufweist (siehe Code für die Datengenerierung unten), wie das Histogramm für x zeigt:

hist von x

Somit kann die Beziehung zwischen den Variablen zu einem irreführenden Streudiagramm hinsichtlich der Interpretation der Verteilung einer Variablen führen.

Der Code, den ich für die Handlung verwendet habe:

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: Ich stimme Ben zu, dass die Transparenz und das Überzeichnen in diesem Fall wichtig sind, und deshalb wähle ich für mein Beispiel eine so große Stichprobengröße. Die Verwendung von Transparenz für dieselben Daten ist weniger irreführend.

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

Plotten mit Transparenz


quelle