Geriatric Nutritional Risk Index, a simplified nutritional screening index, is a significant predictor of mortality in chronic dialysis patients

Zadeh has reported that malnutrition-Inflammation Score (MIS) is predictor of mortality in hemodialysis patients. Although Yamada has reported that the significant correlation between Geriatric Nutritional Risk Index (GNRI) and MIS, they did not report the correlation between GNRI and mortality in chronic hemodialysis patients. This article has reported that GNRI is significant predictor of mortality in chronic dialysis patients.

Geriatric Nutritional Risk Index, a simplified nutritional screening index, is a significant predictor of mortality in chronic dialysis patients

Ikue Kobayashi, Eiji Ishimura, Yoko Kato, Senji Okuno, Tadashi Yamamoto, Tomoyuki Yamakawa, Katsuhito Mori, Masaaki Inaba and Yoshiki Nishizawa

Nephrol Dial Transplant (2010) 25: 3361-3365

Abstract

Background

Malnutrition is a common complication in haemodialysis patients. Recently, the Geriatric Nutritional Risk Index (GNRI) has been reported as a simple and accurate tool to assess nutritional status of haemodialysis patients. Our objective was to examine the association between GNRI and mortality in chronic haemodialysis patients.

Methods

We examined the GNRI of 490 maintenance haemodialysis patients (60 ± 12 years, 293 males and 197 females) and followed up these patients for 60 months. Predictors for all-cause death were examined using Kaplan–Meier analysis and Cox proportional analyses.

Results

The GNRI was 98.0 ± 6.0, and was significantly and negatively correlated with age and haemodialysis duration. During the 60-month follow-up period, 129 patients died. According to the highest positive likelihood and risk ratios, the cutoff value of GNRI for mortality was set at 90. Kaplan–Meier analysis revealed that patients with a GNRI <90 (n = 50) had a significantly lower survival rate, compared to those with GNRI ≥90 (n = 440) (log-rank test, P < 0.0001). Multivariate Cox proportional hazards analyses demonstrated that GNRI was a significant predictor for mortality [hazard ratio (HR) 0.962, 95% confidence interval (CI) 0.931–0.995, P < 0.05], after adjustment for age, gender, C-reactive protein, presence of diabetes and haemodialysis duration.

Conclusions

These results demonstrated that GNRI is a significant predictor for mortality in haemodialysis patients. The simple method of GNRI is considered to be a clinically useful marker for the assessment of nutritional status in haemodialysis patients.

Keywords: Geriatric Nutritional Risk Index; haemodialysis; malnutrition; mortality

Geriatric Nutritional Risk Indexは簡易栄養スクリーニング指標であるが,維持透析患者の死亡率の有意な指標である

 維持透析患者の MIS と死亡率との相関 Zadeh らが報告し,GNRI と MIS との相関の強さは Yamada が報告しておりますが,Yamada の報告では GNRI と透析患者の死亡率との比較はありませんでした.この論文は GNRI と透析患者の死亡率とを直接比較した報告です.

Geriatric Nutritional Risk Indexは簡易栄養スクリーニング指標であるが,維持透析患者の死亡率の有意な指標である

Ikue Kobayashi, Eiji Ishimura, Yoko Kato, Senji Okuno, Tadashi Yamamoto, Tomoyuki Yamakawa, Katsuhito Mori, Masaaki Inaba and Yoshiki Nishizawa

Nephrol Dial Transplant (2010) 25: 3361-3365

要旨

背景

 低栄養は透析患者の一般的合併症である.最近 Geriatric Nutritional Risk Index (GNRI) が透析患者の栄養状態を簡易で正確に評価するツールとして報告されるようになってきた.我々の研究では透析患者の GNRI と死亡率との相関を調査した.

方法

 我々は 490 名の維持透析患者 (60 ± 12 歳,男性 293 名,女性 197 名) の GNRI を調査し,60 ヶ月間に渡って経過を観察した.全死亡の指標を Kaplan-Meyer 法と Cox 比例ハザード法で検証した.

結果

 GNRI は98.0 ± 6.0 であり,有意に年齢および透析期間と負の相関があった.60 ヶ月間の観察期間中 129 名が死亡した.死亡を鑑別する GNRI の陽性尤度比が最大となるカットオフ値は 90 であった.Kaplan-Meyer 法によると GNRI 90 未満の患者 (n = 50) の生存率は 90 以上の患者 (n = 440) と比較して有意に低かった(log-rank検定p < 0.0001).多変量の Cox 比例ハザード解析ではGNRI が死亡率の有意な指標となることが明らかとなった(年齢,性別,CRP, 糖尿病の存在および透析期間で調整後のハザード比 0.962, 95%CI 0.931 – 0.995, p < 0.05).

