本系列文章致力于研究硅谷主要城市——旧金山的建筑活动。 旧金山是我们世界的科技“莫斯科”,以它的例子(借助开放数据)观察大城市和首都建筑业的发展。
图表的构建和计算是在 (在 Kaggle.com 平台上)。
来自旧金山建筑部门的超过一百万个建筑许可证的数据(两个数据集中的记录) - 允许 不仅分析城市的建筑活动,但也要批判性地考虑 过去40年建筑业的最新趋势和发展历史,1980年至2019年间。
开放数据使探索成为可能 已经和将要影响建筑业发展的主要因素 在城市中,将其分为“外部”(经济繁荣和危机)和“内部”(假期和季节年周期的影响)。
内容
开放数据并审查基线参数。
这不是文章的翻译。 我在 LinkedIn 上写作,为了避免用多种语言创建图形,所有图形都是英文的。
第二部分链接:
旧金山市建筑许可证数据 - 来自开放数据门户 - 。 该门户有多个有关建筑主题的数据集。 两个这样的数据集存储和更新为在城市中建造或维修物体而颁发的许可证的数据:
- (850万条记录)
- (280万条记录,数据每周下载更新)
这些数据集包含有关已颁发的施工许可证的信息,以及颁发许可证的对象的各种特征。 收到的条目(权限)总数 1980-2019 年期间 - 1 个许可证.

该数据集中用于分析的主要参数:
- 许可创建日期 — 应用程序的创建日期(实际上是施工开始的日期)
- 描述 — 申请说明(描述为其创建许可证的建筑项目(工作)的两个或三个关键字)
- 估计成本 — 建筑工程的估计(估计)成本
- 修正成本 - 修改后的成本(重估、增加或减少应用程序初始数量后的工作成本)
- 现有_使用 - 住房类型(一户、两户住宅、公寓、办公室、生产等)
- 邮政编码、位置 — 邮政编码和对象坐标
旧金山的年度建筑活动
下图显示了参数 估计成本 и 修正成本 呈现为按月划分的总工作成本分布。
data_cost_m = data_cost.groupby(pd.Grouper(freq='M')).sum()为了减少每月的“异常值”,每月数据按年份分组。 按年份划分的投资金额图表已变得更加合乎逻辑且易于分析。
data_cost_y = data_cost.groupby(pd.Grouper(freq='Y')).sum()

基于城市设施成本总和(当年所有许可证)的年度变动 1980年至2019年影响经济因素清晰可见 建筑项目的数量和成本,或旧金山房地产的投资。
过去40年的建筑许可数量(建筑工作岗位数量或投资数量)与硅谷的经济活动密切相关。

建筑活动的第一个高峰与 80 年代中期山谷中的电子产品热潮有关。 1985 年随之而来的电子产品和银行业衰退导致该地区房地产市场陷入衰退,并在近十年内未能恢复。
此后,在互联网泡沫破灭和近年来科技繁荣之前,又经历了两次(1993-2000年和2009-2016年) 旧金山的建筑业经历了百分之几千的抛物线增长。.
通过去掉中间的波峰和波谷,留下每个经济周期的最小值和最大值,可以清楚地看出过去40年来市场波动有多大困扰了该行业。

建筑投资的最大增幅发生在互联网繁荣时期,1993 年至 2001 年间,翻修和建筑投资达 10 亿美元,即每年约 1 亿美元。 如果我们以平方米计算(1 年 1995 平方米的成本为 3000 美元),那么从 350 年开始的 000 年内每年大约为 2 平方米。
在此期间每年总投资增长达1215%。
这一时期租赁建筑设备的公司与淘金热时期销售铲子的公司类似(19世纪中叶在同一地区)。 只是在 2000 年代,新成立的建筑公司想要在建筑热潮中赚钱时,已经有了起重机和混凝土泵,而不是铲子。

在建筑业多年来经历的每一次危机之后, 危机后的未来两年,投资 建筑(许可证申请数量) 每次至少下跌50%.
旧金山建筑业最大的危机发生在上世纪九十年代。 以90年为周期,该行业要么下降(5-85年期间-1983%),然后再次上升(1986-895年期间+1988%),在1992年、1981年、1986年保持年度增长,1988年-处于同一水平。
1993年以后,建筑业随后的跌幅均不超过50%。 但 经济危机逼近 (由于新冠肺炎 (COVID-19)) 可能会在建筑行业造成创纪录的危机 2017-2021年期间,2017-2019年期间累计下降幅度超过60%。

