Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何比较R中的坡度_R_Regression_Lm_Anova - Fatal编程技术网

如何比较R中的坡度

如何比较R中的坡度,r,regression,lm,anova,R,Regression,Lm,Anova,我正在进行ANCOVA,以测试每种性别的体型(协变量,logLCC)和不同头部测量(反应变量,logLP)之间的关系(阴极变量,sexo)。 我得到了lm中每种性别的斜率,我想将它们与1进行比较。更具体地说,我想知道斜率是否显著高于或小于1,或者它们是否等于1,因为这在异速生长关系中具有不同的生物学意义。 这是我的密码: #Modelling my lm# > lm.logLP.sexo.adu<-lm(logLP~logLCC*sexo, data=ADU) > anova(

我正在进行ANCOVA,以测试每种性别的体型(协变量,
logLCC
)和不同头部测量(反应变量,
logLP
)之间的关系(阴极变量,
sexo
)。 我得到了
lm
中每种性别的斜率,我想将它们与1进行比较。更具体地说,我想知道斜率是否显著高于或小于1,或者它们是否等于1,因为这在异速生长关系中具有不同的生物学意义。 这是我的密码:

#Modelling my lm#
> lm.logLP.sexo.adu<-lm(logLP~logLCC*sexo, data=ADU)
> anova(lm.logLP.sexo.adu)
Analysis of Variance Table

Response: logLP
         Df Sum Sq Mean Sq  F value    Pr(>F)    
logLCC        1 3.8727  3.8727 3407.208 < 2.2e-16 ***
sexo          1 0.6926  0.6926  609.386 < 2.2e-16 ***
logLCC:sexo   1 0.0396  0.0396   34.829 7.563e-09 ***
Residuals   409 0.4649  0.0011                       
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

#Obtaining slopes#
> lm.logLP.sexo.adu$coefficients
 (Intercept)       logLCC        sexoM logLCC:sexoM 
  -0.1008891    0.6725818   -1.0058962    0.2633595 
> lm.logLP.sexo.adu1<-lstrends(lm.logLP.sexo.adu,"sexo",var="logLCC")
> lm.logLP.sexo.adu1
 sexo logLCC.trend         SE  df  lower.CL  upper.CL
 H       0.6725818 0.03020017 409 0.6132149 0.7319487
 M       0.9359413 0.03285353 409 0.8713585 1.0005241

Confidence level used: 0.95

#Comparing slopes#
> pairs(lm.logLP.sexo.adu1)
 contrast   estimate         SE  df t.ratio p.value
 H - M    -0.2633595 0.04462515 409  -5.902  <.0001

#Checking whether the slopes are different than 1#
#Computes Summary with statistics      
> s1<-summary(lm.logLP.sexo.adu)
> s1

Call:
lm(formula = logLP ~ logLCC * sexo, data = ADU)

Residuals:
 Min       1Q   Median       3Q      Max 
-0.13728 -0.02202 -0.00109  0.01880  0.12468 

Coefficients:
         Estimate Std. Error t value Pr(>|t|)    
(Intercept)  -0.10089    0.12497  -0.807     0.42    
logLCC        0.67258    0.03020  22.271  < 2e-16 ***
sexoM        -1.00590    0.18700  -5.379 1.26e-07 ***
logLCC:sexoM  0.26336    0.04463   5.902 7.56e-09 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.03371 on 409 degrees of freedom
Multiple R-squared:  0.9083,    Adjusted R-squared:  0.9076 
F-statistic:  1350 on 3 and 409 DF,  p-value: < 2.2e-16

