我是生物学家。我想复制我在一篇论文中读到的方法:“为了能够独立于体重来研究与死亡率的关系,死亡率的残差是通过从观察值中减去预测值来计算的”。在
我有一组死亡率(范围从0.1到0.5),一组体重(范围从2到80),我想计算一下在计算体重后死亡率的残差。在
我写了这个代码:
import scipy
from scipy import stats
import sys
# This reads in the weight and mortality data to two lists.
Weight = []
Mortality = []
for line in open(sys.argv[1]):
line = line.strip().split()
Weight.append(float(line[-2]))
Mortality.append(float(line[-1]))
# This calculates the regression equation.
slope, intercept, r_value, p_value, std_err = scipy.stats.linregress(Mortality,Weight)
# This calculates the predicted value for each observed value
obs_values = Mortality
pred_values = []
for i in obs_values:
pred_i = float(i) * float(slope) + float(intercept)
pred_values.append(pred_i)
# This prints the residual for each pair of observations
for obs_v,pred_v in zip(obs_values,pred_values):
Residual = str(obs_v - pred_v)
print Residual
我的问题是,当我运行这个代码时,我的一些残差看起来相当大:
> Sample1 839.710240214 > Sample2 325.787250084 > Sample3 -41.3006000084 > Sample4 -70.6676280159 > Sample5 267.05319407 > Sample6 399.204820103 > Sample7 560.723474144 > Sample8 766.292670196 > Sample9 267.05319407 > Sample10 2.7499420027
我想知道,这些结果看起来“正常”吗/它们是否应该以某种方式“标准化”/我是否做错了什么来获得计算体重后的死亡率残差?在
如果可能的话,我会很感激简单的“纯英语”答案,如果可能的话,因为我不是统计专家!在
非常感谢
我知道我不想在这里提出后续问题,如果有人能告诉我如何在不单击“回答问题”的情况下继续讨论我的原始问题(带代码,不带字符数),我很乐意将此文本移到该部分;我道歉。在
我的最后一个问题是如何“允许独立于体重调查与死亡率的关系”。我的下一个问题是出于好奇,如果要扩展这个问题,比如说,我是否想独立于体重和身高来研究死亡率?在
我写了这段代码,对于我的数据,这些残差加起来等于0,但我只想和专家们核实一下,我会这样做,以备将来参考:
再次道歉,如果我写错了这一节;我不觉得这是一个新的问题,作为一个评论,我不能添加代码;如果这是更合适的话,我很乐意把这个问题变成一个新的问题。在
看一下^{} 的文档:第一个参数是
x
,横坐标,第二个参数是y
,你观察到的值。{{{cd7}的值不应该根据cd2}来计算另外,您可以使用numpy(scpy无论如何都会使用它)来大幅减少(并加速)代码。在
^{pr2}$相关问题 更多 >
编程相关推荐