4

デフォルトではlm、サマリーテストの勾配係数はゼロに等しくなります。私の質問は非常に基本的です。ゼロ以外の値に等しい勾配係数をテストする方法を知りたいです。1つのアプローチはを使用することconfintですが、これはp値を提供しません。また、で片側テストを行う方法も疑問に思いますlm

ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)
trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)
group <- gl(2,10,20, labels=c("Ctl","Trt"))
weight <- c(ctl, trt)
lm.D9 <- lm(weight ~ group)
summary(lm.D9)

Call:
lm(formula = weight ~ group)

Residuals:
    Min      1Q  Median      3Q     Max 
-1.0710 -0.4938  0.0685  0.2462  1.3690 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   5.0320     0.2202  22.850 9.55e-15 ***
groupTrt     -0.3710     0.3114  -1.191    0.249    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 0.6964 on 18 degrees of freedom
Multiple R-squared: 0.07308,    Adjusted R-squared: 0.02158 
F-statistic: 1.419 on 1 and 18 DF,  p-value: 0.249 


confint(lm.D9)
              2.5 %    97.5 %
(Intercept)  4.56934 5.4946602
groupTrt    -1.02530 0.2833003

お手数をおかけしますが、よろしくお願いいたします。

4

6 に答える 6

7

@powerが言うように、あなたはあなたの手で行うことができます。ここに例があります:

> est <- summary.lm(lm.D9)$coef[2, 1]
> se <- summary.lm(lm.D9)$coef[2, 2]
> df <- summary.lm(lm.D9)$df[2]
> 
> m <- 0
> 2 * abs(pt((est-m)/se, df))
[1] 0.2490232
> 
> m <- 0.2
> 2 * abs(pt((est-m)/se, df))
[1] 0.08332659

を省略して片側テストを行うことができます2*

更新

これは、両側確率と片側確率の例です。

> m <- 0.2
> 
> # two-side probability
> 2 * abs(pt((est-m)/se, df))
[1] 0.08332659
> 
> # one-side, upper (i.e., greater than 0.2)
> pt((est-m)/se, df, lower.tail = FALSE)
[1] 0.9583367
> 
> # one-side, lower (i.e., less than 0.2)
> pt((est-m)/se, df, lower.tail = TRUE)
[1] 0.0416633

上限確率と下限確率の合計は正確に1であることに注意してください。

于 2011-11-11T05:06:57.013 に答える
2

パッケージのlinearHypothesis関数を使用します。carたとえば、をgroupTrt使用して、の係数が-1に等しいかどうかを確認できます。

linearHypothesis(lm.D9, "groupTrt = -1")

Linear hypothesis test

Hypothesis:
groupTrt = - 1

Model 1: restricted model
Model 2: weight ~ group

  Res.Df     RSS Df Sum of Sq      F  Pr(>F)  
1     19 10.7075                              
2     18  8.7292  1    1.9782 4.0791 0.05856 .
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
于 2011-11-11T04:58:12.323 に答える
1

smatrパッケージには、OLSslope.test()を使用できる機能があります。

于 2011-11-11T04:58:57.993 に答える
1

他のすべての良い答えに加えて、オフセットを使用することができます。コーディングを知る必要があるため、カテゴリ予測子では少し注意が必要です。

lm(weight~group+offset(1*(group=="Trt")))

ここ1*では不要ですが、差が1であるという仮説に対してテストしていることを強調するために挿入されています(差の仮説に対してテストする場合はd、を使用します。d*(group=="Trt")

于 2011-11-11T23:43:27.233 に答える
0

これを使用して、データに対してこれを行うことができt.testます。このmuパラメーターは、グループ平均の差の仮説を設定します。このalternativeパラメーターを使用すると、片面テストと両面テストのどちらかを選択できます。

t.test(weight~group,var.equal=TRUE)

        Two Sample t-test

data:  weight by group 
t = 1.1913, df = 18, p-value = 0.249
alternative hypothesis: true difference in means is not equal to 0 
95 percent confidence interval:
 -0.2833003  1.0253003 
sample estimates:
mean in group Ctl mean in group Trt 
            5.032             4.661 



t.test(weight~group,var.equal=TRUE,mu=-1)

        Two Sample t-test

data:  weight by group 
t = 4.4022, df = 18, p-value = 0.0003438
alternative hypothesis: true difference in means is not equal to -1 
95 percent confidence interval:
 -0.2833003  1.0253003 
sample estimates:
mean in group Ctl mean in group Trt 
            5.032             4.661
于 2011-11-11T11:24:55.307 に答える
-1

独自のテストをコーディングします。あなたは推定係数を知っており、標準誤差を知っています。独自のテスト統計を作成できます。

于 2011-11-11T04:49:21.310 に答える