探索电影科学
使用 Wolfram Knowledgebase 研究2000年以来上映电影的每分钟投入和票房收入. 另外,探索这些电影的平均播放时间,它被发现遵循所谓的稳定分布规律,这在人工对象中并不常见.
使用一个隐式定义的实体类中选择从两千年以来上映的电影.
In[1]:=
![Click for copyable input](assets.zh/explore-movieology/In_44.png)
Length[movies =
EntityClass["Movie",
EntityProperty["Movie", "ReleaseDate"] ->
Between[{DateObject[{2000}], DateObject[{2015}]}]] // EntityList]
Out[1]=
![](assets.zh/explore-movieology/O_34.png)
提取电影的片名、分类、播放时间、拍摄预算和票房总数.
In[2]:=
![Click for copyable input](assets.zh/explore-movieology/In_45.png)
movieData =
EntityValue[
movies, {EntityProperty["Movie", "Name"],
EntityProperty["Movie", "Genres"],
EntityProperty["Movie", "Runtime"],
EntityProperty["Movie", "ReleaseDate"],
EntityProperty["Movie", "ProductionBudget"],
EntityProperty["Movie", "DomesticBoxOfficeGross"]}];
每分钟的票房收入是随时间剧烈波动的函数.
显示完整的 Wolfram 语言输入
Out[4]=
![](assets.zh/explore-movieology/O_35.png)
但是月平均上,一些每分钟费用的周期性变的明显. 具体而言,在下图中绿色网格线代表 7 月 4 日,紫色代表感恩节部分.
显示完整的 Wolfram 语言输入
Out[5]=
![](assets.zh/explore-movieology/O_36.png)
如以下对数绘图所示,每分钟的票房收入为一个更加剧烈波动的函数.
显示完整的 Wolfram 语言输入
Out[7]=
![](assets.zh/explore-movieology/O_37.png)
在近 15 年内,电影的平均播放时间基本相同.
显示完整的 Wolfram 语言输入
Out[9]=
![](assets.zh/explore-movieology/O_38.png)
更详细的观察,电影的播放时间分布表现的相对平滑.
In[10]:=
![Click for copyable input](assets.zh/explore-movieology/In_53.png)
movieRuntimes = DeleteMissing[movieData[[All, 3]]];
In[11]:=
![Click for copyable input](assets.zh/explore-movieology/In_54.png)
hg = Histogram[movieRuntimes, {1, 200, 5}, "PDF",
AxesLabel -> Automatic]
Out[11]=
![](assets.zh/explore-movieology/O_39.png)
应用大量内置分布的建模表明 Lévy 稳定分布最为接近. 这里,用正态(从独立分布中独立抽样的随机变量的平均值分布)、对数正态(许多独立正值的随机变量的乘积结果分布)和稳定分布进行拟合计算.
In[12]:=
![Click for copyable input](assets.zh/explore-movieology/In_55.png)
edNormal =
EstimatedDistribution[movieRuntimes,
NormalDistribution[\[Mu], \[Sigma]]]
Out[12]=
![](assets.zh/explore-movieology/O_40.png)
In[13]:=
![Click for copyable input](assets.zh/explore-movieology/In_56.png)
edLogNormal =
EstimatedDistribution[movieRuntimes,
LogNormalDistribution[\[Mu], \[Sigma]]]
Out[13]=
![](assets.zh/explore-movieology/O_41.png)
In[14]:=
![Click for copyable input](assets.zh/explore-movieology/In_57.png)
edStable =
EstimatedDistribution[movieRuntimes,
StableDistribution[1, \[Alpha], \[Beta], \[Mu], \[Sigma]]]
Out[14]=
![](assets.zh/explore-movieology/O_42.png)
有趣的是,稳定分布从视觉上是最佳拟合.
仅有少数几个人工对象不服从稳定分布. 稳定分布的一个特点在于出现相对较多的异常值,通常比均值大几倍. 电影满足这一特点. 以下为2000年 1月 1日 以后上映的(以播放时间计算)最长的电影:
In[15]:=
![Click for copyable input](assets.zh/explore-movieology/In_58.png)
longest =
EntityClass[
"Movie", {EntityProperty["Movie", "ReleaseDate"] ->
Between[{DateObject[{2000}], DateObject[{2015}]}],
EntityProperty["Movie", "Runtime"] -> TakeLargest[10]}] //
EntityList
Out[15]=
![](assets.zh/explore-movieology/O_43.png)
在表格中总结.
显示完整的 Wolfram 语言输入
Out[16]//TraditionalForm=
![](assets.zh/explore-movieology/O_44.png)