2016-07-08 6 views
1

私はRでMS WordのWordMatにGNUプラグインによって計算された結果を再現することが興味を持っていますが、私は彼らが同様の結果に到達することができません(私は同一ではないが、単に類似したものを探している)。異なる同じデータとメソッドを使用した結果、(?)、WordMatを使用し、R

私はいくつかのYX値と電力機能、Y = BX ^以下のデータを使用し

x <- c(15,31,37,44,51,59) 
y <- c(126,71,61,53,47,42) 

を持って私は= -0.8051を取得しWordMatではb = 1117.7472であるが、Rではa = -0.8026およびB = 1108.2533であり、若干異なる値である。

は、私はいくつかの間違った方法でnls機能を使用して、またはRでそれを計算するために、より良い(より透明)方法があるのですか?

データおよびRコード、

# x <- c(15,31,37,44,51,59) 
# y <- c(126,71,61,53,47,42) 
df <- data.frame(x,y) 
moD <- nls(y~a*x^b, df, start = list(a = 1,b=1)) 
summary(moD) 

Formula: y ~ a * x^b 

Parameters: 
    Estimate Std. Error t value Pr(>|t|)  
a 1.108e+03 1.298e+01 85.35 1.13e-07 *** 
b -8.026e-01 3.626e-03 -221.36 2.50e-09 *** 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 0.3296 on 4 degrees of freedom 

Number of iterations to convergence: 19 
Achieved convergence tolerance: 5.813e-06 
+0

まあ、エラーは次のとおりです:MAE_WordMat = 0.218、MAE_R = 0.195、明らかにRが良くなっています。 –

+0

私の質問にお返事ありがとうございます。 WordMatとRからMean Absolute Error(MAE)をどうやって取得しましたか?あなたは、Rがうまくやっていて、WordMatがそうではないことを私の先生に説得させる参考にしてもいいですか? –

+0

'y_WordMat'と' y_R'を計算して 'y'と比較したところ、どちらも近いが、Rは近いと分かりました。 –

答えて

1

WordMatは、非線形最小二乗問題を解くことによって対数 - 対数回帰を行うのではなくによりy=b*x^aのパラメータを推定されたように見えます:

> x <- c(15,31,37,44,51,59) 
> y <- c(126,71,61,53,47,42) 
> 
> (m1 <- lm(log(y)~log(x))) 

Call: 
lm(formula = log(y) ~ log(x)) 

Coefficients: 
(Intercept)  log(x) 
    7.0191  -0.8051 
> exp(coef(m1)[1]) 
(Intercept) 
    1117.747 
ここで何が起こっているのかもう少し説明すると、

y=b*x^a場合、両側のログを取ることは、線形回帰(Rでlm())の形を有し、log(y)=log(b)+a*log(x)を与えます。しかし、ログ変換はエラーの差異(質問の右側に暗黙的に含まれています)にも影響します。つまり、実際には別の問題を解決しています。どの問題が正しいかは、正確にどのように問題を述べるかによって決まります。詳細はThis question on CrossValidatedです。

+0

ありがとう、これは非常に便利です! [「ありがとう」と言ってコメントを使用] –

+0

のStackOverflowの非推奨(http://meta.stackoverflow.com/questions/258004/should-thank-you-comments-be-flagged?lq=1)。この回答が有用であれば、十分な評判があればそれをアップヴォートすることができます。また、あなたの質問に満足して答えた場合には、それを受け入れるためにチェックマークをクリックすることをお勧めします。 –

+0

私はあなたにSO文化について教えていただきありがとうございます。それは直接の「ありがとう」ではないと思います。私はあなたの答えを受け入れるために_チェックしてはいけないことをお詫びします。私はあまりにも恩恵を受けることに集中していました。 –

関連する問題