旧金山人口增长 1980-1993 年期间的动态 几乎呈指数级增长。 硅谷的经济实力和创新活力是新经济、美国文艺复兴和互联网泡沫的坚实基础。 它是新经济的中心。 但与房地产投资的增长不同的是,在互联网泡沫高峰之后,人口实际上趋于稳定。

在 2001 年网络泡沫达到顶峰之前,自 1950 年以来人口年增长率约为 1%。 然后,泡沫破灭后,新人口流入速度放缓,自2001年以来每年仅增加0.2%。
2019 年(自 1950 年以来首次),增长动态显示人口从旧金山市流出(-0.21% 或 7000 人)。
准备成本估算时的期望和现实
在使用的数据集中,有关建设项目许可证成本的数据分为:
- 原始估计成本(估计成本)
- 重估后的工作成本(修正成本)
在繁荣时期,当投资者(建筑客户)在开工后表现出兴趣时,重估价的主要目的是增加初始成本。
在危机期间,他们尽量不超过估计成本,并且最初的估计几乎没有变化 (1989年地震除外)。
根据重估成本和估计成本之间的差异构建的图表(revised_cost -estimated_cost),可以观察到:
重估建筑工程量时的成本增加量直接取决于经济景气周期
data_spread = data_cost.assign(spread = (data_cost.revised_cost-data_cost.estimated_cost))

在经济快速增长时期,工作客户(投资者)相当慷慨地花费他们的资金,在工作开始后增加他们的要求。
客户(投资者)在财务上有信心,要求建筑承包商或建筑师延长已颁发的建筑许可证。 这可能是增加游泳池初始长度或增加房屋面积的决定(在开始工作并颁发建筑许可证之后)。
在互联网时代的巅峰时期,此类“额外”支出每年达到“额外”1亿美元。

如果您查看此表中的百分比变化,则估算的峰值增长(100% 或原始估算成本的 2 倍)发生在 1989 年该市附近发生地震的前一年。 我认为地震后,1988年开始的建设项目在1989年地震后需要更多的时间和资金来实施。
相反,地震前几年对估算成本的向下修正(仅在 1980 年至 2019 年期间发生过一次)可能是由于 1986 年至 1987 年开工的一些项目被冻结或这些项目的投资被削减向下。 按照时间表 平均而言,对于 1987 年开始的每个项目,预计成本减少了原计划的 -20%.
data_spred_percent = data_cost_y.assign(spred = ((data_cost_y.revised_cost-data_cost_y.estimated_cost)/data_cost_y.estimated_cost*100))