結論

 これらの結果は GNRI が透析患者の死亡率の有意な指標であることを示している.この GNRI の簡易な手法は透析患者の栄養状態を評価する臨床的に有用なマーカーであると考えられる.

キーワード:Geriatric Nutritional Risk Index; haemodialysis; malnutrition; mortality

How to calculate sensitivity, specificity, positive predictive value, negative predictive value, positive likelihood ratio and negative likelihood ratio and their 95 % confidence interval with cross tabulation?

You can calculate 95 % confidence interval of probability as formula below.

\displaystyle p \pm 1.96 \sqrt{\frac{p(1 - p)}{n}}

In this article, I’d like to describe how to calculate sensitivity, specificity, positive predictive value (PPV), negative predictive value (NPV), positive likelihood ratio (LR+) and negative likelihood ratio (LR-) and their 95 % confidence interval with cross tabulation.

  TRUE FALSE Marginal total
POSITIVE a b a + b
NEGATIVE c d c + d
Marginal total a + c b + d N 

Sensitivity, specificity, PPV, NPV, LR+ and LR- and their 95 % confidence interval are shown as following table. ‘Exp()’ means exponential with Napier’s constant and ‘LN()’ means natural logarithmic function, respectively.

   Formula 95% Confidence Interval
Sensitivity \displaystyle \frac{a}{a + c} \displaystyle Sensitivity\pm1.96\sqrt{\frac{Sensitivity(1 - Sensitivity)}{a + c}}
Specificity \displaystyle \frac{d}{b + d} \displaystyle Specificity\pm1.96\sqrt{\frac{Specificity(1 - Specificity)}{b + d}}
PPV \displaystyle \frac{a}{a + b} \displaystyle PPV \pm 1.96\sqrt{\frac{PPV(1 - PPV)}{a + b}}
NPV \displaystyle \frac{d}{c + d} \displaystyle NPV \pm 1.96\sqrt{\frac{NPV(1 - NPV)}{c + d}}
LR+ \displaystyle \frac{a}{a + c}\bigg/\frac{b}{b + d} \displaystyle Exp \left[LN\left( \frac{Sensitivity}{1 - Specificity}\right)\pm1.96\left(\frac{1 - Sensitivity}{a} + \frac{Specificity}{b}\right) \right] 
LR- \displaystyle \frac{c}{a + c}\bigg/\frac{d}{b + d} \displaystyle Exp\left[ LN\left(\frac{1 - Sensitivity}{Specificity}\right) \pm1.96\left( \frac{Sensitivity}{c} + \frac{1 - Specificity}{d} \right)\right] 

感度,特異度,陽性的中率,陰性的中率,陽性尤度比および陰性尤度比とそれぞれの95%信頼区間を計算する

 一般に確率 p の 95 % 信頼区間は下記の式で表現出来ます.

\displaystyle p \pm 1.96 \sqrt{\frac{p(1 - p)}{n}}

 今回は四分表から感度,特異度,陽性的中率,陰性的中率,陽性尤度比および陰性尤度比とそれぞれの 95 % 信頼区間を求めます.

  TRUE FALSE Marginal total
POSITIVE a b a + b
NEGATIVE c d c + d
Marginal total a + c b + d N 

 感度,特異度,陽性的中率,陰性的中率,陽性尤度比および陰性尤度比とそれらの 95 % 信頼区間は下記の通りです.

   Formula 95% Confidence Interval
Sensitivity \displaystyle \frac{a}{a + c} \displaystyle Sensitivity\pm1.96\sqrt{\frac{Sensitivity(1 - Sensitivity)}{a + c}}
Specificity \displaystyle \frac{d}{b + d} \displaystyle Specificity\pm1.96\sqrt{\frac{Specificity(1 - Specificity)}{b + d}}
PPV \displaystyle \frac{a}{a + b} \displaystyle PPV \pm 1.96\sqrt{\frac{PPV(1 - PPV)}{a + b}}
NPV \displaystyle \frac{d}{c + d} \displaystyle NPV \pm 1.96\sqrt{\frac{NPV(1 - NPV)}{c + d}}
LR+ \displaystyle \frac{a}{a + c}\bigg/\frac{b}{b + d} \displaystyle Exp \left[LN\left( \frac{Sensitivity}{1 - Specificity}\right)\pm1.96\left(\frac{1 - Sensitivity}{a} + \frac{Specificity}{b}\right) \right] 
LR- \displaystyle \frac{c}{a + c}\bigg/\frac{d}{b + d} \displaystyle Exp\left[ LN\left(\frac{1 - Sensitivity}{Specificity}\right) \pm1.96\left( \frac{Sensitivity}{c} + \frac{1 - Specificity}{d} \right)\right] 

