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

sik*_*sis 1 excel r data-fitting

当我在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
Run Code Online (Sandbox Code Playgroud)

并保存在名为'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)
Run Code Online (Sandbox Code Playgroud)

这给出了这个结果:

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
Run Code Online (Sandbox Code Playgroud)

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

但是,如果我在Gnumeric Spreadsheet中使用该模型,结果是:

Gnumeric电子表格结果

其中公式应为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为什么这样做不同呢?

我该怎么用?

gtw*_*ebb 5

从你的摘要数据中我会说你在某个地方失去了一排,因为你只有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
Run Code Online (Sandbox Code Playgroud)

  • read.csv,默认为header = TRUE.因此,原始代码使用第一行数据作为列名,因此减少了1行数据和不同的回归模型. (4认同)