線形回帰に既知の理論線と統計的に有意な差があるかどうかを計算するにはどうすればよいですか?


14

ほぼ直線に沿ったデータがいくつかあります。

ここに画像の説明を入力してください

これらの値の線形回帰を行うと、線形方程式が得られます。

y=0.997x0.0136

理想的な世界では、方程式はなければなりません。y=x

明らかに、私の線形値は理想に近いが、正確ではありません。私の質問は、この結果が統計的に有意であるかどうかをどのように判断できますか?

0.997の値は1と大きく異なりますか?-0.01 は0と大きく異なりますか?または、それらは統計的に同じであり、私はいくつかの合理的な信頼レベルでと結論付けることができますか?y=x

使用できる良い統計的検定とは何ですか?

ありがとう


1
あなたはそこにあるか、統計的に有意な差ではないかどうかを計算することができますが、これはないことに注意すべきではない違いがないかどうかを意味します。帰無仮説を偽造した場合にのみ意味を確認できますが、帰無仮説を偽造しない場合は、(1)実際に帰無仮説が正しい(2)数値が低いために検定が強力ではなかった可能性がありますサンプルの(3)間違った対立仮説のためにテストは強力ではありませんでした(3b)モデルの非決定論的部分を誤って表現するために統計的有意性の誤った測定をした。
セクストゥスエンピリカス

私にとって、データはy = x +ホワイトノイズのようには見えません。それについてもっと話してもらえますか?(そのようなノイズが発生するという仮定のテストでは、サンプルがどれほど大きくても、データとラインy = xの間に大きな違いがある場合でも、他の行y = a + bxと比較するだけです。これは、正しく最も強力な比較ではない可能性があります)
Sextus Empiricus

また、重要性を判断する目的は何ですか。多くの回答が、5%(95%信頼区間)のアルファレベルを使用することを示唆していると思います。ただし、これは非常にarbitrary意的です。統計的有意性をバイナリ変数(存在または非存在)として見るのは非常に困難です。これは、標準アルファレベルなどのルールで行われますが、任意であり、ほとんど意味がありません。コンテキストを与え、特定のカットオフレベルを使用して、有意水準(バイナリ変数ではない)に基づいて決定(バイナリ変数)を行う場合、バイナリ有意などの概念がより意味があります。
セクストゥスエンピリカス

1
どのような「線形回帰」を実行していますか?通常、通常の最小二乗回帰(インターセプト項を使用)を検討していると見なされますが、その場合、残差の両方のセットがゼロの(正確に)になるため、残差間の回帰のインターセプトもゼロ(正確に) )。そうではないので、ここで何か他のことが起こっています。あなたがしていることの背景とその理由を教えてください。
whuber

これは、2つのシステムが同じ結果を与えるかどうかを確認する測定の問題に似ています。素材については、bland-altman-plotを見てください。
mdewey

回答:


17

このタイプの状況は、ネストされたモデルの標準F検定で処理できます。固定パラメーターを使用して、両方のパラメーターをヌルモデルに対してテストするため、仮説は次のとおりです。

H0:β=[01]HA:β[01].

F検定には、両方のモデルの適合と、それらの残差平方和の比較が含まれます。

SSE0=i=1n(yixi)2SSEA=i=1n(yiβ^0β^1xi)2

検定統計量は次のとおりです。

FF(y,x)=n22SSE0SSEASSEA.

対応するp値は次のとおりです。

pp(y,x)=F(y,x)F-Dist(r|2,n2) dr.


Rでの実装:データがandと呼ばれるDATA変数で呼び出されるデータフレームにあるとします。Fテストは、次のコードを使用して手動で実行できます。使用したシミュレートされた模擬データでは、推定係数は帰無仮説の係数に近く、検定のp値には、真の回帰関数がアイデンティティ関数。yx

#Generate mock data (you can substitute your data if you prefer)
set.seed(12345);
n    <- 1000;
x    <- rnorm(n, mean = 0, sd = 5);
e    <- rnorm(n, mean = 0, sd = 2/sqrt(1+abs(x)));
y    <- x + e;
DATA <- data.frame(y = y, x = x);