How to export Excel worksheets to database with SQL statement file.

When you’d like to register Excel worksheets in database, you could ‘BULK INSERT’ txt file into database. In this article, I’d like to explain VBA code that exports Excel worksheets to sql file. It’s assumed that worksheet name is same as table name and first column order is same as table attribute order.

Option Explicit

Sub EXPORT_SQL()
    Dim mySht   As Worksheet
    Dim myAr    As Variant
    Dim i       As Long
    Dim j       As Long
    Dim mySQL   As String
    Dim SQLAr() As String
    Dim myFSO   As Object
    Dim myTS    As Object
    Dim myPath  As String
    Dim n       As Long
    myPath = ThisWorkbook.Path
    For Each mySht In Worksheets
        myAr = mySht.UsedRange.Resize(mySht.UsedRange.Rows.Count - 1).Offset(1)
        ReDim SQLAr(LBound(myAr) To UBound(myAr))
        For i = LBound(myAr) To UBound(myAr)
            For j = LBound(myAr, 2) To UBound(myAr, 2)
                If myAr(i, j) = Empty Then
                    mySQL = mySQL & "NULL, "
                Else
                    mySQL = mySQL & "'" & myAr(i, j) & "', "
                End If
            Next j
            mySQL = "INSERT INTO " & mySht.Name & " VALUES (" & Left(mySQL, Len(mySQL) - 2) & ")"
            SQLAr(i) = mySQL
            mySQL = ""
        Next i
        Set myFSO = CreateObject("Scripting.FileSystemObject")
        Set myTS = myFSO.CreateTextFile(Filename:=myPath & "\" & mySht.Name & ".sql", Overwrite:=True)
        For n = LBound(SQLAr) To UBound(SQLAr)
            myTS.writeline SQLAr(n)
        Next n
        myTS.Close
        Set myFSO = Nothing
        Set myTS = Nothing
    Next mySht
End Sub

EXCELのワークシートをテーブルに挿入するSQLステートメントファイルを作成するVBAコード

 Excel のワークシートをデータベースに登録するにはいくつかの方法があります.txt ファイルを BULK INSERT する方法もありますが,今回はワークシートのセル内容を INSERT するクエリを sql ファイルに書き出す VBA コードを説明します.ワークシート名はテーブル名と同じになっており,ワークシートの1行目はテーブルの属性名と同一の順番になっているとの前提で話を進めます.Excel のファイルと同一場所に sql ファイルがシートの数だけ作成されます.

Option Explicit

Sub EXPORT_SQL()
    Dim mySht   As Worksheet
    Dim myAr    As Variant
    Dim i       As Long
    Dim j       As Long
    Dim mySQL   As String
    Dim SQLAr() As String
    Dim myFSO   As Object
    Dim myTS    As Object
    Dim myPath  As String
    Dim n       As Long
    myPath = ThisWorkbook.Path
    For Each mySht In Worksheets
        myAr = mySht.UsedRange.Resize(mySht.UsedRange.Rows.Count - 1).Offset(1)
        ReDim SQLAr(LBound(myAr) To UBound(myAr))
        For i = LBound(myAr) To UBound(myAr)
            For j = LBound(myAr, 2) To UBound(myAr, 2)
                If myAr(i, j) = Empty Then
                    mySQL = mySQL & "NULL, "
                Else
                    mySQL = mySQL & "'" & myAr(i, j) & "', "
                End If
            Next j
            mySQL = "INSERT INTO " & mySht.Name & " VALUES (" & Left(mySQL, Len(mySQL) - 2) & ")"
            SQLAr(i) = mySQL
            mySQL = ""
        Next i
        Set myFSO = CreateObject("Scripting.FileSystemObject")
        Set myTS = myFSO.CreateTextFile(Filename:=myPath & "\" & mySht.Name & ".sql", Overwrite:=True)
        For n = LBound(SQLAr) To UBound(SQLAr)
            myTS.writeline SQLAr(n)
        Next n
        myTS.Close
        Set myFSO = Nothing
        Set myTS = Nothing
    Next mySht
End Sub