我一直在跟踪these procedures,但仅用于概率模型。问题是我无法获得table()
函数应用程序的结果;输出如下:
表中的错误(true = y,pred = round(fitted(probit))):全部 参数必须具有相同的长度
很明显,这里的问题是向量的长度不同,但是我不知道为什么它们的长度不同。由于y
是概率估计中使用的因变量矢量,而round(fitted(probit))
是回归结果的转换,它们不应该具有相同的长度吗?我还注意到,fit(probit)将向量“缩小”到数据集长度的54%。
实际长度为:
length(y)
#[1] 445815
length(pred)
#[1] 243300
为什么会这样? R中的fitted()
函数背后的过程如何导致此结果?如何解决这个问题呢?
我尝试按照建议的here使用na.omit(dataset),但没有任何效果。但是,数据集可能存在另一个清理问题,这导致了结果的错误。
答案 0 :(得分:0)
这是一种可能性(仍然是一种猜测,但是更明智的一种。)我假设glm
的数据参数为X
(因为它在链接的documnet中被命名),但是如果不是这样, ,则应适当调整代码。 complete.cases
函数返回在诸如矩阵或数据框之类的尺寸较大的对象上按行计算的逻辑向量,适用于选择:
table(true = y[complete.cases(X)],
pred = round( fitted(probit ))