私は生物学者です。私は論文で読んだアプローチをコピーしたい:「死亡率との関連を体重とは無関係に調べるために、死亡率の残差は観測値から予測値を差し引いて計算する」。線形回帰残差 - 結果を「標準化」し、これを行う方法
私は死亡率のセット(約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
私は思ったんだけど、これらの結果は何らかの形で「標準化」されるべきであるか、または重量を考慮した死亡率の残差を得るのに間違ったことをしたのでしょうか?
私は統計的な専門家ではないので、可能であれば、コードスニペットを使って単純な「プレーン・英語」の回答に感謝します。 、最初の引数はx
ある横軸を、第二はy
、あなたの観測値である:
感謝
まず、正しいものを見つける必要があります。あなたのコードを修正することができます – niklas
残余は0にする必要があります、あなたの数字はそうそうではありません。一方、あなたの与えられた出力はコードから切り離されているように見えます。あなたのコードには何も "Sample"という語が印刷されていないからです。 –
あなたのモデルでは、 '死亡率'は独立していて、 'Weight'は従属変数です。人の死亡率の確率/尤度が自分の体重に影響すると主張していない場合、それは逆の方法でなければならないと私は思う。 – ayhan