【问题标题】:Logistic Regression in SASSAS 中的逻辑回归
【发布时间】:2014-11-19 12:27:56
【问题描述】:

我有以下数据。

我希望应用逻辑回归。这里的响应变量是死亡的比例。以下是我在 R 中分析数据的方式:

dose <- c(1.6907, 1.7242, 1.7552, 1.7842, 
          1.8113, 1.8369, 1.8610,1.8839)
total<- c(59,60,62,56,63,59,62,60)
dead<- c(6,13,18,28,52,53,61,60)
y <- dead/total

lineer.model <- glm(y ~ dose,family=binomial(link=logit), weights=total)

我想在 SAS 中进行完全相同的分析。任何人都可以帮我吗?这是我在 SAS 中所做的,但那不起作用。知道为什么

data beetle_data;
input dose total dead;
y = dead/total;
datalines;
1.6907  59 6
1.7242  60 13
1.7552  62 18
1.7842  56 28
1.8113  63 52
1.8369  59 53
1.8610  62 61
1.8839  60 60
;

proc logistic data=beetle_data;
model y =dose/link=logit dist=binomial;
run;

【问题讨论】:

  • 回答“您尝试过什么?”的问题以令人信服的方式将有助于使其成为一个具体的问题,而不是过于宽泛。逻辑回归是一个标准程序,可以在 UCLA 页面或通过网络搜索找到。如果您遇到任何问题,我们可能会为您解答。

标签: r sas


【解决方案1】:

SAS 将允许您使用权重语句应用频率权重(在 SAS 帮助页面上检查 proclogistic)。但是,您需要对数据进行一些操作:

  dose    died    count
1.6907       0       53
1.6907       1        6
1.7242       0       47
1.7242       1       13... etc.

另外,您的剂量变量范围太小,导致估计值太大,我建议将其乘以更大的数字,例如 100,甚至 1000,以使系数和优势比更易于管理(也就是更改单位从升到毫升)。


问题:

我想在 SAS 中进行完全相同的分析。任何人都可以帮我吗?这是我在 SAS 中所做的,但那不起作用。知道为什么

data beetle_data;
input dose total dead;
y = dead/total;
datalines;
1.6907  59 6
1.7242  60 13
1.7552  62 18
1.7842  56 28
1.8113  63 52
1.8369  59 53
1.8610  62 61
1.8839  60 60
;

proc logistic data=beetle_data;
model y =dose/link=logit dist=binomial;
run;

答案:

PROC LOGISTIC 仅运行逻辑回归,与 GLM 和 GENMOD 不同,您不需要指定分布。这是我的做法,但可能有一种我不知道的更快方法。

data beetle_data;
input dose total dead;
y = dead/total;
datalines;
1.6907  59 6
1.7242  60 13
1.7552  62 18
1.7842  56 28
1.8113  63 52
1.8369  59 53
1.8610  62 61
1.8839  60 60
;

data beetleDead;
set beetle_data;
killed = 1;
drop total;
rename dead = beetleCount;
run;

data beetleSurvived;
set beetle_data;
killed = 0;
beetleCount = total - dead;
drop total dead;
run;

data beetleAll;
set beetleDead beetleSurvived;
run;

proc logistic data=beetleAll;
model killed = dose;
weight beetleCount;
run;

【讨论】:

  • @BenBolker,谢谢!我重新检查了我的代码,我使用了赔率而不是 ln(odds)。我已经更正了我的答案。但是,即使您不同意“最后几”段,我也不会认为我的最后一段不正确。目前优势比约为7.6x10^14,不利于解读。
  • 我同意较小的剂量单位会使解释更容易。
  • @BenBolker 谢谢! :)
  • 请注意,实际剂量观察值已转换为对数。使用反日志会使数据变得更好吗?
  • 我已经添加了也不起作用的最终代码。你们介意看看吗?
【解决方案2】:

基于this SAS document(谷歌“sas proclogistic binomial”)看起来应该这样做:

proc genmod data=beetle;
model dead/total=dose / link=logit dist=binomial;

基于this,看起来您上面的数据实际上是相同的,上面链接中提到的标准 Bliss (1935) 数据集。

【讨论】:

    猜你喜欢
    • 2017-08-13
    • 1970-01-01
    • 2011-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-31
    • 1970-01-01
    • 2018-04-25
    相关资源
    最近更新 更多