我们正在 Fedora 33 上使用 R 将广义线性模型拟合到一组数据。我们 3 个人拥有完全相同的数据集、完全相同的操作系统 (Fedora 33)、完全相同的 R 版本和软件包版本。sessionInfo() 输出看起来也一样。这是当前的函数调用:
probitModel <- glm(Y ~ a + b + c +
d + e + f + g,
control=glm.control(maxit=100),
start=startingval,
family = binomial(link = "probit"),
data = thisData)
Run Code Online (Sandbox Code Playgroud)
需要注意的是,正常的“lm”拟合在比较时会产生完全相同的结果。关于“glm”的一些东西在不同的计算机上会产生不同的结果。最后,结果是一致的,因为我们在同一台计算机上使用相同的数据得到相同的结果。只有当我们比较结果时才会出现问题。
我们已经检查过:
数据文件可以在这里找到。我们只是使用 load() 来设置数据,调用上面的函数,当输出应该相同时,我们得到的输出略有不同。
我的 sprintf("%.20f", probitModel$coefficients) 结果:
"-2.87521118137333120401" "-0.29134882504319664642" "0.11641651353472137753" "-0.00811350544106945529" "0.00939647781971938295" "0.00000000889056301580" "-0.00000000003021053820" "0.04553200818707187070"
Run Code Online (Sandbox Code Playgroud)
另一台电脑的结果:
"-2.87521124006409856122" "-0.29134881939721285482" "0.11641651896472486605" "-0.00811350937056383621" "0.00939647799201156347" "0.00000000889056417264" …Run Code Online (Sandbox Code Playgroud)