【问题标题】:Log function with negative observations具有负面观察的对数函数
【发布时间】:2018-12-01 20:02:50
【问题描述】:

我有以下数据,我想应用log() 函数:

 v1 
 2 
 3 
 4 
-1 
 5

预期输出:

 v1
 2  0.30 ~ log(2)
 3  0.48 ~ log(3)
 4  0.60 ~ log(4)
-1    .
 5  0.70 ~ log(5)

这只是问题的简化版本。我的数据集中有35000 观察结果,我找不到像drop if v1 <= 0 这样的简单规则来解决这个问题。

在不首先筛选我的数据的情况下,我想到的一种方法是使用for 循环并在观察结果上运行log() 函数。但是,我找不到任何网站告诉我如何做到这一点。

【问题讨论】:

    标签: stata


    【解决方案1】:

    如果要求取零或负值的对数,Stata 将返回缺失值。但是

    generate log_x = log(x) 
    

    generate log_x = log(x) if x > 0 
    

    将得到完全相同的结果,在有问题的值的观察中缺失。

    这里更大的问题是统计数据。为什么要以任何方式对这样的变量取对数?如果您的想法是转换变量,则可以使用其他转换。如果变量是响应变量或结果变量,那么即使有一些零值或负值,具有对数链接的广义线性模型也将起作用;这个想法只是平均函数应该保持正数。

    在 Cross Validated 和 Statalist 上有很多很多帖子提出这些问题。

    我无法想象您为什么认为循环在这里是必要的或有用的。使用上述generate 语句,Stata 会自动循环观察结果。

    【讨论】:

      猜你喜欢
      • 2017-09-05
      • 1970-01-01
      • 2016-01-25
      • 2012-07-09
      • 1970-01-01
      • 2019-06-02
      • 1970-01-01
      • 2019-09-09
      • 1970-01-01
      相关资源
      最近更新 更多