Stats

Popular Posts

Followers

Mathematica 教學 QQ-Plot 進階版

戴忠淵 於 2010年11月29日星期一 上午9:54 發表

qqplot[zz_List]:=Block[{data=zz,normaldata,empiricalline},
(*將資料轉換為常態機率*)
normaldata=Transpose@{N@Range[Length@data]/Length[data],
CDF[NormalDistribution[Mean@data,StandardDeviation@data],#]&/@Sort[data]};
(*將轉換後的常態機率以內插法擬和為伊多項式函數*)
empiricalline=Interpolation[normaldata];
(*畫出多項式函數以及對角線*)
Plot[{empiricalline[x],x},{x,1/Length[data],1},
PlotStyle->{{Blue},{Red,Dashed}},
Filling->{1->{2}},
Epilog->{Hue[0.67,0.6,0.6],PointSize[0.02],
Point[normaldata]},Axes->None,
Frame->True,
FrameLabel->{Text[Style["Empirical Probability",FontSize->14,FontFamily->"Helvetica"]],
Text[Style["Theoretical Probability",FontSize->14,FontFamily->"Helvetica"]]},
AspectRatio->1]]



data= RandomVariate[ExponentialDistribution[10], 100]
(*直方圖*)
Histogram[data]


(*Q-Q 圖*)
qqplot[data]

Tags: , ,

讀者回應 ( 0 意見 )

發佈留言

Please leave your name and tell me what you thought about this site. Comments, suggestions and views are welcomed.

如果這篇文章對你有幫助,那請留個訊息給我~