最初估计成本增加了 40% 以上,这表明或可能是金融泡沫以及随后的建筑市场泡沫逼近的结果。
2007 年之后估算成本与修订成本之间的差距(差异)缩小的原因是什么?
也许投资者开始仔细观察这些数字(20年来平均金额从100万美元增加到2万美元),或者建筑部门可能为了防止和抑制房地产市场出现泡沫,引入了新的规则和限制以减少可能的操纵行为以及危机年份可能出现的风险。
施工活动取决于一年中的季节
通过按一年中的日历周(54 周)对数据进行分组,您可以根据季节和一年中的时间观察旧金山市的建筑活动。
到圣诞节,所有建筑组织都在努力及时获得新“大型”项目的许可。 (同时!同一月份的许可证数量全年处于同一水平)。 计划在明年内获得房产的投资者在冬季签订合同,指望获得大幅折扣(因为夏季合同大部分将于年底结束,建筑公司对此感兴趣)接收新申请)。
圣诞节前提交的申请数量最多 (从平均每月 1-1,5 亿增加到仅 5 月份就增加到 XNUMX 亿)。 与此同时,各月申请总数保持不变 (见下节:按月、日申请总数统计)
寒假过后,建筑行业正在积极筹划和落实“圣诞节”订单(许可证数量几乎没有增加),以便在年中(独立日假期前)之前释放资源。六月假期结束后,夏季合约浪潮立即开始。
data_month_year = data_month_year.assign(week_year = data_month_year.permit_creation_date.dt.week)
data_month_year = data_month_year.groupby(['week_year'])['estimated_cost'].sum() 
同样的百分比数据(橙色线)还显示,该行业全年运行“平稳”,但在假期前后,许可证活动在第 150 周至第 20 周(独立日之前)期间增加至 24%,并且节后立即下降至-70%。
在万圣节和圣诞节之前,旧金山建筑业的活动在 43-44 周期间(从低谷到高峰)增加 150%,然后在假期期间降至零。
因此,该行业处于六个月的周期,其间隔是假期“美国独立日”(第20周)和“圣诞节”(第52周)。
旧金山房地产投资总额
根据该市建筑许可数据:
1980年至2019年旧金山建设项目总投资为91,5亿美元。
sf_worth = data_location_lang_long.cost.sum() 
旧金山所有住宅房地产按财产税评估的总市场价值(即旧金山拥有的所有房地产和所有个人财产的评估价值) .
过去 40 年来旧金山在哪些领域进行了投资?
使用 Folium 库,让我们看看这 91,5 亿美元按地区投资在哪里。 为此,按邮政编码对数据进行分组后,我们将使用圆圈(Folium 库中的 Circle 函数)表示结果值。
import folium
from folium import Circle
from folium import Marker
from folium.features import DivIcon
# map folium display
lat = data_location_lang_long.lat.mean()
long = data_location_lang_long.long.mean()
map1 = folium.Map(location = [lat, long], zoom_start = 12)
for i in range(0,len(data_location_lang_long)):
Circle(
location = [data_location_lang_long.iloc[i]['lat'], data_location_lang_long.iloc[i]['long']],
radius= [data_location_lang_long.iloc[i]['cost']/20000000],
fill = True, fill_color='#cc0000',color='#cc0000').add_to(map1)
Marker(
[data_location_mean.iloc[i]['lat'], data_location_mean.iloc[i]['long']],
icon=DivIcon(
icon_size=(6000,3336),
icon_anchor=(0,0),
html='<div style="font-size: 14pt; text-shadow: 0 0 10px #fff, 0 0 10px #fff;; color: #000";"">%s</div>'
%("$ "+ str((data_location_lang_long.iloc[i]['cost']/1000000000).round()) + ' mlrd.'))).add_to(map1)
map1


从各地区情况可以明显看出 从逻辑上讲,大部分馅饼都流向了市中心。 根据距市中心的距离和到达市中心所需的时间(当然,沿海地区也在建造昂贵的房屋)简化了所有对象的分组,所有许可证均分为 4 组:“市中心” 、“<0.5H 市中心”、“<1H 市中心”、“旧金山以外”。
from geopy.distance import vincenty
def distance_calc (row):
start = (row['lat'], row['long'])
stop = (37.7945742, -122.3999445)
return vincenty(start, stop).meters/1000
df_pr['distance'] = df_pr.apply (lambda row: distance_calc (row),axis=1)
def downtown_proximity(dist):
'''
< 2 -> Near Downtown, >= 2, <4 -> <0.5H Downtown
>= 4, <6 -> <1H Downtown, >= 8 -> Outside SF
'''
if dist < 2:
return 'Downtown'
elif dist < 4:
return '<0.5H Downtown'
elif dist < 6:
return '<1H Downtown'
elif dist >= 6:
return 'Outside SF'
df_pr['downtown_proximity'] = df_pr.distance.apply(downtown_proximity)在该市的 91,5 亿美元投资中,近 70 亿美元(占全部投资的 75%)投资于市中心 (绿区)及市区2公里半径范围内。 从中心(蓝色区域)。

按市区划分的建筑申请的平均估计成本
所有数据以及总投资额均按邮政编码分组。 仅在这种情况下,按邮政编码计算应用程序的平均 (.mean()) 估计成本。
data_location_mean = data_location.groupby(['zipcode'])['lat','long','estimated_cost'].mean()
在城市的普通地区(距离市中心超过 2 公里)——建筑应用的平均估计成本为 50 万美元。

市中心地区的平均估计成本大约高出三倍 (150万至400万美元)高于其他地区(30至50万美元)。
除了土地成本外,三个因素决定了房屋建设的总成本:劳动力、材料和政府费用。 加利福尼亚州的这三个组成部分高于该国其他地区。 加利福尼亚州的建筑规范被认为是该国最全面、最严格的建筑规范(由于地震和环境法规),通常需要更昂贵的材料和劳动力。
例如,政府要求建筑商使用更高质量的建筑材料(窗户、隔热材料、供暖和制冷系统)以达到高能效标准。

