K- Means- Clusteranalyse und PCA stimmen nicht überein

Varianzanalyse, Diskriminanzanalyse, Kontingenzanalyse, Faktorenanalyse, Clusteranalyse, MDS, ....

Moderator: EDi

Antworten
GiFi
Beiträge: 3
Registriert: So Jun 23, 2019 10:11 am

K- Means- Clusteranalyse und PCA stimmen nicht überein

Beitrag 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
Hadsga
Beiträge: 21
Registriert: Di Aug 01, 2017 2:09 pm

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

Beitrag von Hadsga »

Hi,

stell mal deinen Code und ein Sample der Daten

Code: Alles auswählen

 dput()
zur Verfügung.


BG
GiFi
Beiträge: 3
Registriert: So Jun 23, 2019 10:11 am

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

Beitrag 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!
Dateianhänge
DATEN_NEU_ALLE.csv
(10.01 KiB) 93-mal heruntergeladen
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

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

Beitrag 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
GiFi
Beiträge: 3
Registriert: So Jun 23, 2019 10:11 am

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

Beitrag 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...?
Antworten