您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關如何用python“科學”預測下《哪吒》票房,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
最近幾天,朋友圈和微博被《哪吒之魔童降世》刷屏了。不少看過的朋友都成為“自來水”,力薦此片。
而它的市場表現也很給力,上映首日即破億,5天超10億,目前已成為國產動畫片最高票房。
于是很多人開始猜測,最終的票房會達到多少?一開始有人預測十幾億,后來普遍認為超20億,到現在甚至有人給出了40億的預測。
今天我嘗試用“科學”一點的方法也來預測一下。如果最終結果有幸言中,還望大家幫忙轉發點贊支持一下。
事先說明,我還沒有去看《哪吒》,所以在預測中并無個人偏好。對于純數據分析來說,這是個好事,讓我可以做一個沒有感情的殺手分析師。
截至發稿時(8月2日)是《哪吒》上映第8天,實時票房15億多,前7日票房14.68億。
一種粗糙的預測方式就是:找一找之前類似電影這個時間的票房是多少,按倍數乘一下。
但這里有個問題,不同電影的票房走勢是不一樣的。以下是我們從貓眼票房上隨手找的幾部大片或類似電影,他們的票房走勢:
注:零點首映場的數據被算在了首映前一天,這里我們做了個人工處理,把它合并到了首映日。并且沒計算之前的電影數據。這是為了后面的預測分析做準備。
從圖上可以看出,有的電影在上線后會有一小波增長,并且在之后的周末和假日都會向上波動,這通常是上映后口碑較好,吸引到更多觀眾并且排片增加的影片;而有的電影,則是上映即巔峰,之后一路下落,甚至沒啥反彈,這其中不乏票房很高的大片,一般是陣容強大/題材吸引人/早期宣發做得好,但觀影感受卻低于預期的影片。
這里發現一個特別的案例:《白蛇:緣起》,它是少有的上映后票房持續呈上漲趨勢的影片。然而卻在春節檔到來之際突然下線,票房戛然而止,實在可惜。
所以拿不同的電影來比較,結果也會差很多。比如常用來作對比的《大圣歸來》,前7日票房累計為2.99億,總票房9.56億,按比例算一下《哪吒》票房就是近47億;而拿《流浪地球》來作為參考,前7日票房累計為23.6億,總票房46.55億,結果就是28.9億。若是再換做《白蛇》或者《愛情公寓》,那更是相去甚遠。
所以我想到的方法是:通過對歷史票房數據進行多項式曲線擬合,建立一個票房走勢的“模型”,再把現有的票房套進模型里做計算。
這里用到的是 numpy 庫 polyfit 和 poly1d 方法,根據已有數據,利用最小二乘法得到擬合曲線的方程和系數。
np.poly1d(np.polyfit(x, y, n))
對于上述9部電影的擬合效果(紅線為擬合結果):
對于新上映的電影,數據還太少,直接擬合沒有意義。所以我們選擇其他電影擬合出的曲線,進行“縮放”,讓它適合現有的數據。
這里用 scipy 庫的最小二乘函數 leastsq,將其他電影擬合出的曲線作為基礎(而非通用的多項式),對《哪吒》的已有數據進行擬合。
def func(x, p): # 擬合函數 A, k = p # return A * z(k * x) # 增加x return A * z(x) # z為其他電影算出的模型 def residuals(p, y, x): #實驗數據x, y和擬合函數之間的差,p為擬合需要找到的系數 return y - func(x, p) plsq = leastsq(residuals, p, args=(y, x))
如果用《大圣歸來》的曲線,同時假設上映60天,算出來結果是 41.3 億。
或許那個 41 億的預測就是這么出來的。不過《大圣》的票房量級要相對少很多,所以走勢曲線也相對更“平緩”。直接套用在《哪吒》上,系數是 4.4 倍,我覺得這個誤差是比較大的。實際票房不出意外的話,應該達不到這么高。
換做《流浪地球》再試下,結果 27.6 億。
這個結果我覺得更合理些。因為:
1、都是預算緊缺情況下完成的高質量作品
2、上映后都有比較好的口碑傳播,形成現象級話題
3、都有知名度較高的題材(劉慈欣/哪吒)
4、都在熱門檔期(春節/暑期)
如果在現有數據上,加上這個這周末的三天猜測數據(2億/2.5億/2.5億,我覺得這個數據算是比較保守了),再次進行擬合。那么結果就會達到 29.9 億。
考慮到《哪吒》的題材相對《地球》更適合全家觀影,并且暑期檔的時間更長,同期競爭較小,所以我覺得,它的曲線應當比《地球》更樂觀,破 30 億問題不大。
因此,就目前的狀況來看,我的預測是介于 30~40 億之間(比《地球》擬合的高,但比《大圣》擬合的低),取個折中就是略高于 35 億吧。
當然,也不排除后續有變數。再過幾天,有新的數據之后再跑一下這個預測程序,應該會更準確。
相關代碼、數據、結果圖已上傳,并附有說明,獲取請在公眾號(Crossin的編程教室)里回復關鍵字 哪吒
簡單說明下,代碼分幾部分,可單獨運行:
get_boxoffice.py 從貓眼票房獲取幾部參考影片的歷史票房數據
get_nezha.py 從貓眼票房獲取《哪吒》票房數據
plot.py 繪制歷史票房走勢圖
nezha.py 對歷史票房進行曲線擬合,并對《哪吒》票房進行預測
說點題外話,不管是30億還是40億,《哪吒》都是鐵定進入歷史總票房top10的,并很有希望進top5(34億)。
我個人覺得這是個好現象。哪怕像《大圣歸來》、《流浪地球》,包括《白蛇》這樣的電影還多不足的地方,但它們的出現和市場表現讓人覺得,還是有人在認真做電影,并且觀眾也會認可這樣的電影。這樣的良性循環會讓以后出現更多類型更優質的國產電影,而不是只有喜劇片,只能靠流量明星的單一市場。
雖然劣幣驅逐良幣的現象在很多領域始終存在,但總會有人愿意去做良幣。有什么樣的受眾就有什么樣的創作者。我愿意為這些出現的良幣鼓掌和付費,這樣它們的出現才會多一些、久一些。不然,好團隊好作品生存不了,我們以后就只能“吃垃圾”了。
關于如何用python“科學”預測下《哪吒》票房就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。