变量有一个hypthen的Patsy公式

时间:2018-05-31 11:26:36

标签: python statsmodels patsy

我正在尝试使用带有公式的statsmodel线性回归函数。我的样本数据来自Pandas数据框。我在公式中的列名称有轻微问题。由于下游进程,我的列名称中有连字符。例如:

    export const fetchActionCreator = ({ types, url, fetchOptions, dataKey }) => dispatch => {
    const actions = typesToActionCreators(types);
    dispatch(clientRequest());
    let mock_Response = [key="A",value="xyz"];

    return axios.get(url, fetchOptions)
        .then(response => response.data,
            error => console.log('an error occoured ' + error))
        .then(data => {
            console.log('time Before ' + new Date());
            setTimeout(() => { dispatch(actions.success(mock_Response, dataKey)) }, 4000);
            console.log('time After ' + new Date());
        });
};

function typeToActionCreator(type) {
    return typeof type === 'function' ? type : (payload, dataKey) => ({ type, payload, dataKey });
}

function typesToActionCreators(types) {
    const [request, success, failure] = types.map(typeToActionCreator);
    return { request, success, failure };
}

现在,保持连字符的原因之一是它允许python将字符串拆分以进行其他分析,因此我必须保留它。正如您所看到的,当我想使用+------+-------+-------+ + VOLT + B-NN + B-IDW + +------+-------+-------+ 使用B-NN回归VOLT时,我遇到了一个问题,因为patsy公式无法找到B.

有没有办法告诉Patsy B-NN 是变量名而不是B减去NN?

感谢。

BJR

1 个答案:

答案 0 :(得分:1)

patsy使用Q来引用姓名,例如Q('B-IDW')

http://patsy.readthedocs.io/en/latest/builtins-reference.html#patsy.builtins.Q

my_fit_function("y ~ Q('weight.in.kg')", ...)