在R中改变意义表示法

在R中改变意义表示法,r,lm,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

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

您可以使用创建自己的格式化函数

mystarformat <- function(x) symnum(x, corr = FALSE, na = FALSE, 
    cutpoints = c(0, 0.01, 0.05, 0.1, 1), 
    symbols = c("***", "**", "*", " "))
mystarformat | t |)`)
麦考夫
}
然后使用您的模型,您可以使用

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    ***
mm | t |)符号
#(截距)0.2142857 0.6285895 0.340893 0.7447995
#x 0.9523810 0.1244793 7.6509206 0.0002604***

很抱歉回复太晚,但我找到了一个很好的解决方案。 只需执行以下操作:

install.packages("stargazer")
library(stargazer)
stargazer(your_regression, type = "text")
这将以您所需的格式以漂亮的方式显示所有内容。
注意:如果您离开
type=“text”
,则您将获得LaTeX代码

我们应该知道,stargazer软件包报告的显著性水平与其他统计软件(如STATA)不同


在R(stargazer)中,您将获得
#(*p它由
统计信息打印::printCoefmat
并在其中硬编码这些值。您可以通过调用
symnum()使用自己的符号格式化p值
但是
summary.lm
的默认选项似乎不可配置。您真的要将这些结果粘贴到Excel中吗?糟糕。基本上是复制粘贴系数,然后使用“文本到列”功能,使一切整洁。感谢你建议symnum,我会检查一下。经常会有关于星星的问题,无论是在重新配置休息时间,还是在对他们过于自信。后一点是作为对过度或错误使用p值的警告。我甚至见过(非官方)提到试图从
lm
摘要报告中删除它们,但我目前找不到这些参考。虽然可能性很小,但p值0将返回
NA
(因为
cut
默认情况下,断点在左侧闭合)。您可以通过将第一个切点从0更改为“较小的值”来缓解这种情况@r2evans我基本上也做了同样的事情
stats:::printCoefmat
,所以我猜默认的
print.summary.lm
也会有同样的问题。这是真的,很有道理。我想我的统计结果从来没有“非常显著”。@r2evans实际上
mystarformat(0)
返回“***”所以我想这只是因为
symnum
不同于
cut
Ahhh,我看到了对
any的引用(顺便说一句,您可以更改stargazer包中的截止值,使其与其他软件的输出相同,以防您与其他作者合作,例如:stargazer(output,output2,type=“html”,star.cutoffs=c(0.05,0.01,0.001))35; star.cutoffs默认为空
install.packages("stargazer")
library(stargazer)
stargazer(your_regression, type = "text")