die Berechnung der z-scores in R
Ich eine Probe, dataframe:
data<-data.frame(a=c(1,2,3),b=c(4,5,5),c=c(6,8,7),d=c(8,9,10))
Sind und wünschen, um die Berechnung der z-scores für jeden Datensatz in der Daten-frame und Tat :
scores<-apply(data,1,zscore)
Benutzte ich die zscore Funktion von
install.packages(c("R.basic"), contriburl="http://www.braju.com/R/repos/")
Und erhalten
row.names V1 V2 V3
a -1.2558275 -1.2649111 -1.0883839
b -0.2511655 -0.3162278 -0.4186092
c 0.4186092 0.6324555 0.2511655
d 1.0883839 0.9486833 1.2558275
Aber wenn ich versuche manuell die Berechnung der z-score für die erste Zeile des data Frames, die ich erhalten folgende Werte:
-1.45 -0.29 0.4844, 1.25
Manuell für die erste Zeile, die ich wie folgt berechnet:
1) berechnen Sie die Zeile bedeuten (4.75) für die erste Zeile
2) Subtrahieren Sie jeweils den Wert aus der Zeile bedeutet (e.g; 4.75-1., 4.75-4., 4.75-6., 4.75-8)
3) Quadrat jeder Unterschied.
4) addieren Sie und dividieren durch die Anzahl von Proben in Zeile 1
5) so erhält man die Varianz( Antwort = 6.685) und dann die Standardabweichung ( 2.58) der ersten Zeile allein
6) Dann gilt die Formel der z-score.
- Was ist das
zscore
Funktion? Es ist etwas, das Sie geschrieben haben? Oder ist es in einem Paket? - "Darf ich wissen, wo bin mache ich falsch ?" Dies ist eine furchtbar vage Frage. Sie müssen angeben, (1), WIE Sie der Berechnung die Werte von hand und (2) WIE
zscore
definiert ist. Die Werte, die Sie aus der apply-Funktion korrekt sind (w.r.t. die Daten.frame, den Sie gezeigt haben), so dass ich vermute, der Fehler liegt in (#1) - Vielleicht meintest du die
scale
Funktion? Und pls teilen, wie hast du berechnet, die Werte von hand. - Ihre manuell berechnete z-scores sind einfach falsch.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
zscore
Funktion, was auch immer es ist, scheint das gleiche zu sein wiescale
imbase
Paket.Für jede Spalte, es ist die Berechnung
(x - mean(x)) /sd(x)
.