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
K- Means- Clusteranalyse und PCA stimmen nicht überein
Moderator: EDi
Re: K- Means- Clusteranalyse und PCA stimmen nicht überein
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:
Danke für Hilfe!
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)
- Dateianhänge
-
- DATEN_NEU_ALLE.csv
- (10.01 KiB) 94-mal heruntergeladen
Re: K- Means- Clusteranalyse und PCA stimmen nicht überein
statt der Doppelschleife geht auch:
Gruß, Jörg
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)
Re: K- Means- Clusteranalyse und PCA stimmen nicht überein
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...?
Haben Sie denn auch für mein Problem eine Idee? Weil bei den anderen Datensätzen die ich habe ist Alles in Ordnung...?