Seite 1 von 1

Falsche Z-Standardisierungswerte mit scipy?

Verfasst: Montag 10. September 2018, 13:25
von naheliegend
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?

Re: Falsche Z-Standardisierungswerte mit scipy?

Verfasst: Montag 10. September 2018, 14:12
von __blackjack__
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.

Re: Falsche Z-Standardisierungswerte mit scipy?

Verfasst: Montag 10. September 2018, 14:32
von naheliegend
Danke dir!
Habe "0" mit "None" verwechselt. Aua.