RやExcelのようなスプレッドシートソフトウェアでデータに単純な線形近似を行うと、私は奇妙な問題に遭遇しました。 GnumericスプレッドシートとWPS。RとExcel(Gnumeric Spreadsheet and WPS)で線形フィットの結果が同じ小さなデータで異なるのはなぜですか?
以下のデータは、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
の19ペアであると私はxとyの間の線形近似を行う 'data.csv'
というファイルに保存されます。 Rスクリプトは以下の通りです:0.3971、調整Rは-乗:インターセプトのための係数は0.3594、とある
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-乗複数のことを見ることができます。この結果を与える
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)
-48212.8であり、勾配は963.5342である。式はy = 963.5342 * x + -48212.8であり、調整されたR-二乗(R2)は0.3594です。私はGnumericにスプレッドシートでモデルをフィット行う場合
しかし、結果は次のとおりです。式をyであるべきと言う
= 1052.88214782179 * X + -54588.8186095881とR2 =
Iの場合WPS Spredsheetでモデルをフィットし、結果は次のとおりです。
それはまた、式は、Y = 1052.9xなければならないと言う - 54589およびR2 = 0.44763
Excelでの結果である:
式はまた、Y = 1052.xある - 54589およびR2 = 0.447。
このような簡単なフィッティングのような明確なプロセスは、他のソフトウェアとはどのように異なっているのでしょうか?
私の意見では、この最小二乗適合はすでに定義されているので、なぜRはこれをどうやって行うのですか?
何を使用すればよいですか?
read.csvは、デフォルトではheader = TRUEです。したがって、元のコードでは、データの最初の行を列名として使用しているため、1行少ないデータと異なる回帰モデルが使用されています。 – Dave2e
@ Dave2eええ、私はそれをヘッダー= FALSEに変更すると問題は解決します。そして、それはすべてのそれらのスプレッドシートがR2として調整されていないR2として複数のR-二乗を使用するように見えることは興味深いです。 – sikisis