微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

时间序列和配置选择的线性回归

如何解决时间序列和配置选择的线性回归

我有一个时间序列数据集,其中包含因变量和自变量的每日数据,其中一些是不同渠道中的展示次数

  • 从属变量是 dependent var
  • 独立的是 impressions,channel,genre,duration,video_type 等。时间序列的总长度为 700 obj - 天。

实际上,因变量数据是按天有效的,但自变量(印象)数据有更详细的格式——小时和分钟(数据集长度超过 40k 行)。它们依赖于 day of the weekhoursformatsgenreschannelsduration

一天中可能会有几十种不同类型的视频,具有不同的格式、时间和时长等。展示次数取决于它们。

但是,由于模型基于因变量的每日数据,因此整个数据集在数据透视表中聚合为每日数据并与 dependent var 合并。这样我就可以选择数据的下钻来构建模型。例如,流派、持续时间等的每日展示次数总和,然后将它们用作回归量。

选择多元线性回归 OLS 作为模型,因为可解释性和获取因素贡献的能力对我来说很重要:按天的印象数、按小时数的印象数、按类型的印象数、按视频时长的印象数

印象的详细数据集如下所示:

印象 小时 通道 流派 持续时间 video_type
535 0 15 channel_1 genre_1 60 type_1
684 4 16 channel_2 genre_2 120 type_1
976 6 19 channel_3 genre_3 60 type_3
234 3 20 channel_4 genre_4 80 type_2
754 1 21 channel_5 genre_5 100 type_3

我不确定如何最好地做到这一点。

  1. 如果我们根据流派和持续时间(impressions_day_hour_genre_duration 因子)的每小时每天展示次数的详细每日数据构建模型,则因子数量是观察次数的 3 倍,并且得到1-5个非零值的稀疏矩阵。我敢肯定这不是最好的主意。
general_df_distil.pivot_table(
    index=['data'],columns=['day','hour','channel','genre','duration','video_type'],values=['impression'],aggfunc=np.sum
)
  1. 通过将原始数据集转换为所需形式,构建具有固定效果的面板模型。按天、小时、类型和持续时间获取展示次数贡献。
  2. 构建多个多元线性回归 OLS 模型。 Model by impressions_days,model by impressions_hours,model by impressions_genres,etc. 同样,我怀疑这个想法的可靠性,因为相对贡献总和的值会有所不同所有模型(它们不应该不同是合乎逻辑的)
general_df_distil.pivot_table(index=['data'],columns=['genre'],aggfunc=np.sum)
  1. 以纯形式使用 impressions 不是一个好主意,并在模型中包含 dayshoursgenresduration 作为虚拟变量,因为天的虚拟变量可以解释为季节性成分,但我使用 Fourier harmonics 作为季节性成分。
  2. 是否值得研究结构方程建模 (SEM)?

我还研究了 sklearn 决策树和 catboost 梯度提升作为模型 - 因为我可以获得特征的重要性。但我需要可解释性。

总结: 我需要建立一个基于每日流量数据的模型,在该模型中,我可以清楚地评估一周中的天数、小时数、类型、渠道对相关流量的影响。前提是在同一天可能会有不同频道/流派/小时的印象。

问题:有没有更正确、更优雅的方法解决这个问题?为了针对我拥有的因素实施可解释的模型,哪些模型值得关注?

如果现在的描述不清楚,我会补充/更正

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。