#Fit initial regression model
MODEL <- lm(y ~ x, data = DATA);

#Calculate test statistic
SSE0   <- sum((DATA$y-DATA$x)^2);
SSEA   <- sum(MODEL$residuals^2);
F_STAT <- ((n-2)/2)*((SSE0 - SSEA)/SSEA);
P_VAL  <- pf(q = F_STAT, df1 = 2, df2 = n-2, lower.tail = FALSE);

#Plot the data and show test outcome
plot(DATA$x, DATA$y,
     main = 'All Residuals',
     sub  = paste0('(Test against identity function - F-Stat = ',
            sprintf("%.4f", F_STAT), ', p-value = ', sprintf("%.4f", P_VAL), ')'),
     xlab = 'Dataset #1 Normalized residuals',
     ylab = 'Dataset #2 Normalized residuals');
abline(lm(y ~ x, DATA), col = 'red', lty = 2, lwd = 2);

summary出力とplotこのデータの出力は次のようになります。

summary(MODEL);

Call:
lm(formula = y ~ x, data = DATA)

Residuals:
    Min      1Q  Median      3Q     Max 
-4.8276 -0.6742  0.0043  0.6703  5.1462 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -0.02784    0.03552  -0.784    0.433    
x            1.00507    0.00711 141.370   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.122 on 998 degrees of freedom
Multiple R-squared:  0.9524,    Adjusted R-squared:  0.9524 
F-statistic: 1.999e+04 on 1 and 998 DF,  p-value: < 2.2e-16

F_STAT;
[1] 0.5370824

P_VAL;
[1] 0.5846198

ここに画像の説明を入力してください


データを生成する方法は興味深いです。変数にエラーを追加した場合、データに適合する最適な行 y = xではありません。これは、仮説検定が決定性部分y = xだけでなく、誤差の分布方法を説明する非決定性部分にもどの程度依存するかを示しています。ここでの帰無仮説検定は、より具体的な仮説「y = x + e」に対するものであり、「y = x」に対するものではありません。x
セクストゥスエンピリカス

1
うん、よく見つけた。シミュレートされたデータは、標準のホモスケスティクス線形回帰を使用しません。シミュレーションで不均一分散を使用して、OPで示されるプロットのデータパターンを大まかに模倣しようとしました。(そして、私は非常に良い仕事をしたと思います!)だから、これは、そのモデルから生成されていないシミュレートされたデータに標準のホモスケスティクス線形モデルを当てはめている場合です。しかし、それはまだ正当です-あるモデルからのデータをシミュレートし、次にそれを別のモデルに適合させて、何が起こるかを見ても大丈夫です。
モニカを

1
その部分の不均一分散さえ気付かなかったsd = 2/sqrt(1+abs(x))(私はOPsグラフの中央の膨らみの形を奇妙に見つけ、あなたのイメージは「ああ、それはそれほど奇妙ではない、密度でなければならない」と思ったので、本当に良い仕事だった)。私が言及していたのは、変数ではなく変数にエラーを追加するということです。これは重要だと思います。実際には、理論的な関係測定すると、変数にもエラーがあり、十分なデータが与えられればを偽造できるはずですが、実際に偽造するのはyxy=xxy=xy=x+e
Sextus Empiricus

1
それは事実ですが、変数のエラーモデルの領域に入るため、より複雑になります。この場合、OPは標準の線形回帰を使用したいだけだと思います。
モニカを

私はそれがサイドノートであることに同意しますが、それでも重要なものです。質問の単純さは(異なる点で)私を困惑させ、また、あまりにも単純な表現であるかもしれないので、私を心配させます。もちろん、実際に達成しようとしているものに依存します(「すべてのモデルが間違っています...」)が、この単純な表現が標準になり、心に留めておくべき複雑な追加の質問が忘れられるか、さらには1つになるかもしれませんそれについて考え始めることはありません(他の回答で95%CIを参照することは、人々が盲目的に従うような標準の例です)。
セクストゥスエンピリカス

