我在r包中使用OLS构建线性模型:
model<-ols(nallSmells ~ rcs(size, 5) + rcs(minor,5)+rcs(change_churn,3)
+rcs(review_rate,0), data=quality,x=T, y=T)
当我想使用以下方法验证我的模型时:
validate(model,B=100)
我收到以下错误:
Error in lsfit(x, y) : only 0 cases, but 2 variables
In addition: Warning message:
In lsfit(x, y) : 1164 missing values deleted
但如果我减少B,例如B = 10,我就会工作。为什么我不能再迭代。另外我注意到当我使用这种方法时种子有效。 有人可以给我一些建议吗?
更新:
我使用rcs(review_rate,0)因为我想根据我的DOF预算为这个预测器分配0个结。我注意到问题在于review_rate中的数据。即使我在rcs()中省略了参数,只是放了预测器的名称,我也会收到错误。这是review_rate中数据的频率:count(quality$review_rate)
x freq
1 0.8571429 1
2 0.9483871 1
3 0.9789474 1
4 0.9887640 1
5 0.9940476 1
6 1.0000000 1159
我想知道这个向量的值是否存在关系?因为当我构建OLS模型时,我收到以下警告:
Warning message:
In rcspline.eval(x, nk = nknots, inclx = TRUE, pc = pc, fractied = fractied) :
5 knots requested with 6 unique values of x. knots set to 4 interior values.
其他预测变量中的值是真正的积极因素,但如果省略review_rate预测变量,则不会收到任何警告或错误。
感谢您的支持。
我添加了100个我的复制数据样本的链接
https://www.dropbox.com/s/oks2ztcse3l8567/examplestackoverflow.csv?dl=0
X表示从属变量,Y4表示给我带来问题的预测变量。
require (rms)
Data <- read.csv ("examplestackoverflow.csv")
testmodel<-ols(X~ rcs(Y1)+rcs(Y2)+rcs(Y3),rcs(Y4),data=Data,x=T,y=T)
validate(testmodel,B=1000)
亲切的问候,