당신이 MMA V8이있는 경우 그것은 너무 다른 배포판에 맞게 할 수있는 새로운 DistributionFitTest
disFitObj = DistributionFitTest[daList, NormalDistribution[a, b],"HypothesisTestData"];
Show[
SmoothHistogram[daList],
Plot[PDF[disFitObj["FittedDistribution"], x], {x, 0, 120},
PlotStyle -> Red
],
PlotRange -> All
]

disFitObj["FittedDistributionParameters"]
(* ==> {a -> 55.8115, b -> 20.3259} *)
disFitObj["FittedDistribution"]
(* ==> NormalDistribution[55.8115, 20.3259] *)
를 사용할 수 있습니다.
또 다른 유용한 V8 기능은 Histogram
의 비닝 (binning) 데이터를 제공하는 HistogramList
이다. 그것도 모두 Histogram
의 옵션이 필요합니다.
{bins, counts} = HistogramList[daList]
(* ==> {{0, 20, 40, 60, 80, 100}, {2, 10, 20, 17, 7}} *)
centers = MovingAverage[bins, 2]
(* ==> {10, 30, 50, 70, 90} *)
model = s E^(-((x - \[Mu])^2/\[Sigma]^2));
pars = FindFit[{centers, counts}\[Transpose],
model, {{\[Mu], 50}, {s, 20}, {\[Sigma], 10}}, x]
(* ==> {\[Mu] -> 56.7075, s -> 20.7153, \[Sigma] -> 31.3521} *)
Show[Histogram[daList],Plot[model /. pars // Evaluate, {x, 0, 120}]]

또한 피팅 NonlinearModeFit
을 시도 할 수 있습니다. 두 경우 모두 자신의 초기 매개 변수 값을 가지고 전역 적으로 최적의 결과를 얻을 수있는 최상의 기회를 얻는 것이 좋습니다. V7에서
는 더 HistogramList
이 없습니다하지만 당신은 this를 사용하여 동일한 목록을 얻을 수 :
히스토그램 [데이터, bspec, FH]에서 함수 FH 두 인수에 적용되는
: 목록을 아래 첨자 [b, 1], 아래 첨자 [b, 2]}, 아래 첨자 [b, 2], 아래 첨자 [b, 3]}, [줄임표]} 및 해당하는 개수 목록 { c, 1], 아래 첨자 [c, 2], [생략 기호]}. 함수는 아래 첨자 [c, i]에 사용되는 높이 목록을 반환해야합니다.
Reap[Histogram[daList, Automatic, (Sow[{#1, #2}]; #2) &]][[2]]
(* ==> {{{{{0, 20}, {20, 40}, {40, 60}, {60, 80}, {80, 100}}, {2,
10, 20, 17, 7}}}} *)
은 물론, 당신은 여전히 BinCounts
를 사용할 수 있지만, 당신은 MMA의 자동 비닝 (binning) 알고리즘을 그리워 : (from my earlier answer)를 다음과 같이
이
사용할 수 있습니다. 당신이 볼 수 있듯이
counts = BinCounts[daList, {0, Ceiling[Max[daList], 10], 10}]
(* ==> {1, 1, 6, 4, 11, 9, 9, 8, 5, 2} *)
centers = Table[c + 5, {c, 0, Ceiling[Max[daList] - 10, 10], 10}]
(* ==> {5, 15, 25, 35, 45, 55, 65, 75, 85, 95} *)
pars = FindFit[{centers, counts}\[Transpose],
model, {{\[Mu], 50}, {s, 20}, {\[Sigma], 10}}, x]
(* ==> \[Mu] -> 56.6575, s -> 10.0184, \[Sigma] -> 32.8779} *)
Show[
Histogram[daList, {0, Ceiling[Max[daList], 10], 10}],
Plot[model /. pars // Evaluate, {x, 0, 120}]
]

가 적합 매개 변수가 비닝 선택에 상당히 의존 할 수 있습니다 : 당신은 당신의 자신의 비닝 (binning)을 제공해야합니다.특히 s
이라는 매개 변수는 대용량의 양에 크게 의존합니다. 큰 상자가 많을수록 개별 빈의 수가 줄어들고 s
의 값은 더 낮아집니다.
감사합니다. 매우 도움이됩니다. – 500