为什么线性拟合的结果在R和Excel(Gnumeric Spreadsheet和WPS)中有相同的小数据?

我遇到了一个奇怪的问题,当我做一个简单的线性拟合R和Excel类似的电子表格软件,如Gnumeric Spreadsheet和WPS的数据。

下面的数据是19对x和y

93.37262737 56200 101.406044 62850 89.27322677 56425 86.9458042 43325 70.54645355 42775 85.1936032 38375 72.10985 38376 73.54055944 22950 78.092 15225 71.30285 12850 70.03953023 18125 66.31068931 14200 93.39847716 13925 66.09695152 13225 70.6549 18125 76.43348868 14125 71.37531234 14875 85.7953977 19275 95.65012506 45375 

并保存在一个名为“data.csv”的文件中

我做了x和y之间的线性拟合。 R脚本如下:

 data<-read.csv("data.csv",col.names=c("x","y")) # plot data plot(data$x,data$y) #Fit lmodelx<-lm(data$y~data$x) abline(lmodelx) summary(lmodelx) 

这给出了这个结果:

 Call: lm(formula = data$y ~ data$x) Residuals: Min 1Q Median 3Q Max -27855 -7151 -1314 6947 23014 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -48212.8 23691.0 -2.035 0.05876 . data$x 963.5 296.8 3.246 0.00506 ** --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 13240 on 16 degrees of freedom Multiple R-squared: 0.3971, Adjusted R-squared: 0.3594 F-statistic: 10.54 on 1 and 16 DF, p-value: 0.005061 

您可以看到多重R平方:0.3971,调整的R平方:0.3594,截距的系数是-48212.8,斜率是963.5342。 所以公式是y = 963.5342 * x + -48212.8和调整R平方(R2)是0.3594。

但是,如果我确实适合Gnumeric Spreadsheet中的模型,结果是:

Gnumeric Spreadsheet Fiting结果

其中公式应该是y = 1052.88214782179 * x + -54588.8186095881和R2 =

如果我用WPS Spredsheet拟合模型,结果是:

WPS

那也说公式应该是y = 1052.9x – 54589和R2 = 0.44763

在Excel中的结果是:

高强

公式也是y = 1052.x – 54589和R2 = 0.447。

所以问题在于,像这样简单的拟合这样一个明确定义的过程在R中与其他软件有什么不同?

因为在我看来,这个最小二乘拟合已经被定义了,所以R为什么这么做呢?

我应该使用什么?

从你的总结数据中,我会说你在某处丢了一排,因为你只有16个自由度。 运行你的数据我会得到与其他电子表格结果相匹配的答案。

 Call: lm(formula = data$y ~ data$x) Residuals: Min 1Q Median 3Q Max -29824 -6660 -1028 8520 23087 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -54588.8 22859.7 -2.388 0.02882 * data$x 1052.9 283.7 3.712 0.00173 ** --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 13250 on 17 degrees of freedom Multiple R-squared: 0.4476, Adjusted R-squared: 0.4151 F-statistic: 13.78 on 1 and 17 DF, p-value: 0.001733 

那么,如果你使用gtwebb指出的相同的数据,答案实际上是“相同的”。 但是,如果你问“哪一个使用”,那么有一件重要的事情要注意:excel是错的。 它不能正确舍入。 它说

 y = 1052.x - 54589 ... and R2 = 0.447 

但这是错误的。 根据R计算的截距是1052.882 – 你可以将它圆整到1053或1056.9或1056.88,但是没有办法可以得到10521052. 。 而由R计算的R 2为0.4476318 – 可以将其舍入为0.45或0.448或0.4476,但无法说明0.447是正确的值。 我无法得到如何find正确的截取值(-54588.819 – > -54589),也许你在某个地方犯了错误?

在任何情况下,消息是明确的:不要使用Excel进行任何计算(对于数据input可以)。