gpt4 book ai didi

Python:将来自不同回归的估计系数存储在单个矩阵中

转载 作者:行者123 更新时间:2023-12-04 08:26:23 25 4
gpt4 key购买 nike

我有下面的代码,它通过我的数据框( df_main )并运行一个回归(应用sm.OLS() ) 每个唯一值 project_x .因此,回归的数量对应于 project_x 中唯一值的数量。 .
问题:如何存储我在具有以下维度的单个矩阵中运行的所有回归的估计(取幂!)系数?

  • 行数=唯一数量project_x
  • 列数=估计的回归系数数

  • 因此,矩阵将具有唯一的 project_x值作为行,回归系数估计为列,每个的交集是相应的估计回归系数。

    我的代码:
    import statsmodels.api as sm

    for x in df_main.project_x.unique():
    df_holder=df_main[df_main.project_x == x]
    X = df_holder.drop(['unneeded1', 'unneeded2','unneeded3'], axis=1)
    X['constant']=1
    Y = df_holder['sales']

    eq=sm.OLS(y, X)
    results=eq.fit()

    exp_coefficients=np.exp(results.params)
    print(exp_coefficients)

    最佳答案

    您可以存储 exp_coefficients在循环中的列表中,然后转换为矩阵
    (可选)您也可以将其放入数据帧中,请参阅与 df_index、df_columns 等相关的代码

    import statsmodels.api as sm

    df_index = []
    coef_mtr = [] # start with an empty list
    for x in df_main.project_x.unique():

    ... # the rest of your code here
    exp_coefficients=np.exp(results.params)
    # print(exp_coefficients)
    coef_mtr.append(exp_coefficients)
    df_index.append(x)

    coef_mtr = np.array(coef_mtr)

    # create a dataframe with this data
    df_columns = [f'coef_{n}' for n in range(coef_mtr.shape[1])]
    df_matrix=pd.DataFrame(data = coef_mtr, index = df_index, columns = df_columns)

    关于Python:将来自不同回归的估计系数存储在单个矩阵中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65244236/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com