DMUG-Archiv 2004

Frühere

 

Chronologischer Index

 

Spätere

Vorherige

 

Thematischer Index

 

Nächste

Re: Statistisches

Hallo Udo,

ich glaube, wir haben die Lösung. Man kann das Problem 
herunterkochen auf das Fitten einer Konstanten, und 
erhält den selben Effekt. Die Konstante wird immer zu 
klein gefittet (s.u.). Kleine Datenpunkte haben eben ein 
grösseres relatives Gewicht, wenn man die Gewichte
 
 > auf der Basis der gemessenen Werte <

verteilt. Würde man sie auf der Basis der wahren Werte 
berechnen, wäre alles in Butter, diese kennt man aber
nicht, sonst bräuchte man gar nicht zu fitten. Unsere 
Vermutung vom 02.08. trifft also zu und im Falle der 
Lorentzfits äussert sich dies in einer kleineren Amplitude 
und geringeren Breite, weil die Punkte, die weit von der 
Linienmitte entfernt sind, die Linie sozusagen einschnüren.

Die Lösung ist ein ungewichteter Fit, denn da wird kein 
Punkt aufgrund seiner Lage (wahr oder real) ausgezeichnet.
Entfernt man im Code unten die Gewichtung, erhält man 
Fitergebnisse, die symmetrisch ("richtig") um den Startwert 
verteilt sind und dies amplitudenunabgängig.

Viele Grüße,

Martin

--------------

<< Statistics`ContinuousDistributions`;
<< Statistics`NonlinearFit`;

sigma[n_] := Sqrt[n] + 0.025 n;

Fitdiffs = {};
amp = 50;
For[k = 1, k <= 100, k++,
 {
   thedata = 
     Table[amp + Random[NormalDistribution[0, sigma[amp]]], {i, 1, 50}];
   theweights = Table[1/sigma[thedata[[i]]]^2, {i, 1, 50}];
   constfit = NonlinearRegress[thedata, c, x, c, Weights -> theweights, 
          RegressionReport -> BestFitParameters];
   AppendTo[Fitdiffs, amp - c /. (BestFitParameters /. constfit)];
 }
];

ListPlot[Fitdiffs];

(* fast alle positiv *)

FitDifferences = {};

For[amp = 50, amp <= 1000, amp *= Exp[Log[1000/50]/10],
 {
   Fitdiffs = {};
   For[k = 1, k <= 100, k++,
    {
      thedata = Table[amp + Random[NormalDistribution[0, sigma[amp]]],
                      {i, 1, 50}];
      theweights = Table[1/sigma[thedata[[i]]]^2, {i, 1, 50}];
      constfit = NonlinearRegress[thedata, c, x, c, Weights ->
                    theweights, RegressionReport -> BestFitParameters];
      AppendTo[Fitdiffs, amp - c /. (BestFitParameters /. constfit)];
      (* Abweichung des einzelnen Punkts *)
   }
  ];
      
  afit = NonlinearRegress[Fitdiffs, a, x, a, 
         RegressionReport -> BestFitParameters];
  AppendTo[FitDifferences, (a /. (BestFitParameters /. afit))/amp];
  (* relativer Fehler des Fits *)
 }
];

ListPlot[FitDifferences, Frame -> True, Axes -> False];

(* immer positiv, relativer Fehler wird kleiner bei wachsender Amplitude *)

--------------

Antworten:
Re: Statistisches
Udo und Susanne Krause, 10.08.2004
Verweise:
Statistisches
Uli Jentschura, 28.07.2004
Re: Statistisches
Udo und Susanne Krause, 07.08.2004
Re: Statistisches
Martin Haas, 09.08.2004

Frühere

 

Chronologischer Index

 

Spätere

Vorherige

 

Thematischer Index

 

Nächste

DMUG-Archiv, http://www.mathematica.ch/dmug-liste.html; Letzte Änderung: 10.08.2004 23:30