具有任意系数r的predict.lm

时间:2016-02-16 17:00:42

标签: r regression coefficients

我试图使用predict.lm预测lm对象。但是,我想使用手动插入的系数。 为此,我尝试了:

@Override
public void onBindViewHolder (MyAdapter.VieHolder holder, int position){

    holder.textViewName.setText(myVisibleList.get(position).getName());
    // myVisibleList is the list that is show in the recyclerView

    // If true, is birthday, then change the item background color
    if(myVisibleList.get(position).isBirthDay){

        holder.layout.setBackgroundResource(R.drawable.recycler_view_selector_colored_item);

    }

}

@Override
public Filter getFilter(){return null;}

public void setFilter(String query){

    myVisibleList = new ArrayList<>();

    // Contact is the object show in the recyclerView / allContacts is the list if all the contacts
    for (Contact c : allContacts){

    if(c.getName().contains(query)){

        myVisibleList.add(c);

    }

    }

    notifyDataSetChanged();

}

// Method to clear the filter / Called when the searchView is closed
public void clearFilter(){

    myVisibleList = new ArrayList<>();
    myVisibleList.addAll(allContacts);
    notifyDataSetChanged

}

(其中&#34; coeff&#34;是正确系数的向量) 这确实会修改我想要的系数。不过,当我执行

model$coefficients <- coeff

我只是用&#34; old&#34;来计算预测。参数。有没有办法强迫predict.lm使用新的?

Post Scriptum:我需要这样做以适应bin-smooth(也称为regressogram)。 另外,当我用手预测&#34;&#34; (即使用矩阵乘法)结果很好,因此我很确定问题出在predict.lm无法识别我的新系数。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

黑客攻击$coefficients元素似乎确实有效。你能说明什么对你不起作用吗?

dd <- data.frame(x=1:5,y=1:5)
m1 <- lm(y~x,dd)
m1$coefficients <- c(-2,1)
m1
## Call:
## lm(formula = y ~ x, data = dd)
## 
## Coefficients:
## [1]  -2   1

predict(m1,newdata=data.frame(x=7))  ## 5  = -2+1*7

predict.lm(...)会得到相同的结果。

我会非常非常小心这种方法,每次与黑客模型做一些不同的事情时都会检查。

一般情况下,如果predictsimulate方法采用newparams参数会很好,但它们通常不会......