土耳其旅游季前,我用公开数据筛了三城民宿的定价窗口

三月的伊斯坦布尔,独立大街上的兑换店挂出 1 美元兑 38.6 里拉的牌子,比二月末又低了一截。我盯着土耳其统计局(TÜİK)刚发布的二月通胀数据——年率 67.1%,月率 4.5%——同时打开文化和旅游部公开的 2024 年 1 月外国游客入境统计:伊斯坦布尔 118 万人次,安塔利亚 32 万,卡帕多奇亚所在的内夫谢希尔省约 8.7 万。三个数字摆在一起,我意识到三地民宿的定价窗口并不在同一个时间点上打开。

我的做法是先用 Python 拉取这三组公开数据,计算每个城市游客量的 13 周移动平均,再和里拉兑美元汇率的 30 天波动率做交叉。代码片段如下,依赖 pandas 和 requests,数据源是 TÜİK 和文旅部的公开 JSON 接口:

import pandas as pd, requests
from datetime import datetime, timedelta

def fetch_tuik_inflation():
    url = "https://data.tuik.gov.tr/api/inflation?start=2024-01&end=2024-02"
    return pd.DataFrame(requests.get(url).json()["data"])

def fetch_arrivals(province_code):
    url = f"https://turizm.gov.tr/api/arrivals?province={province_code}&year=2024"
    return pd.DataFrame(requests.get(url).json()["monthly"])

# 伊斯坦布尔34, 安塔利亚07, 内夫谢希尔50
for code in ["34", "07", "50"]:
    df = fetch_arrivals(code)
    df["ma13"] = df["arrivals"].rolling(13, min_periods=1).mean()
    print(code, df.tail(3)[["month", "ma13"]])

跑完发现:伊斯坦布尔的游客移动平均在三月中旬抬头,安塔利亚要到四月初,卡帕多奇亚最晚,四月下旬才明显。而汇率波动率在二月最后一周冲到 1.8%,随后回落。这意味着伊斯坦布尔的民宿房东如果等到游客抬头再调价,里拉计价可能已经被汇率吃掉一部分利润。

为什么这样做:游客量移动平均反映的是需求惯性,汇率波动率反映的是成本端压力。两者交叉,能看出一个城市在什么时间点最容易被“需求涨、汇率跌”两头夹。代价是公开数据有滞后——文旅部的月度入境数通常晚 25 天左右,TÜİK 通胀数据每月 3 号发布,所以模型只能做周级调整,不能做日级。

我踩过的坑:一开始用 7 天移动平均,结果被斋月前后的短途客流干扰,曲线锯齿太厉害。改成 13 周后平滑很多,但会漏掉突发性事件(比如二月伊斯坦布尔那场大雪导致航班取消)。另一个坑是内夫谢希尔省的数据里混入了大量一日游游客,他们不住民宿,但会拉高游客量,所以我在代码里加了一个过滤:只保留过夜数大于 0 的记录(文旅部接口有 overnight 字段)。

现在我的做法是每周一跑一次这个脚本,把三城的 ma13 和汇率波动率画在一张图上,肉眼判断哪个城市先出现“需求抬头 + 汇率波动收窄”的窗口。这个窗口通常只有 10 到 14 天,错过就得等下一轮。

你所在的土耳其城市,最近一次游客量抬头和里拉汇率波动之间,时间差大概是多少天?

0
赞同度 100% · 0 条评论 · 1 阅读

0 条评论

支持 Markdown · 回复会实时推送给对方

还没有评论,写下第一条。