将循环线性回归的值附加到数据帧中的某个位置

2024-10-02 20:42:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在滚动窗口中添加线性回归的值。应将可存储值附加到my df的某个位置(即,具有df 2300 x 2300,回归的第一个值应位于第228行的第一列,依此类推)

下面是我的代码

任何帮助都是非常受欢迎的

df_rolling_tstat#2300 x 2300数据帧

for i in range(len(Switz_fund_ret.iloc[1:, 1:2].columns)):
    s = Switz_fund_ret.loc[birth_date[i], :]
    start = s['contatore']
    e = Switz_fund_ret.loc[death_date[i], :]
    end = e['contatore']
    window = 12

    for j in range(end-start):


        roll_one = Switz_fund_ret[i].iloc[start+j:start+window+j]
        #market excess return del mercato quando il fondo era in attività
        roll_two = Switz_fund_ret[2308].iloc[start+j:start+window+j] 
        #risk free rate quando il fondo era in attività
        roll_three = Switz_fund_ret[2309].iloc[start+j:start+window+j]
        roll_excess_return_fund = roll_one - roll_three 
        roll_two = sm.add_constant(roll_two)
        roll_y=np.array(roll_excess_return_fund, dtype=float)
        roll_x=np.array(roll_two, dtype=float)

        roll_model = sm.OLS(roll_y, roll_x).fit()
        roll_reg.append(roll_model)
        alpha_roll.append(roll_model.params[0])
        t_stat_roll.append(roll_model.tvalues[0])
        p_value_roll.append(roll_model.pvalues[0])

例如,我想检索roll_model.pvalues[0],并将其放在df的第一列第228位。之后,对于第二次回归,我想将roll_model.pvalues[0]存储在第229个条目中

非常感谢


Tags: indfmodelreturnwindowstartrollret