在R中改变显着性表示法

wwl*_*wwl 2 r lm

R具有某些显着性代码以确定统计显着性.例如,在下面的示例中,点.表示10%级别的显着性(请参阅下面的示例输出).

点很难看,特别是当我复制粘贴到Excel并在Times New Roman中显示时.

我想改变它:

  • * =显着性为10%
  • ** =显着为5%
  • *** =显着为1%

有没有办法可以做到这一点?

> y = c(1,2,3,4,5,6,7,8)
> x = c(1,3,2,4,5,6,8,7)
> summary(lm(y~x))

Call:
lm(formula = y ~ x)

Residuals:
    Min      1Q  Median      3Q     Max 
-1.0714 -0.3333  0.0000  0.2738  1.1191 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   0.2143     0.6286   0.341  0.74480    
x             0.9524     0.1245   7.651  0.00026 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.8067 on 6 degrees of freedom
Multiple R-squared:  0.907, Adjusted R-squared:  0.8915 
F-statistic: 58.54 on 1 and 6 DF,  p-value: 0.0002604
Run Code Online (Sandbox Code Playgroud)

MrF*_*ick 5

您可以使用创建自己的格式化功能

mystarformat <- function(x) symnum(x, corr = FALSE, na = FALSE, 
    cutpoints = c(0, 0.01, 0.05, 0.1, 1), 
    symbols = c("***", "**", "*", " "))
Run Code Online (Sandbox Code Playgroud)

你可以编写自己的系数格式化程序

show_coef <- function(mm) {
     mycoef<-data.frame(coef(summary(mm)), check.names=F)
     mycoef$signif = mystarformat(mycoef$`Pr(>|t|)`)
     mycoef$`Pr(>|t|)` = format.pval(mycoef$`Pr(>|t|)`)
     mycoef
}
Run Code Online (Sandbox Code Playgroud)

然后使用您的模型,您可以运行它

mm <- lm(y~x)
show_coef(mm)
#              Estimate Std. Error   t value  Pr(>|t|) signif
# (Intercept) 0.2142857  0.6285895 0.3408993 0.7447995       
# x           0.9523810  0.1244793 7.6509206 0.0002604    ***
Run Code Online (Sandbox Code Playgroud)