Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
两个模型的K交叉验证结果相同-R_R_Analytics - Fatal编程技术网

两个模型的K交叉验证结果相同-R

两个模型的K交叉验证结果相同-R,r,analytics,R,Analytics,我有以下线性模型: gn<- lm(NA.~ I(PC^0.25) + I(((PI)^2)),data=DSET) gndos<-update(gn,subset=-c(1,2,4,10,11,26,27,100,158)) gn问题在于CVlm()如何收集用于拟合模型的数据。它通过form.lm对象来实现这一点,但这不足以重现用于拟合模型的数据。我认为这是一个错误,但缺陷可能更正确。< /P> 因为您在lm()调用中使用了subset,所以用于拟合该模型的数据包括591个观察值

我有以下线性模型:

gn<- lm(NA.~ I(PC^0.25) + I(((PI)^2)),data=DSET)
gndos<-update(gn,subset=-c(1,2,4,10,11,26,27,100,158))

gn问题在于
CVlm()
如何收集用于拟合模型的数据。它通过
form.lm
对象来实现这一点,但这不足以重现用于拟合模型的数据。我认为这是一个错误,但缺陷可能更正确。< /P> 因为您在
lm()
调用中使用了
subset
,所以用于拟合该模型的数据包括591个观察值。但你不能单凭公式就知道这一点<代码>CVlm()
执行以下操作

form <- formula(hndos)
mf <- model.frame(form, zx)

R> nrow(mf)
[1] 600

表单您的问题中存在多个错误。
CVlm()
来自哪里?为什么公式中的二次项都是
()
?你的空格键坏了吗?更具建设性;这些观察结果对模型没有/几乎没有影响,或者它们不在第一个模型中,可能是由于
NA
s?如果没有一个可复制的示例,我们只能猜测,这样的Q&a不适合。CVlm来自DAAG包。仔细看一看,“NA.”是变量的名称。统计上,gndos模型使用gn模型的数据集,但没有高杠杆点。我仔细查看了“
NA”。
不是R认为的
NA
,即缺失,但您已经回答了我的问题,因为这些不可能是高杠杆点和
NA
。就像我说的,如果没有一个可复制的例子,我无法猜出什么是错的;请提供一个。否则,请尝试手动安装
gndos
,而不是通过
update
。查看
gndos
,看看它是否真的具有较少的观察值。确保DAAG是最新的。请使用可复制的示例查看我的编辑:)。感谢这个可复制的示例-有了这个示例,我就有动力在调试器下安装软件包并逐步完成代码,正如我在回答中解释的那样,这很快就演示了问题。这就是为什么我们要求复制的例子。请注意,您正在覆盖示例中的
a
,并且对齐错误。。。
set.seed(1234)
    PC<-rnorm(600,mean=50,sd=4)
    PI<-rnorm(600,mean=30,sd=4)
    NA. <- 20*PC - 1.725*PI + rnorm(600,sd=1)
    zx<-data.frame(NA.,PC,PI)
    hn<- lm(NA.~ I(PC^0.25) + I(((PI)^2)),data=zx)
    hndos<-update(hn,subset=-c(1,2,4,10,11,26,27,100,158))
library(DAAG)
    a<-CVlm(df=zx,form.lm = hn ,m=5)
    a<-CVlm(df=zx,form.lm = hndos ,m=5)
form <- formula(hndos)
mf <- model.frame(form, zx)

R> nrow(mf)
[1] 600
mf <- model.frame(hndos) ## model.frame(form.lm) in their code

R> nrow(mf)
[1] 591