# 线性回归中p值到底怎么计算？并非简单的 t 检验或 F 检验

(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

 补充：在R软件中 线性回归方程的 t-value 和 p值（即Pr(>|t|) 的数值）的计算 # 计算t-valuet.value<- coef(half.lm) / sqrt(diag(vcov(half.lm)))t.value#输出截距和斜率的t-value结果为(Intercept)     waiting   -4.22699    11.08720# 计算p值2 * pt(abs(t.value), df = df.residual(half.lm), lower.tail = FALSE)#输出截距和斜率的结果为(Intercept)                waiting 5.069049e-04        1.783818e-09

-------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------

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(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

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

# 需要说明的是，

----------------------------

----------------------------

-----------------------------------------------------------------------------------------------------

# 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

-----------------------------------------------------------------------------------------------------

# 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.testy~x）默认把x设置为了 factor(x)

④ 当预测变量只有1个的时候，即y=a*x+banova的结果就是线性回归中关于预测变量的结果，并且t^2=F-value。参考https://www.zhihu.com/question/22935472

⑤ 线性回归中，R-squaredp-valuet-value的关系，请参考

https://www.researchgate.net/post/What_is_the_relationship_between_R-squared_and_p-value_in_a_regression/1

-------------------------------------------------------------------------------------------------------

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. 在知識儲備暫時沒有豐富到可以貫通地理解不同方法之間的同與異之時，還是建議分開學習理解這兩種方法。

---------- 補充完畢 ----------

-------------------------------------------------------------------------------------------------------

t检验常能用作检验回归方程中各个参数的显著性，而f检验则能用作检验整个回归关系的显著性。各解释变量联合起来对被解释变量有显著的线性关系，并不意味着每一个解释变量分别对被解释变量有显著的线性关系。

99v 采纳率：90% 来自团队：机械 擅长： 理工学科

-------------------------------------------------------------------------------------------------------

http://wap.sciencenet.cn/blog-651374-1053456.html

## 全部精选博文导读

GMT+8, 2021-9-20 10:43