||
题目可以改为:线性回归中p值到底怎么计算?并非对原始数据进行 t 检验或 F 检验。
线性回归中 p值 的计算方法探究
梅卫平
(Basic knowledge worth spreading !)
线性回归在R软件中的计算代码如下:
(以R软件自带的数据faithful为例)
data("faithful")
View(faithful)
half=faithful[1:20,]
half.lm=lm(eruptions~waiting,data=half)
summary(half.lm)
即可得到线性回归结果的各个参数:
Call:
lm(formula = eruptions ~ waiting, data = half)
Residuals:
Min 1Q Median 3Q Max
-0.87432 -0.27978 0.05717 0.30797 0.78539
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -2.040877 0.482820 -4.227 0.000507 ***
waiting 0.075245 0.006787 11.087 1.78e-09 ***
---Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.44 on 18 degrees of freedom
Multiple R-squared: 0.8723, Adjusted R-squared: 0.8652
F-statistic: 122.9 on 1 and 18 DF, p-value: 1.784e-09
可知线性回归方程为 y=0.075245*x-2.040877,p-value=1.784e-09,R^2=0.8723。
温馨提醒:上述结果中的 Std. Error 的数值 表示回归参数的标准方差(SD),不是标准误差(SE)。参考 薛毅老师的《统计建模与R软件》一书的第304页。
补充:在R软件中 线性回归方程的 t-value 和 p值(即Pr(>|t|) 的数值)的计算 |
# 计算t-value t.value<- coef(half.lm) / sqrt(diag(vcov(half.lm))) t.value #输出截距和斜率的t-value结果为 (Intercept) waiting -4.22699 11.08720
2 * pt(abs(t.value), df = df.residual(half.lm), lower.tail = FALSE) #输出截距和斜率的结果为 (Intercept) waiting 5.069049e-04 1.783818e-09 |
-------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------
那么p-value是通过什么检验得来的呢?
首先,线性回归和线性相关性计算在数值上是完全一致的,因此,Pearson相关系数检验的P-value肯定和上述结果一致!
在R软件中运行步骤和结果如下:
data("faithful")
View(faithful)
half=faithful[1:20,]
attach(half)
cor.test(waiting,eruptions,data=half , method = "pearson")
Pearson's product-moment correlation
data: waiting and eruptions
t = 11.087, df = 18, p-value = 1.784e-09
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
0.8376184 0.9739486
sample estimates:
cor
0.9339558 #此为Pearson相关系数 r
> 0.9339558^2
[1] 0.8722734 #此为Pearson相关系数的平方 r^2
-------------------------------------------------------------------------------
其次,经数据验证,是回归分析的ANOVA检验,或者说方差分析anova()。
参考依据The functions summary and anova are used to obtainand print a summary and analysis of variance table of the results.
外链网址 https://stat.ethz.ch/R-manual/R-devel/library/stats/html/lm.html
# anova() 写法如下:
anova(half.lm)
Analysis of Variance Table
Response: eruptions
Df Sum Sq Mean Sq F value Pr(>F)
waiting 1 23.7942 23.7942 122.93 1.784e-09 ***
Residuals 18 3.4842 0.1936
上面的anova()与下面的 ANOVA 的 Type I 结果是等价的。
下面为对原始数据的 ANOVA 的 Type I 的结果,注意是 aov(y~x), 不是 aov(y~factor(x)).
mod.half=aov(eruptions~waiting,data=half)
summary(mod.half)
Df Sum Sq Mean Sq F value Pr(>F)
waiting 1 23.794 23.794 122.9 1.78e-09 ***
Residuals 18 3.484 0.194
# 需要说明的是,
上述结果为ANOVA的TypeI结果,也是我们回归分析所用的结果。
自由度Df中18=n-2,n为样本数。其实也就是n-k=18,k-1=1。
----------------------------
另外,R语言代码写法需要时刻注意,ANOVA分很多情况:①回归分析的mod1<-aov(y~x)的写法不同于②多组数据比较的mod2<- aov(y~factor(x))。参考 http://blog.sciencenet.cn/blog-651374-1017704.html
----------------------------
补充,经验证, p-value, F-value, Sum Sq 等参数在ANOVA的 TypeI,TypeII,TypeIII 结果中的数值均完全相同,但是它们对应的参考基准或条件不相同,需注意,可以参考 ANCOVA的例子 http://blog.sciencenet.cn/blog-651374-975758.html 。
-----------------------------------------------------------------------------------------------------
第三,可以确定的是,线性回归的 t-value 并不是两组数据比较(t-test)的 t-vlaue,
具体解释请参考薛毅老师的《统计建模与R软件》一书的第303页。
# t-test 及结果如下:
t.test(waiting,eruptions,data=half,var.equal = T)
Two Sample t-test
data: waiting and eruptions
t = 19.917, df = 38, p-value < 2.2e-16
-----------------------------------------------------------------------------------------------------
第四, p-value 和 F-satistic 也不是简单的两组数据的方差齐性F-test:
参考 https://stat.ethz.ch/R-manual/R-devel/library/stats/html/var.test.html
和 http://www.sthda.com/english/wiki/f-test-compare-two-variances-in-r
# F-test 及结果如下:
var.test(waiting,eruptions,data=half,alternative="two.sided")
F test to compare two variances
data: waiting and eruptions
F = 154.06, num df = 19, denom df = 19, p-value = 2.22e-16
alternative hypothesis: true ratio of variances is not equal to 1
-------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------
拓展......
① 线性回归结果各参数间的相互转化关系,参考http://blog.csdn.net/chen790646223/article/details/45448717
② 经Origin软件和R软件验证,对于完全相同的数据组,非线性回归的p-value和线性回归的p-value不一样,虽然两种回归方式输出的结果中都显示为ANOVA检验结果。
③ 经数据验证,非线性回归的 p-value 和线性回归的 p-value 的计算与 kruskal.test 没有关联,kruskal.test(y~x)默认把x设置为了 factor(x)。
④ 当预测变量只有1个的时候,即y=a*x+b,anova的结果就是线性回归中关于预测变量的结果,并且t^2=F-value。参考https://www.zhihu.com/question/22935472
⑤ 线性回归中,R-squared和p-value及t-value的关系,请参考
-------------------------------------------------------------------------------------------------------
以下内容转载于茉茉的回答
线性回归中的 ANOVA 的作用是什么?
https://www.zhihu.com/question/22935472
统计学 话题的优秀回答者
51 人赞同了该回答
LinearRegression analysis 和 ANOVA 是兩種不同的統計方法。
ANOVA 是 Analysis of Variance 的縮寫。它是怎麼來的、主要用於解決什麼問題、如何用,請參考及其相關的 references,解釋非常詳盡:Analysis of variance。
LinearRegression analysis 和 ANOVA 的數學模型長得很像,但它們有本質的區別:
1. LinearRegression analysis 給出的是一個模型建議(一個函數),ANOVA 給出的則是不同組別觀測值間是否存在差別以及怎樣的差別(非函數)。
2. LinearRegression analysis 解決的問題是作為應變量的 Y 是如何受自變量(或多個) X 影響的;ANOVA 解決的問題是通過比較方差觀察某一或某些隨機變量是否以及如何受某一或某些因素(factor)影響而呈現出(組間)差別的。
---------- 消歧義補充 ----------
1. 說這兩種是不同的方法和它們有本質區別,這兩個觀點都不有悖於在某些情況下使用它們可以得出等價的結果;但並不能因為可以得到等價結果就說這兩種方法是等價的。
2. 說這兩種是不同的方法和它們有本質區別,並沒有否認它們之間存在甚至是存在深層的內在聯繫。有人就提出過這樣的觀點:Why ANOVA and Linear Regression are the Same Analysis。因每人研究領域不同會有不同觀點這是很正常也是應該存在的事情。我們如果認為自己的說法是有理有據的,就堅持自己的觀點;堅持自己並不意味著一定要推翻那些不同於我們的觀點。在認可「因側重點不同而存在認知上的差異」這個基礎上,質疑是永遠都沒有問題並且應該被提倡的。
3. 在知識儲備暫時沒有豐富到可以貫通地理解不同方法之間的同與異之時,還是建議分開學習理解這兩種方法。
---------- 補充完畢 ----------
所以,題主能不能把你想知道的「线性回归中的 ANOVA」是對什麼做 ANOVA 再說詳細一些,方便大家幫你;比如你用的是什麼軟件,你想問的是不是其他知友提到的那個「表」。
-------------------------------------------------------------------------------------------------------
以下内容转载于99v的回答
在回归分析中,F检验和t检验各有什么作用?
推荐于2016-04-15 01:29:53
最佳答案
一元线性回归里t检验和f检验等价,但在多元线性回归里,t检验可以检验各个回归系数显著性,f检验用来检验总体回归关系的显著性。
t检验常能用作检验回归方程中各个参数的显著性,而f检验则能用作检验整个回归关系的显著性。各解释变量联合起来对被解释变量有显著的线性关系,并不意味着每一个解释变量分别对被解释变量有显著的线性关系。
在一般情形下,t检验与F检验的结果没有必然联系;但当解释变量之间两两不相关时,若所有解释变量的系数均通过t检验,那么回归方程也能通过F检验。
-------------------------------------------------------------------------------------------------------
向您请教:
一元线性回归中常说的 t检验与F检验 到底是怎么实施的?
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-9-1 07:14
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社