Seite 1 von 1

K- Means- Clusteranalyse und PCA stimmen nicht überein

Verfasst: Mo Jul 29, 2019 5:15 pm
von GiFi
Hallo zusammen!

Ich bin neu hier und habe doch ein Problem in R, wo ich nicht weiterkomme.
Ich habe einen Datensatz, der Skalenwerte von 1-5 in Spalten enthält, als Bspl. also:

Kategorie 1 Kategorie 2 Kategorie 3 ... Kategorie n, n groß.
1 2 4 3
... (viele Datensätze)
5 2 1 4


Es gibt mehr Kategorien als Datensätze, daher musste ich diesen noch mit Pseudozufallszahlen auffüllen, um überhaupt eine K- Means- Analyse machen zu können, damit nicht alle Zeilen noch zusätzlich mit "NA" herausfliegen. Das ist auch soweit richtig gelaufen.

Irritierend ist nun, dass ich sehr stark getrennte Cluster bekomme, was wohl "nicht realistisch" ist und auch nicht mit der PCA übereinstimmt, wenn ich eben K- Means vom jenem Datensatz mit 3 erwarteten Clustern betrachte (sowohl clusplot(Datensatz) als auch plotcluster(Datensatz) geben ein völlig unterschiedliches Bild, wobei clusplot(Datensatz) noch etwas Ähnicher dem PCA ist).

Die Datenpunkte stimmen gar nicht mit der PCA überein und ich soll nun schauen, woran es liegt, wobei ich noch keinerlei Ansatz gefunden habe, denn bei der PCA habe ich Folgendes gemacht:

Die PCA braucht meines Verständnisses nach ja eine Korrelationsmatrix, also habe ich cor(Datensatz) bestimmt, gespeichert und davon eine PCA erstellen lassen mit: principal(Datensatz) und habe diesen wieder abgespeichert.

Wenn ich dies dann plotte mit: plot(Datensatz) kommt ein völlig verstreuter Datensatz heraus (wie es zu erwarten ist bei "Daten aus dem Leben") und nicht die super abgetrennten Cluster wie nach K- Means.


Danke für Hilfe, GiFi

Re: K- Means- Clusteranalyse und PCA stimmen nicht überein

Verfasst: Mi Jul 31, 2019 12:34 pm
von Hadsga
Hi,

stell mal deinen Code und ein Sample der Daten

Code: Alles auswählen

 dput()
zur Verfügung.


BG

Re: K- Means- Clusteranalyse und PCA stimmen nicht überein

Verfasst: Do Aug 01, 2019 2:42 pm
von GiFi
Also, ich habe jetzt mal einen exemplarischen Datensatz erstellt, wo das Problem auftritt:

Der Datensatz hängt an "DATEN_NEU_ALLE".

Mein Code ist Folgender:

Code: Alles auswählen

NEUE_FRAGEN_ALLE <- read.csv2("DATEN_NEU_ALLE.csv",encoding = "UTF-8") 

for(i in 1:nrow(NEUE_FRAGEN_ALLE)) {
  for(j in 1:ncol(NEUE_FRAGEN_ALLE)) {
    if(is.na(NEUE_FRAGEN_ALLE[i,j]))
      NEUE_FRAGEN_ALLE[i,j] <- sample(1:5,size=1,replace=T)
} }

NEUE_FRAGEN_ALLE <- scale(NEUE_FRAGEN_ALLE)
NEUE_FRAGEN_ALLE <- data.frame(NEUE_FRAGEN_ALLE)
# View(NEUE_FRAGEN_ALLE)

Cluster_kmeans_gesamt <- kmeans(NEUE_FRAGEN_ALLE,3)

clusplot(NEUE_FRAGEN_ALLE,Cluster_kmeans_gesamt$cluster,color=TRUE,shade=TRUE,labels=2,lines=0,xlab = "Hauptkomponente1",ylab="Hauptkomponente2")
plotcluster(NEUE_FRAGEN_ALLE,Cluster_kmeans_gesamt$cluster,xlab = "discriminant coordiante 1",ylab="discriminant coordiante 2") # ist dies hier aus die Hauptkomponente??

Kor <- cor(NEUE_FRAGEN_ALLE)
Kor <- principal(Kor)
View(Kor)
plot(Kor)
 
Danke für Hilfe!

Re: K- Means- Clusteranalyse und PCA stimmen nicht überein

Verfasst: Do Aug 01, 2019 2:52 pm
von jogo
statt der Doppelschleife geht auch:

Code: Alles auswählen

NEUE_FRAGEN_ALLE <- read.csv2("http://forum.r-statistik.de/download/file.php?id=590",encoding = "UTF-8") 

i <- is.na(NEUE_FRAGEN_ALLE)
NEUE_FRAGEN_ALLE[i] <- sample(1:5, sum(i), repl=TRUE)
Gruß, Jörg

Re: K- Means- Clusteranalyse und PCA stimmen nicht überein

Verfasst: Do Aug 01, 2019 5:22 pm
von GiFi
Ah stimmt, danke! Ich war schon stolz, die Schleife so hingebastelt zu bekommen, dass es läuft (hatte nie eine R- Einführung o.Ä.).
Haben Sie denn auch für mein Problem eine Idee? Weil bei den anderen Datensätzen die ich habe ist Alles in Ordnung...?