Wolfram 언어

확률과 통계의 수량

항성의 특성 조사

StarData105 개가 넘는 항성의 특성에 대한 액세스를 제공합니다. 연구를 위해 3000개의 항성을 무작위 표본으로 선정합니다.

In[1]:=
Click for copyable input
stars = StarData[{"RandomEntities", 3000}];

각각의 엔티티에 대해 수많은 특성을 제공합니다.

In[2]:=
Click for copyable input
sun = \!\(\* NamespaceBox["LinguisticAssistant", DynamicModuleBox[{Typeset`query$$ = "Sun", Typeset`boxes$$ = TemplateBox[{"\"Sun\"", RowBox[{"Entity", "[", RowBox[{"\"Star\"", ",", "\"Sun\""}], "]"}], "\"Entity[\\\"Star\\\", \\\"Sun\\\"]\"", "\"star\""}, "Entity"], Typeset`allassumptions$$ = {{ "type" -> "Clash", "word" -> "Sun", "template" -> "Assuming \"${word}\" is ${desc1}. Use as \ ${desc2} instead", "count" -> "4", "Values" -> {{ "name" -> "Star", "desc" -> " referring to stars", "input" -> "*C.Sun-_*Star-"}, { "name" -> "CalendarEventName", "desc" -> "a weekday", "input" -> "*C.Sun-_*CalendarEventName-"}, { "name" -> "Word", "desc" -> "a word", "input" -> "*C.Sun-_*Word-"}, { "name" -> "Surname", "desc" -> "a surname", "input" -> "*C.Sun-_*Surname-"}}}}, Typeset`assumptions$$ = {}, Typeset`open$$ = {1, 2}, Typeset`querystate$$ = { "Online" -> True, "Allowed" -> True, "mparse.jsp" -> 1.321761`6.572697926887039, "Messages" -> {}}}, DynamicBox[ToBoxes[ AlphaIntegration`LinguisticAssistantBoxes["", 4, Automatic, Dynamic[Typeset`query$$], Dynamic[Typeset`boxes$$], Dynamic[Typeset`allassumptions$$], Dynamic[Typeset`assumptions$$], Dynamic[Typeset`open$$], Dynamic[Typeset`querystate$$]], StandardForm], ImageSizeCache->{114., {7., 15.}}, TrackedSymbols:>{ Typeset`query$$, Typeset`boxes$$, Typeset`allassumptions$$, Typeset`assumptions$$, Typeset`open$$, Typeset`querystate$$}], DynamicModuleValues:>{}, UndoTrackedVariables:>{Typeset`open$$}], BaseStyle->{"Deploy"}, DeleteWithContents->True, Editable->False, SelectWithContents->True]\);
In[3]:=
Click for copyable input
StarData[sun, "Properties"] // Length
Out[3]=

무작위로 선정 된 항성의 실효 온도를 추출하고, 그 중에서 데이터 사용이 가능한 것을 선택합니다.

In[4]:=
Click for copyable input
temps = Flatten[ DeleteMissing[StarData[#, "EffectiveTemperature"]] & /@ Partition[stars, 100]];

온도의 기술 통계량 일부를 계산합니다.

In[5]:=
Click for copyable input
stats = {Min, Max, Mean, Median, StandardDeviation}; TableForm[{Map[#[temps] &, stats]}, TableHeadings -> {None, stats}]
Out[5]//TableForm=

항성 온도 히스토그램을 플롯합니다.

In[6]:=
Click for copyable input
h = Histogram[temps, 25, PDF, AxesLabel -> Automatic]
Out[6]=

비모수 분포로 온도 분포를 추정합니다.

In[7]:=
Click for copyable input
skd = SmoothKernelDistribution[temps, "Oversmooth"]
Out[7]=

긴 꼬리를 가진 파라메트릭 분포로 온도 분포를 추정합니다.

In[8]:=
Click for copyable input
edist = EstimatedDistribution[temps, StableDistribution[a, b, c, d]]
Out[8]=

확률 밀도 함수의 추정을 비교하고 태양의 온도에 관련시킵니다.

전체 Wolfram 언어 입력 표시하기
In[9]:=
Click for copyable input
pdf = PDF[skd, Quantity[x, "Kelvins"]]; sunTemp = {Directive[Red, Dashed], InfiniteLine[{{#, 0}, {#, 1}} &[ QuantityMagnitude[sun["EffectiveTemperature"]]]]}; Show[h, Plot[{pdf, PDF[edist, Quantity[x, "Kelvins"]]}, {x, 0, QuantityMagnitude@Max[temps]}, PlotRange -> All, PlotLegends -> {"Smooth Kernel Distribution Estimate", "Stable Distribution Estimate"}], Epilog -> {sunTemp, Inset[Style["Sun", Red, 12], {6800, .00034}]}]
Out[9]=

관련 예제

de en es fr ja pt-br ru zh