我试图使用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无法识别我的新系数。
提前感谢您的帮助!
答案 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(...)
会得到相同的结果。
我会非常非常小心这种方法,每次与黑客模型做一些不同的事情时都会检查。
一般情况下,如果predict
和simulate
方法采用newparams
参数会很好,但它们通常不会......