Falsche Z-Standardisierungswerte mit scipy?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
naheliegend
User
Beiträge: 439
Registriert: Mittwoch 8. August 2018, 16:42

Hi,

ich bekomme irgendwie falsche zscore Werte in meinem Code heraus.

Also z.B. lese ich das Excel-Sheet mit der Tabelle

Code: Alles auswählen

1	10	55
2	50	42
3	100	45
4	34	76
5	53	200
ein.

Mit:

Code: Alles auswählen

df_Examples = pandas.read_excel(io=path) #als DataFrame
ndarray_Examples = scipy.stats.zscore(a=df_Examples, axis=0, ddof=0) #ndarray



Ich erhalte sowas an Ergebnissen:

Code: Alles auswählen

ndarray_Examples =

[[-1.41421356 -1.33376299 -0.48143509]
 [-0.70710678  0.02031111 -0.70026922]
 [ 0.          1.71290374 -0.64976904]
 [ 0.70710678 -0.52131853 -0.1279338 ]
 [ 1.41421356  0.12186667  1.95940716]]

Laut Excel habe ich es nochmal händisch nachgerechnet und erhalte:

Code: Alles auswählen

-0,876404648	-0,698487915	0,19109575
-0,856636122	0,092253121	-0,065895086
-0,836867596	1,080679415	-0,006589509
-0,81709907	-0,224043293	0,606234794
-0,797330544	0,151558698	3,057532004
Mache ich irgendwas falsch?
__backjack__: "Jemand der VB oder PHP kann, der also was Programmieren angeht irgendwo im negativen Bereich liegt (...)"
Benutzeravatar
__blackjack__
User
Beiträge: 13080
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Offensichtlich ja. In Excel hast Du das über *alle* Werte berechnet, `scipy` berechnet das über jede Spalte separat. Das ist zwar schon die Voreinstellung, aber mit ``axis=0`` bestätigst Du das ja noch einmal. Wenn Du Scipy sagst es soll über alle Werte gemeinsam und nicht über jede Spalte einzeln rechnen, bekommst Du fast das was Du in Excel hast:

Code: Alles auswählen

In [89]: scipy.stats.zscore(df, axis=None)
Out[89]: 
array([[-0.87640465, -0.69848791,  0.19109575],
       [-0.85663612,  0.09225312, -0.06589509],
       [-0.8368676 ,  1.08067942, -0.00658951],
       [-0.81709907, -0.22404329,  0.60623479],
       [-0.79733054,  0.1515587 ,  3.057532  ]])
Unterschied sind die beiden vertauschten letzten Zeilen.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
naheliegend
User
Beiträge: 439
Registriert: Mittwoch 8. August 2018, 16:42

Danke dir!
Habe "0" mit "None" verwechselt. Aua.
__backjack__: "Jemand der VB oder PHP kann, der also was Programmieren angeht irgendwo im negativen Bereich liegt (...)"
Antworten