Runden mit Stata

Allgemeine Fragen rund um Statistik mit Stata.

Runden mit Stata

Beitragvon mangel76 » Mi 29. Jan 2014, 17:39

Hallo,

bin hier grad auf ein eigenartiges Phänomen gestoßen beim runden großer Zahlen. Normalerweise rundet Stata ja ab 5 in der zu rundenden Nachkommastelle auf, also etwa

Code: Alles auswählen
. di round(5.65, 0.1)
5.7


Jetzt habe ich hier eine Variable (double), die mit einer Genauigkeit von zwei Stellen eingelesen wird. Eine Beobachtung hat den Wert 1.125.396.950,18. Diese Variable wird mit 0,75 multipliziert und anschließend wieder auf 2 Nachkommastellen gerundet. Eigentlich müsste da 1.125.396.950,18 * 0,75 = 844.047.712,635 -> 844047712,64. Stata gibt allerdings dafür 844.047.712,63 aus. Ist die Zahl schon so groß, dass selbst als double die Genauigkeit nicht mehr reicht? Oder gibt es dafür andere Gründe? Andererseits kann ich auch eingeben:

Code: Alles auswählen
. di %16.2f round(1125396950.18*3/4, 0.01)
    844047712.64



und es rundet richtig.
mangel76
 
Beiträge: 39
Registriert: Do 9. Jan 2014, 16:44
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Runden mit Stata

Beitragvon daniel » Mi 29. Jan 2014, 19:07

Code: Alles auswählen
di %21.0g 1125396950.18 * .75


Deine 844.047.712,635 sind bereits das Ergebnis einer gerundeten Darstellung. Daher rundet Stata korrekt auf ,63 ab, nicht auf ,64 auf.
Stata is an invented word, not an acronym, and should not appear with all letters capitalized: please write “Stata”, not “STATA”.
daniel
 
Beiträge: 1060
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Runden mit Stata

Beitragvon mangel76 » Mo 10. Feb 2014, 14:49

Hallo Daniel,

eigentlich ist 844.047.712,635 ja das korrekte Ergebnis, also gerundet 844.047.712,64. Und da sich die 1.125.396.950,18 als Summe dreier Zahlen mit jeweils maximal 2 Nachkommstellen ergeben, hat es mich verwundert, dass da nach der zweiten Nachkommastelle noch was kommen soll. Aber ich habs gelöst indem ich zuvor die Summe dieser 3 Zahlen auf 4 Nachkommastellen genau gerundet habe und nun kommen auch die richtigen Nachkommastellen im Ergebnis.
mangel76
 
Beiträge: 39
Registriert: Do 9. Jan 2014, 16:44
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Runden mit Stata

Beitragvon daniel » Mo 10. Feb 2014, 14:57

eigentlich ist 844.047.712,635 ja das korrekte Ergebnis


Eigentlich nicht. Wie mein code eindeutig zeigt, ist das "korrekte" Ergebniss 844.047.712,63499999, gerundet auf zwei Nachkommastellen 844.047.712,63 nicht 844.047.712,64.
Stata is an invented word, not an acronym, and should not appear with all letters capitalized: please write “Stata”, not “STATA”.
daniel
 
Beiträge: 1060
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Runden mit Stata

Beitragvon mangel76 » Mo 17. Feb 2014, 19:09

Ja, so berechnet es Stata. Aber wenn ich es per Hand mal nachrechne, ist klar dass nur 3 Nachkommastellen von Null verschieden sind. Das ist also allein ein Genauigkeits- und Darstellungsproblem von Stata. Wie gesagt, Original mit 2 Nachkommastellen eingegeben, davon 3/4 berechnet, ergibt eine Zahl mit 3 Nachkommastellen und ganz bestimmt keinen unendliche Folge von 9en ab der 4. Nachkommastelle. Ist es tatsächlich solch ein unendlicher Bruch, so ist die Genauigkeit ja auch fast perfekt, denn 0.9999999... = 1, aber beim Runden passiert dann trotzdem solch eine Abweichung.
mangel76
 
Beiträge: 39
Registriert: Do 9. Jan 2014, 16:44
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post


Zurück zu Statistik allgemein

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste