相关链接
【2023年4月美赛加赛】Z题:The Future of the Olympics 思路、建模方案、数据来源、相关资料
【 2021 MathorCup杯大数据挑战赛 A题 二手车估价】初赛复赛总结、方案代码及论文
1 题目
2023年MCM 问题Y:理解二手帆船价格
和许多奢侈品一样,帆船的价值也会随着年代和市场条件的变化而变化。所附的“2023_MCM_Problem_Y_Boats.xlsx”文件包括2020年12月在欧洲、加勒比地区和美国销售的约3500艘36至56英尺长的帆船的数据。一名划船爱好者向COMAP提供了这些数据。像大多数现实世界的数据集一样,它可能有缺失的数据或其他问题,需要在分析之前进行一些数据清理。Excel文件包括两个选项卡,一个用于单体帆船,另一个用于双体船。在每个excel中的列包括:
Make:船的制造商名称。
Variant:标识特定型号的船名。
Length (ft):以英尺为单位的船的长度。
Geographic Region:船所在的地理区域(加勒比海、欧洲、美国)。
Country/Region/State:船只所在的具体国家/地区/州。挂牌价格(USD):以美元标价购买该船的广告价格。
Year:船的制造年份。
对于给定的制造、变体和年份,除了提供的Excel文件之外,还有许多其他来源可以提供特定帆船特征的详细描述。你可以用你选择的任何额外数据来补充所提供的数据集;但是,你必须在建模中包含“2023_MCM_Problem_Y_Boats.xlsx”中的数据。一定要完全识别并记录所使用的任何补充数据的来源。帆船经常通过经纪人出售。为了更好地了解帆船市场,中国香港(SAR)的一位帆船经纪人委托您的团队准备一份关于二手帆船定价的报告。该经纪人希望您:
开发一个数学模型,解释提供的电子表格中每艘帆船的挂牌价格。包括任何你认为有用的预测因素。您可以利用其他来源来了解给定帆船的其他特征(如横梁、吃水、排水量、索具、帆面积、船体材料、发动机小时数、睡眠容量、净空、电子设备等)以及按年份和地区划分的经济数据。识别和描述所使用的所有数据来源。包括对每个帆船变种价格估计精度的讨论。
用你的模型解释地区对上市价格的影响(如果有的话)。讨论是否所有帆船变体的区域效应是一致的。说明所注意到的任何区域影响的实际和统计意义。
讨论你对给定地理区域的建模如何在香港(SAR)市场上发挥作用。从提供的电子表格中选择一个信息丰富的帆船子集,分为单船体和双体船。从香港(SAR)市场找到该子集的可比上市价格数据。建模香港(特区)对子集中帆船的每艘帆船价格的区域影响(如果有的话)。双体帆船和单体帆船的影响是一样的吗?
识别并讨论你的团队从数据中得出的任何其他有趣和有信息的推论或结论。
为香港(SAR)帆船经纪人准备一到两页的报告。包括一些精心挑选的图表,以帮助经纪人理解你的结论。
总页数不超过25页的PDF解决方案应包括:
一页总结表,清楚地描述你解决问题的方法,以及在问题的背景下分析得出的最重要的结论。
目录。
您的完整解决方案。
给经纪人一到两页的报告。
附件
**数据文件。**2023_MCM_Problem_Y_Boats.xlsx
Monohulled Sailboats:单体帆船
Catamarans:双体船
数据文件条目描述
Make:船的制造商名称。Make、Variant、Length、Geographic Region
Variant:标识特定型号的船名。
Length (ft):以英尺为单位的船的长度。
Geographic Region:船所在的地理区域(加勒比海、欧洲、美国)。
Country/Region/State:船只所在的具体国家/地区/州。挂牌价格(USD):以美元标价购买该船的广告价格。
Year:船的制造年份。
术语表
横梁(Beam):船最宽处的宽度。
Broker: 一艘帆船。
双体船(Catamarans):一种多体船,有两个大小相等的平行船体。
排水量(Displacement):一艘船排水量的重量。
吃水(Draft): 使船在不触底的情况下浮起来所需要的最小水深。
发动机小时数(EngineHours):自新船以来,船舶发动机运行的小时数。
净空高度(Headroom):在船舱中可以站立的高度。
船体(Hull): 船或其他船只的主体或外壳,包括底部、侧面和甲板。
船壳材料(Hull Materials):制作船壳的材料。所用的材料包括玻璃纤维、钢、木材和复合材料。
挂牌价格(Listing Price): 卖方要求的价格。这艘船可能会以不同的价格出售。
制造商(Make):帆船的制造商。
单体帆船(Monohull Sailboats):只有一个船体的帆船,通常以一个沉重的龙骨(中心桨叶)为中心。
索具(Rigging) :由绳索、缆索和滑轮组成的系统,用来支撑和控制帆船的帆、舵和其他系统。
帆面积(Sail Area): 一艘船的帆完全扬起时的总表面积。
变体(Variant):表示某一特定型号帆船的名称。例如,“Sun Odyssey 54 DS”。
2 思路解析
2.1 问题一
可以提供关于帆船特性的信息:
最重要的网站:https://www.sailboatlistings.com/sailboats\_for\_sale/
我已经下载部分到本地
(1)BoatTrader :网站,允许您根据不同的标准,包括长度、制造商和型号,搜索新的和旧的帆船。该站点可以提供一些关于帆船特性的基本信息,如横梁、吃水和排水量。
(2)SailboatData :帆船规格和图纸数据库。该网站包括关于各种帆船型号的梁、吃水、排水量、帆面积和其他帆船特性的信息。
(3)YachtWorld :网站,允许您根据不同的标准,包括长度、制造商和型号,搜索新的和旧的帆船。该站点可以提供一些关于帆船特性的基本信息,如横梁、吃水和排水量。
(4)帆船杂志:一个以帆船评论和文章为特色的网站。该网站可以提供有关帆船特性的信息,如索具、风帆面积、船体材料和电子设备。更新中,及时进群,我会在群里第一时间发布更新通知
为了建立一个数学模型来解释所提供的电子表格中每艘帆船的标价,我们可以使用回归分析。回归分析是一种统计方法,用于确定因变量(在本例中为上市价格)与一个或多个自变量(如制造、变体、长度、地理区域、年份等)之间的关系。
汇总统计信息将提供关于模型中每个变量的系数、标准误差、p值和r平方值的信息。我们可以使用这些信息来评估每种帆船品种价格估计的准确性,并确定哪些变量对预测上市价格最重要。
除了提供的数据之外,我们还可以使用其他来源来了解给定帆船的其他特性,如横梁、吃水、排水量、索具、帆面积、船体材料、发动机小时数、睡眠容量、净空、电子设备等。按年份和地区划分的经济数据也可用于补充分析。例如,我们可以包括诸如通货膨胀率、汇率和利率等变量,以解释可能影响列出价格的经济因素。这些数据的来源可能包括行业报告、政府统计数据和市场研究。
回归分析的python代码
import pandas as pd
import numpy as np
import statsmodels.api as sm
# 加载数据
monohulls = pd.read_csv('Monohulled Sailboats.csv')
catamarans = pd.read_csv('Catamarans.csv')
# 类别特征编码
monohulls = pd.get_dummies(monohulls, columns=['Geographic Region'])
catamarans = pd.get_dummies(catamarans, columns=['Geographic Region'])
# 合并
。。。略,请下载完整代码
# 拟合线性回归模型
model = sm.OLS(y, X).fit()
# 打印模型的汇总统计信息
print(model.summary())
2.2 问题二
为了分析区域对帆船上市价格的影响,我们可以使用一个包括地理区域作为预测变量的回归模型。具体来说,我们可以用以下形式拟合线性回归模型:
挂牌价格= β0 + β1 *长度+ β2 *年份+ β3 *地区
其中,挂牌价格为因变量,长度和年份为连续自变量,分别表示帆船长度和制造年份,区域为分类自变量,表示帆船所在的地理区域(欧洲、加勒比或美国)。β0、β1、β2和β3是反映每个自变量对因变量影响的回归系数。
Python的statmodels库来拟合回归模型,并获得回归系数的估计值。
import pandas as pd
import statsmodels.api as sm
# 加载数据
sailboats = pd.read_csv("monohulled sailboats.csv")
# 拟合模型
model = sm.formula.ols("Listing_Price ~ Length + Year + C(Geographic_Region)", data=sailboats).fit()
# 输出统计信息
print(model.summary())
在上面的代码中,我们使用statmodels中的ols函数来拟合一个线性回归模型,其中Listing_Price作为因变量,Length和Year作为连续自变量,Geographic_Region作为分类自变量。C()符号指定应将地理区域(Geographic_Region)视为分类变量。
model.summary()的输出将包括回归系数的估估值,包括地理区域的系数。我们可以用这些估计来分析地区对上市价格的影响。
如果地理区域的系数具有统计学意义(即p值小于选定的显著性水平,通常为0.05),那么我们可以得出结论,在控制了帆船长度和制造年份后,区域对上市价格具有显著影响。我们还可以通过对系数符号的解读,来确定某一特定地区的帆船的挂牌价格往往高于或低于其他地区的帆船。
要分析区域效应在所有帆船变体中是否一致,可以从按地区查看帆船列表的分布开始。这可以让我们初步了解是否某些地区在数据集中的比例更高,以及在哪些地区的挂牌价格往往更高或更低方面是否存在明显的模式。可以使用Python和pandas库来读入Monohulled sailboats.csv和Catamarans.csv文件,然后使用value_counts()方法来计算每个区域中的清单数量:
import pandas as pd
monohulls_df = pd.read_csv('Monohulled sailboats.csv')
catamarans_df = pd.read_csv('Catamarans.csv')
# 计算单船体船在每个区域的清单数量
。。。略,请下载完整代码
# 计算每个地区双体船的挂牌数量
catamarans_region_counts = catamarans_df['Geographic Region'].value_counts()
print("Catamarans region counts:")
print(catamarans_region_counts)
由此,我们可以看到,美国的单体船挂牌数量最多,而加勒比海的双体船挂牌数量最多。我们还可以看到,单船和双体船在各个地区的列表分布是不一样的,例如,欧洲的单船列表比双体船多,而加勒比海的双体船列表比单船多。
为了分析地域对上市价格的影响,我们可以使用以地域为分类预测变量的线性回归模型。我们可以加入其他相关的预测变量,如长度和年份,以控制它们对上市价格的影响。
import statsmodels.api as sm
# 将数据子集化,只包含相关的预测变量
monohulls_data = monohulls_df[['Length (ft)', 'Year', 'Geographic Region', 'Listing Price (USD)']].dropna()
catamarans_data = catamarans_df[['Length (ft)', 'Year', 'Geographic Region', 'Listing Price (USD)']].dropna()
# 类别特征编码
monohulls_data = pd.get_dummies(monohulls_data, columns=['Geographic Region'], prefix='region')
catamarans_data = pd.get_dummies(catamarans_data, columns=['Geographic Region'], prefix='region')
# 拟合模型
。。。略,请下载完整代码
# 拟合双体船线性回归模型
catamarans_model = sm.OLS(catamarans_data['Listing Price (USD)'], sm.add_constant(catamarans_data[['Length (ft)', 'Year', 'region_Caribbean', 'region_Europe
2.3 问题三
已更新,请下完完整文档
2.4 问题四
已更新,请下完完整文档
3 完整数据及代码
betterbench.top/#/55/detail