#Computes t-student H0: intercept=1. The estimation of coefficients and   their s.d. are in s1$coefficients
> t1<-(1-s1$coefficients[2,1])/s1$coefficients[2,2]
#Calculates two tailed probability
> pval<- 2 * pt(abs(t1), df = df.residual(lm.logLP.sexo.adu), lower.tail = FALSE)
> print(pval)
[1] 3.037231e-24
#建模我的lm#
>lm.logLP.sexo.adu方差分析(lm.logLP.sexo.adu)
方差表分析
答复:logLP
Df和Sq平均Sq F值Pr(>F)
logLCC 1 3.8727 3.8727 3407.208<2.2e-16***
sexo 1 0.6926 0.6926 609.386<2.2e-16***
logLCC:sexo 1 0.0396 0.0396 34.829 7.563e-09***
残差409 0.4649 0.0011
---
签名。代码:0'***'0.001'***'0.01'*'0.05'.'0.1''1
#获取坡度#
>lm.logLP.sexo.adu$系数
(截获)logLCC sexoM logLCC:sexoM
-0.1008891    0.6725818   -1.0058962    0.2633595 
>lm.logLP.sexo.adu1 lm.logLP.sexo.adu1
sexo logLCC.trend SE df lower.CL upper.CL
H 0.6725818 0.03020017 409 0.6132149 0.7319487
M 0.9359413 0.03285353409 0.8713585 1.0005241
使用的置信水平:0.95
#比较斜坡#
>成对(lm.logLP.sexo.adu1)
对比度估计SE df t.比值p.值
H-M-0.2633595 0.04462515409-5.902 s1 s1
电话:
lm(公式=logLP~logLCC*sexo,数据=ADU)
残差:
最小1季度中值3季度最大值
-0.13728 -0.02202 -0.00109  0.01880  0.12468 
系数:
估计标准误差t值Pr(>t)
(截距)-0.10089 0.12497-0.807 0.42
对数LCC 0.67258 0.03020 22.271<2e-16***
sexoM-1.00590 0.18700-5.379 1.26e-07***
logLCC:sexoM 0.26336 0.04463 5.902 7.56e-09***
---
签名。代码:0'***'0.001'***'0.01'*'0.05'.'0.1''1
剩余标准误差:409个自由度上的0.03371
倍数R平方:0.9083,调整后的R平方:0.9076
F-统计:3和409 DF上的1350,p值:<2.2e-16
#计算t-student H0:intercept=1。系数及其s.d.的估计值为s1$系数
>t1 pval打印(pval)
[1] 3.037231e-24
我在这里的几个线程中看到了整个过程。但我能理解的是,我的坡度与1不同。 如何检查它们是否大于或小于1

编辑 解决了

#performs one-side test H0=slope bigger than 1
pval<-pt(t1, df = df.residual(lm.logLP.sexo.adu), lower.tail = FALSE)
#performs one-side test H0=slope smaller than 1
pval<-pt(t1, df = df.residual(lm.logLP.sexo.adu), lower.tail = TRUE)
#执行单侧测试H0=坡度大于1
pval
如何检查它们是否大于或小于1

如中所述,也如您的问题所述,您可以进行Wald测试,通过该测试进行计算


t1您在哪里发现坡度不同于1?我可以看到比较两个坡度的测试的p值,这表明两个坡度不同。到目前为止还无法与1相比。我还可以看到
M
的斜率为
0.9359…
,置信区间为1
[0.8713585,1.0005241]
。在你提到的问题中,只有一个自变量,因此只有一个系数。你有3个系数,比如logLCC,sex和交互作用,所以你必须分别检查它们。到目前为止,您所做的只是测试您的第二个系数(logLCC)。对于其余的系数,你必须这样做。
(1-s1$系数[3,1])/s1$系数[3,2]
对于性别系数等。你所做的测试表明,你所有的系数在统计上都明显不同于1。然后可以查看系数的实际值,并报告它们是否大于或小于1。永远记住你在比较什么。例如,如果你的系数是0.25,你发现它不同于1,那么它小于1。不能再大了:-)另外,检查双尾和单尾t检验之间的差异。您正在执行的双尾测试是测试coeff是否为1。小p值表明你有证据否定这个假设。所以,系数不同于1。然后检查实际系数值,并报告其是否大于或小于。上面提到的系数来自函数
lstrends
,而不是来自模型。该模型不会为每个性别提供一个斜率,因为两个性别都属于一个变量(性别)。因此,模型将始终为您提供一个坡度。您可以为每个性别构建一个模型。您可以将性别变量拆分为两个变量,然后运行另一个模型。你真的需要交互变量吗?我不熟悉该应用程序的研究。我建议您在相同的应用程序中使用另一个类似的示例。
fit <- lm.logLP.sexo.adu
t1<-(1-coef(fit)[1])/vcov(fit)[1, 1]