从许可证申请平均费用的一般统计数据来看,有两个地点较为突出:
- 金银岛 - 旧金山湾的一座人工岛。 建筑许可证的平均估计成本为 6,5 万美元。
- 使命湾 —(人口 2926)建筑许可证的平均估计成本为 1,5 万美元。

事实上,这两个领域的高平均应用率是相关的 这些邮政地点的申请数量最少 (分别为 145 和 3064,岛上的建设非常有限),而对于其余的邮政编码 - XNUMX1980年至2019年期间每年收到约1300份申请 (整个期间平均总共有 30 -50 万份申请)。
根据“申请数量”参数,整个城市每个邮政编码的申请数量分布非常均匀。
按月、日统计申请总数
1980年至2019年按月份和星期几划分的申请总数总体统计显示: 建筑部门最安静的月份是春季和冬季。 同时,申请中指定的投资金额差异很大,有时每个月都有差异 (另请参阅“取决于季节的施工活动”)。 在一周中的几天中,周一该部门的负载比一周中其他日子减少约 20%。
months = [ 'January', 'February', 'March', 'April', 'May','June', 'July', 'August', 'September', 'October', 'November', 'December' ]
data_month_count = data_month.groupby(['permit_creation_date']).count().reindex(months)

虽然 100 月和 4,3 月的申请数量几乎相同,但就预计总费用而言,差异达到 8,2%(XNUMX 月和 XNUMX 月为 XNUMX 亿,XNUMX 月为 XNUMX 亿)。
data_month_sum = data_month.groupby(['permit_creation_date']).sum().reindex(months)

旧金山建筑业的未来,通过模式预测活动。
最后,让我们将旧金山的建筑活动图表与比特币价格图表(2015-2018)和黄金价格图表(1940-1980)进行比较。
模式 (来自英语模式 - 模型、样本) - 在技术分析中,价格、交易量或指标数据的稳定重复组合被称为。 模式分析基于技术分析的公理之一:“历史重演”——人们相信数据的重复组合会导致类似的结果。
年度活动图表上可以看到的主要模式是 这是“头肩”趋势反转形态。 之所以如此命名,是因为图表看起来像人的头部(峰值)和侧面的肩膀(较小的峰值)。 当价格突破连接波谷的线时,该模式被认为是完整的,并且走势可能会向下。
旧金山建筑业的活动变动几乎与黄金和比特币价格的上涨完全一致。 这三个价格和活动图表的历史表现显示出显着的相似之处。

为了能够预测未来建筑市场的行为, 需要计算相关系数 与这两种趋势中的每一个。
如果两个随机变量的相关矩(或相关系数)不为零,则称为相关随机变量; 如果它们的相关矩为零,则称为不相关量。
如果结果值更接近 0 而不是 1,那么讨论清晰的模式就没有意义了。 这是一个复杂的数学问题,可能对这个话题感兴趣的老同志可以做一下。
如果! 不科学! 看看旧金山建筑业进一步发展的话题:如果格局继续与比特币的价格重合,那么 根据这个悲观的选项 - 在危机刚刚结束的时期,摆脱旧金山建筑业的危机并不容易。

有了更“乐观”的选择 如果建筑业的活动遵循“金价”情景,那么建筑业的重复指数增长是可能的。 在这种情况下,20-30年(可能是10年),建筑业将面临新的就业和发展激增。

我将仔细研究各个建筑部门(屋顶、厨房的维修、楼梯、浴室的建造,如果您对行业或其他数据有任何建议 - 请写在评论中),并将各个类型的工作的通货膨胀率与抵押贷款的固定利率和美国政府债券的盈利能力(固定抵押贷款利率和美国国债收益率)。
第二部分链接:
Jupyter Notebook 链接:
请使用 Kaggle 的用户给 Notebook 加分(谢谢!)。
(代码的注释和解释稍后会在Notebook中添加)
英文版链接:
如果您喜欢我的内容,请考虑请我喝杯咖啡。
感谢您的支持!
只有注册用户才能参与调查。 拜托
旧金山建筑业的未来如何?
66,7%建筑行业更有可能走比特币2的道路
0,0%建筑业可能会追随金价的脚步0
0,0%该行业预计未来 10 年将出现炒作0
33,3%该行业的发展不按规律进行1
3 位用户投票。 6 名用户弃权。
来源: habr.com