5

これは、ジュリアン・ファラウェイの優れた本「Linear Models With R(Second Edition)」から引用した、クールなグラフィカル手法です。これは、楕円としてプロットされた切片と傾斜の同時95%信頼区間です。

説明のために、N(mean = 10、sd = 5)分布を持つ変数 "x"と、分布がN(mean = x、sd = 2)である変数 "y"で500個の観測値を作成しました。これにより、0.9をわずかに超える相関が得られますが、これはデータほど厳密ではない場合があります。

楕円をチェックして、ポイント(intercept = 0、slope = 1)がその同時信頼区間内にあるか外にあるかを確認できます。

library(tidyverse)
library(ellipse)
#> 
#> Attaching package: 'ellipse'
#> The following object is masked from 'package:graphics':
#> 
#>     pairs

set.seed(50)
dat <- data.frame(x=rnorm(500,10,5)) %>% mutate(y=rnorm(n(),x,2))

lmod1 <- lm(y~x,data=dat)
summary(lmod1)
#> 
#> Call:
#> lm(formula = y ~ x, data = dat)
#> 
#> Residuals:
#>     Min      1Q  Median      3Q     Max 
#> -6.9652 -1.1796 -0.0576  1.2802  6.0212 
#> 
#> Coefficients:
#>             Estimate Std. Error t value Pr(>|t|)    
#> (Intercept)  0.24171    0.20074   1.204    0.229    
#> x            0.97753    0.01802  54.246   <2e-16 ***
#> ---
#> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#> 
#> Residual standard error: 2.057 on 498 degrees of freedom
#> Multiple R-squared:  0.8553, Adjusted R-squared:  0.855 
#> F-statistic:  2943 on 1 and 498 DF,  p-value: < 2.2e-16

cor(dat$y,dat$x)
#> [1] 0.9248032

plot(y~x,dat)
abline(0,1)


confint(lmod1)
#>                  2.5 %    97.5 %
#> (Intercept) -0.1526848 0.6361047
#> x            0.9421270 1.0129370

plot(ellipse(lmod1,c("(Intercept)","x")),type="l")
points(coef(lmod1)["(Intercept)"],coef(lmod1)["x"],pch=19)

abline(v=confint(lmod1)["(Intercept)",],lty=2)
abline(h=confint(lmod1)["x",],lty=2)

points(0,1,pch=1,size=3)
#> Warning in plot.xy(xy.coords(x, y), type = type, ...): "size" is not a
#> graphical parameter

abline(v=0,lty=10)
abline(h=0,lty=10)

reprexパッケージ(v0.2.1)によって2019-01-21に作成


1

n個のブートストラップされたサンプルで係数を計算できます。これにより、正規分布係数値(中央極限定理)が得られる可能性があります。それにより、平均の周りにt値(n-1自由度)の(たとえば95%)信頼区間を構築できます。CIに1(0)が含まれていない場合、統計的に有意な差があるか、より正確です:等しい勾配の帰無仮説を棄却できます。


ここでそれを定式化したので、2つの仮説のみを別々にテストしますが、必要なのは共同テストです。
kjetil bハルヴォルセン

0

仮説の簡単なテスト、つまりt検定を実行できます。切片の場合、帰無仮説は(これは有意性検定であることに注意してください)であり、勾配の場合はH0下にあります 。β0=0β1=1


1
しかし、必要なのは、他の答えと同様に共同テストです。
kjetil bハルヴォルセン

@kjetilbhalvorsen今日の朝、他の答えを読んでいるのが間違っていることに気づきました。削除します。
RScrlli

0

線形回帰を当てはめて、2つのパラメーターの95%信頼区間を確認する必要があります。勾配のCIに1が含まれ、オフセットのCIに0が含まれる場合、両面テストは約無意味です。(95%)^ 2レベル-2つの別個のテストを使用するため、typ-Iリスクが増加します。

Rの使用:

fit = lm(Y ~ X)
confint(fit)

またはあなたが使用します

summary(fit)

そして、自分で2シグマ間隔を計算します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.