{"id":4744,"date":"2026-08-15T14:40:48","date_gmt":"2026-08-15T05:40:48","guid":{"rendered":"https:\/\/best-biostatistics.com\/toukei-er\/?p=4744"},"modified":"2026-08-15T14:40:48","modified_gmt":"2026-08-15T05:40:48","slug":"what-to-do-when-the-proportional-odds-assumption-fails-parallel-slopes-verification-via-graphical-methods-and-partial-proportional-odds-models","status":"publish","type":"post","link":"https:\/\/best-biostatistics.com\/toukei-er\/entry\/what-to-do-when-the-proportional-odds-assumption-fails-parallel-slopes-verification-via-graphical-methods-and-partial-proportional-odds-models\/","title":{"rendered":"\u9806\u5e8f\u30ed\u30b8\u30b9\u30c6\u30a3\u30c3\u30af\u56de\u5e30\u3067\u6bd4\u4f8b\u30aa\u30c3\u30ba\u6027\u304c\u5d29\u308c\u305f\u3089\u3069\u3046\u3059\u308b\uff1f\u30b0\u30e9\u30d5\u6cd5\u306b\u3088\u308b\u5e73\u884c\u6027\u78ba\u8a8d\u3068\u90e8\u5206\u6bd4\u4f8b\u30aa\u30c3\u30ba\u30e2\u30c7\u30eb\u306e\u5b9f\u884c"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">\u300c\u5148\u751f\uff01\u75be\u60a3\u306e\u91cd\u75c7\u5ea6\uff08\u8efd\u75c7\/\u4e2d\u7b49\u75c7\/\u91cd\u75c7\/\u6700\u91cd\u75c7\uff09\u3092\u76ee\u7684\u5909\u6570\u306b\u3057\u3066\u9806\u5e8f\u30ed\u30b8\u30b9\u30c6\u30a3\u30c3\u30af\u56de\u5e30\u30e2\u30c7\u30eb\u3092\u7d44\u3082\u3046\u3068\u3057\u3001Brant test\uff08\u30d6\u30e9\u30f3\u30c8\u691c\u5b9a\uff09\u3092\u3084\u3063\u305f\u3089 $P &lt; 0.05$ \u3068\u5224\u5b9a\u3055\u308c\u3066\u3057\u307e\u3044\u307e\u3057\u305f\uff01\u6bd4\u4f8b\u30aa\u30c3\u30ba\u4eee\u5b9a\u304c\u5d29\u308c\u3066\u3044\u308b\u304b\u3089\u9806\u5e8f\u30ed\u30b8\u30b9\u30c6\u30a3\u30c3\u30af\u56de\u5e30\u306f\u8ae6\u3081\u3066\u3001\u591a\u9805\u30ed\u30b8\u30b9\u30c6\u30a3\u30c3\u30af\u56de\u5e30\u306b\u5909\u66f4\u3059\u308b\u3057\u304b\u306a\u3044\u3067\u3057\u3087\u3046\u304b\uff1f\u300d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u9806\u5e8f\u30ab\u30c6\u30b4\u30ea\u30ab\u30eb\u5909\u6570\u3092\u6271\u3046\u81e8\u5e8a\u7814\u7a76\u306b\u304a\u3044\u3066\u3001\u3053\u306e\u3088\u3046\u306a\u624b\u8a70\u307e\u308a\u611f\u306b\u76f4\u9762\u3059\u308b\u7814\u7a76\u8005\u306f\u975e\u5e38\u306b\u591a\u3044\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u3057\u304b\u3057\u3001Brant test \u306a\u3069\u306e\u7d71\u8a08\u7684\u4eee\u8aac\u691c\u5b9a\u3067 $P &lt; 0.05$ \u304c\u51fa\u305f\u304b\u3089\u3068\u3044\u3063\u3066\u3001\u3059\u3050\u306b\u9806\u5e8f\u30ed\u30b8\u30b9\u30c6\u30a3\u30c3\u30af\u56de\u5e30\u3092\u8ae6\u3081\u308b\u5fc5\u8981\u306f\u5168\u304f\u306a\u3044\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u7d71\u8a08\u7684\u4eee\u8aac\u691c\u5b9a\u306f\u30b5\u30f3\u30d7\u30eb\u30b5\u30a4\u30ba\uff08$N$\uff09\u306b\u6975\u3081\u3066\u5f37\u304f\u4f9d\u5b58\u3059\u308b\u305f\u3081\u3001\u5927\u6a19\u672c\u30c7\u30fc\u30bf\u3067\u306f\u81e8\u5e8a\u7684\u306b\u7121\u8996\u3067\u304d\u308b\u307b\u3069\u308f\u305a\u304b\u306a\u50be\u304d\u306e\u30ba\u30ec\u3067\u3082\u6a5f\u68b0\u7684\u306b $P &lt; 0.05$\uff08\u4eee\u5b9a\u7834\u7dbb\uff09\u3068\u306a\u308a\u3001\u9006\u306b\u5c0f\u6a19\u672c\u3067\u306f\u91cd\u5927\u306a\u50be\u304d\u306e\u30ba\u30ec\u3092\u898b\u904e\u3054\u3057\u3066\u3057\u307e\u3046\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6b63\u653b\u6cd5\u306f\u3001Cox\u56de\u5e30\u306e\u6bd4\u4f8b\u30cf\u30b6\u30fc\u30c9\u6027\u3092\u691c\u5b9a\u306e $P$ \u5024\u3067\u306f\u306a\u304fSchoenfeld\u6b8b\u5dee\u30d7\u30ed\u30c3\u30c8\u3067\u76ee\u8996\u78ba\u8a8d\u3059\u308b\u306e\u3068\u5168\u304f\u540c\u3058\u3088\u3046\u306b\u3001\u300c\u76ee\u7684\u5909\u6570\u3092\u5404\u95be\u5024\u3067\u4e8c\u5024\u5316\u3057\u3066\u72ec\u7acb\u5b9f\u884c\u3057\u305f\u4e8c\u5024\u30ed\u30b8\u30b9\u30c6\u30a3\u30c3\u30af\u56de\u5e30\u306e\u4fc2\u6570\u30d7\u30ed\u30c3\u30c8\uff08\u30b0\u30e9\u30d5\u6cd5\uff09\u300d\u3067\u8996\u899a\u7684\u306b\u5e73\u884c\u6027\u3092\u78ba\u8a8d\u3059\u308b\u3053\u3068\u3067\u3042\u308b\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u672c\u8a18\u4e8b\u3067\u306f\u3001\u691c\u5b9a\u4f9d\u5b58\u306e\u7f60\u304b\u3089\u30b0\u30e9\u30d5\u6cd5\u306b\u3088\u308b\u6bd4\u4f8b\u30aa\u30c3\u30ba\u6027\u306e\u6b63\u5f53\u306a\u8a55\u4fa1\u30a2\u30d7\u30ed\u30fc\u30c1\u3001R\u3067\u306e\u5177\u4f53\u7684\u306a\u53ef\u8996\u5316\u624b\u9806\u3001\u304a\u3088\u3073\u8ad6\u6587\u3067\u305d\u306e\u307e\u307e\u4f7f\u3048\u308b\u82f1\u6587\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u307e\u3067\u3092\u5fb9\u5e95\u89e3\u8aac\u3059\u308b\u3002<\/p>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\">1. \u306a\u305c\u300cBrant\u691c\u5b9a\u306e P &lt; 0.05\u300d\u3067\u9806\u5e8f\u30ed\u30b8\u30b9\u30c6\u30a3\u30c3\u30af\u56de\u5e30\u3092\u8ae6\u3081\u3066\u306f\u3044\u3051\u306a\u3044\u306e\u304b\uff1f<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u81e8\u5e8a\u73fe\u5834\u306e\u7f60\u30fb\u624b\u8a70\u307e\u308a\u611f<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u6539\u826fRankin\u30b9\u30b1\u30fc\u30eb\uff08mRS: 0\u301c6\uff09\u3001\u75c5\u7406\u5b66\u7684Grade\uff081\u301c4\uff09\u3001\u75be\u60a3\u91cd\u75c7\u5ea6\uff08\u8efd\u75c7\/\u4e2d\u7b49\u75c7\/\u91cd\u75c7\uff09\u306a\u3069\u306e\u9806\u5e8f\u30ab\u30c6\u30b4\u30ea\u5909\u6570\u3092\u76ee\u7684\u5909\u6570\u3068\u3057\u3066\u89e3\u6790\u3059\u308b\u969b\u3001\u7b2c\u4e00\u9078\u629e\u3068\u306a\u308b\u306e\u304c\u9806\u5e8f\u30ed\u30b8\u30b9\u30c6\u30a3\u30c3\u30af\u56de\u5e30\uff08Ordinal Logistic Regression \/ Proportional Odds Model\uff09\u3067\u3042\u308b\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6559\u79d1\u66f8\u901a\u308a\u306b\u6bd4\u4f8b\u30aa\u30c3\u30ba\u6027\u306e\u691c\u8a3c\u3068\u3057\u3066 Brant test \u3084 Likelihood Ratio test \u306a\u3069\u3092\u5b9f\u884c\u3057\u3001$P &lt; 0.05$ \u3068\u5224\u5b9a\u3055\u308c\u305f\u969b\u306b\u300c\u591a\u9805\u30ed\u30b8\u30b9\u30c6\u30a3\u30c3\u30af\u56de\u5e30\uff08Multinomial Logistic Regression\uff09\u300d\u3078\u56de\u907f\u3059\u308b\u30b1\u30fc\u30b9\u304c\u5f8c\u3092\u7d76\u305f\u306a\u3044\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u3057\u304b\u3057\u3001\u591a\u9805\u30ed\u30b8\u30b9\u30c6\u30a3\u30c3\u30af\u56de\u5e30\u306b\u5909\u66f4\u3059\u308b\u3068\u3001\u30ab\u30c3\u30c8\u30dd\u30a4\u30f3\u30c8\uff08\u5883\u754c\uff09\u3054\u3068\u306b\u5225\u3005\u306e\u30aa\u30c3\u30ba\u6bd4\uff08OR\uff09\u304c\u51fa\u529b\u3055\u308c\u3001\u5909\u6570\u306e\u6570\u304c\u81a8\u308c\u4e0a\u304c\u308b\u3002\u7d50\u679c\u3068\u3057\u3066\u81e8\u5e8a\u7684\u306a\u89e3\u91c8\u304c\u6975\u3081\u3066\u96e3\u89e3\u306b\u306a\u308a\u3001\u300c\u3069\u306e\u56e0\u5b50\u304c\u60a3\u8005\u306e\u91cd\u75c7\u5316\u3092\u6291\u3048\u308b\u306e\u304b\u300d\u3068\u3044\u3046\u672c\u8cea\u7684\u306a\u7d50\u8ad6\u304c\u307c\u3084\u3051\u3066\u3057\u307e\u3046\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u4eee\u8aac\u691c\u5b9a\uff08Brant test\u7b49\uff09\u3092\u304a\u52e7\u3081\u3057\u306a\u3044\u7d76\u5bfe\u7684\u7406\u7531\uff08\u30b5\u30f3\u30d7\u30eb\u30b5\u30a4\u30ba\u4f9d\u5b58\u6027\uff09<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u7d71\u8a08\u7684\u4eee\u8aac\u691c\u5b9a\u306b\u904e\u5ea6\u306b\u4f9d\u5b58\u3057\u3066\u306f\u3044\u3051\u306a\u3044\u7406\u7531\u306f\u3001<strong>\u691c\u5b9a\u7d50\u679c\u304c\u30b5\u30f3\u30d7\u30eb\u30b5\u30a4\u30ba\uff08<\/strong>$N$<strong>\uff09\u306b\u7ffb\u5f04\u3055\u308c\u308b\u304b\u3089<\/strong>\u3067\u3042\u308b\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u5927\u6a19\u672c\uff08Large Sample\uff09\u306e\u7f60<\/strong>:$N$ \u304c\u6570\u5343\u4eba\u301c\u6570\u4e07\u4eba\u898f\u6a21\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u7814\u7a76\u3067\u306f\u3001\u5404\u95be\u5024\u9593\u3067\u306e\u56de\u5e30\u4fc2\u6570\u306e\u30ba\u30ec\u304c\u81e8\u5e8a\u7684\u306b\u307b\u307c\u7121\u8996\u3067\u304d\u308b\u5fae\u5c0f\u306a\u3082\u306e\u3067\u3042\u3063\u3066\u3082\u3001\u691c\u51fa\u529b\u304c\u904e\u5270\u306b\u9ad8\u3044\u305f\u3081\u6a5f\u68b0\u7684\u306b $P &lt; 0.05$\uff08\u4eee\u5b9a\u68c4\u5374\uff09\u3068\u5224\u5b9a\u3055\u308c\u308b\u3002<\/li>\n\n\n\n<li><strong>\u5c0f\u6a19\u672c\uff08Small Sample\uff09\u306e\u7f60<\/strong>:\u30b5\u30f3\u30d7\u30eb\u30b5\u30a4\u30ba\u304c\u5c0f\u3055\u3044\u81e8\u5e8a\u7814\u7a76\u3067\u306f\u3001\u3042\u304b\u3089\u3055\u307e\u306b\u5e73\u884c\u6027\u304c\u5d29\u308c\u3066\u3044\u3066\u30e2\u30c7\u30eb\u306e\u9069\u7528\u304c\u5371\u3046\u3044\u72b6\u614b\u3067\u3042\u3063\u3066\u3082\u3001\u691c\u51fa\u529b\u4e0d\u8db3\u306b\u3088\u308a $P > 0.05$ \u3068\u306a\u308a\u300c\u4eee\u5b9a\u5145\u8db3\u300d\u3068\u8aa4\u8a8d\u3057\u3066\u3057\u307e\u3046\u3002<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u306e\u3088\u3046\u306b\u3001$P$ \u5024\u306e\u307f\u3067\u30e2\u30c7\u30eb\u306e\u826f\u5426\u3092\u5224\u5b9a\u3059\u308b\u3053\u3068\u306f\u975e\u5e38\u306b\u5371\u967a\u3067\u3042\u308b\u3002<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>\u203b\u88dc\u8db3\uff08\u95a2\u9023\u8a18\u4e8b\uff09<\/strong>:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cox\u56de\u5e30\u306b\u304a\u3044\u3066\u3082\u6bd4\u4f8b\u30cf\u30b6\u30fc\u30c9\u6027\u3092\u691c\u5b9a\u306e$P$\u5024\u3067\u306f\u306a\u304fSchoenfeld\u6b8b\u5dee\u30d7\u30ed\u30c3\u30c8\u3067\u78ba\u8a8d\u3059\u308b\u9244\u5247\u306b\u3064\u3044\u3066\u306f <a href=\"https:\/\/best-biostatistics.com\/toukei-er\/entry\/handling-non-proportional-hazards-in-cox-regression-with-r-a-guide-to-rmst-stratification-and-time-varying-models\/\">Cox\u56de\u5e30\u3067\u306e\u6bd4\u4f8b\u30cf\u30b6\u30fc\u30c9\u6027\u7834\u7dbb\u3068RMST<\/a> \u3092\u53c2\u7167\u3055\u308c\u305f\u3044\u3002<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">2. \u6bd4\u4f8b\u30aa\u30c3\u30ba\u6027\uff08Parallel Slopes\uff09\u306e\u76f4\u611f\u7684\u610f\u5473\u3068\u300c\u30b0\u30e9\u30d5\u6cd5\u300d\u306b\u3088\u308b\u6b63\u653b\u6cd5<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u6bd4\u4f8b\u30aa\u30c3\u30ba\u6027\uff08Parallel Slopes Assumption\uff09\u3068\u306f\u4f55\u304b\uff1f<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u9806\u5e8f\u30ed\u30b8\u30b9\u30c6\u30a3\u30c3\u30af\u56de\u5e30\uff08\u6bd4\u4f8b\u30aa\u30c3\u30ba\u30e2\u30c7\u30eb\uff09\u306f\u3001\u76ee\u7684\u5909\u6570\u306e\u5883\u754c\uff08Cutpoint\uff09\u3092\u3069\u3053\u306b\u8a2d\u5b9a\u3057\u3066\u3082\u3001\u8aac\u660e\u5909\u6570\uff08\u5171\u5909\u91cf\uff09\u304c\u53ca\u307c\u3059\u52b9\u679c\uff08\u5bfe\u6570\u30aa\u30c3\u30ba\u306e\u50be\u304d $\\beta$\uff09\u304c\u4e00\u5b9a\u3067\u3042\u308b\u3068\u3044\u3046\u524d\u63d0\u6761\u4ef6\u306b\u57fa\u3065\u3044\u3066\u3044\u308b\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u76ee\u7684\u5909\u6570\u3092 $Y \\in \\{1, 2, \\dots, K\\}$ \u3068\u3057\u305f\u3068\u304d\u3001\u95be\u5024 $k$\uff08$k = 1, 2, \\dots, K-1$\uff09\u306b\u304a\u3051\u308b\u7d2f\u7a4d\u78ba\u7387\u306e\u5bfe\u6570\u30aa\u30c3\u30ba\uff08Logit\uff09\u306f\u6b21\u5f0f\u3067\u8868\u3055\u308c\u308b\u3002<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>\u203b\u8a18\u53f7\u306e\u610f\u5473<\/strong>: \u3053\u3053\u3067\u4f7f\u308f\u308c\u3066\u3044\u308b\u300c$\\in$\u300d\u306f\u300c\u301c\u306b\u5c5e\u3059\u308b\u30fb\u301c\u306b\u542b\u307e\u308c\u308b\u300d\u3092\u610f\u5473\u3059\u308b\u6570\u5b66\u8a18\u53f7\u3067\u3042\u308b\u3002\u3064\u307e\u308a$Y \\in \\{1, 2, \\dots, K\\}$\u3068\u306f\u3001\u300c\u76ee\u7684\u5909\u6570$Y$\u304c$1, 2, \\dots, K$\u3068\u3044\u3046\u96e2\u6563\u7684\u306a\u30ab\u30c6\u30b4\u30ea\u5024\u306e\u3044\u305a\u308c\u304b\u3092\u3068\u308b\u300d\u3053\u3068\u3092\u8868\u3057\u3066\u3044\u308b\u3002<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">$$\\ln \\left( \\frac{P(Y \\ge k)}{P(Y &lt; k)} \\right) = \\alpha_k + \\beta_1 X_1 + \\beta_2 X_2 + \\dots + \\beta_p X_p$$<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u3053\u3067\u6ce8\u76ee\u3059\u3079\u304d\u306f\u3001\u5207\u7247 $\\alpha_k$ \u306f\u95be\u5024 $k$ \u3054\u3068\u306b\u5909\u5316\u3059\u308b\u304c\u3001\u56de\u5e30\u4fc2\u6570 $\\beta_1, \\beta_2, \\dots, \\beta_p$ \u306b\u306f\u4e0b\u4ed8\u304d\u6587\u5b57 $k$ \u304c\u3064\u3044\u3066\u3044\u306a\u3044\u70b9\u3067\u3042\u308b\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u3064\u307e\u308a\u3001\u300c\u30ab\u30c6\u30b4\u30ea1 vs 2\u4ee5\u4e0a\u300d\u300c\u30ab\u30c6\u30b4\u30ea1,2 vs 3\u4ee5\u4e0a\u300d\u3068\u3044\u3063\u305f\u3069\u306e\u5883\u754c\u3067\u5206\u5272\u3057\u3066\u3082\u3001\u5171\u5909\u91cf $X$ \u306e\u53ca\u307c\u3059\u30aa\u30c3\u30ba\u6bd4 $\\exp(\\beta)$\uff08\u50be\u304d\uff09\u306f\u5171\u901a\u3067\u3042\u308b\u3068\u898f\u5b9a\u3057\u3066\u3044\u308b\u3002\u3053\u308c\u304c\u300c\u5e73\u884c\u50be\u304d\u4eee\u5b9a\uff08Parallel Slopes Assumption\uff09\u300d\u3068\u547c\u3070\u308c\u308b\u6240\u4ee5\u3067\u3042\u308b\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u81e8\u5e8a\u7684\u306b\u7406\u89e3\u3059\u308b\u53ef\u8996\u5316\u30a2\u30d7\u30ed\u30fc\u30c1\uff08\u30b0\u30e9\u30d5\u6cd5\uff09\u306e\u4ed5\u7d44\u307f<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u6bd4\u4f8b\u30aa\u30c3\u30ba\u6027\u304c\u81e8\u5e8a\u7684\u306b\u8a31\u5bb9\u3067\u304d\u308b\u7bc4\u56f2\u3067\u4fdd\u6301\u3055\u308c\u3066\u3044\u308b\u304b\u3092\u5224\u5b9a\u3059\u308b\u30d9\u30b9\u30c8\u30a2\u30d7\u30ed\u30fc\u30c1\u306f\u3001\u95be\u5024\u5225\u306e\u4e8c\u5024\u30ed\u30b8\u30b9\u30c6\u30a3\u30c3\u30af\u56de\u5e30\u4fc2\u6570\u30d7\u30ed\u30c3\u30c8\uff08\u30b0\u30e9\u30d5\u6cd5\uff09\u3067\u3042\u308b\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u624b\u9806\u306f\u4ee5\u4e0b\u306e\u901a\u308a\u30b7\u30f3\u30d7\u30eb\u3067\u3042\u308b\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u9806\u5e8f\u76ee\u7684\u5909\u6570 $Y$ \u3092\u5404\u5883\u754c\uff08Cutpoint\uff09\u3067\u5206\u5272\u3057\u3001\u300c0 \/ 1\u300d\u306e\u4e8c\u5024\u5909\u6570\u3092 $K-1$ \u500b\u4f5c\u6210\u3059\u308b\uff08\u4f8b: $Y \\ge 2$, $Y \\ge 3$, $Y \\ge 4$\uff09\u3002<\/li>\n\n\n\n<li>\u305d\u308c\u305e\u308c\u306e\u4e8c\u5024\u5909\u6570\u306b\u5bfe\u3057\u3066\u3001\u72ec\u7acb\u3057\u3066\u901a\u5e38\u306e\u300c\u4e8c\u5024\u30ed\u30b8\u30b9\u30c6\u30a3\u30c3\u30af\u56de\u5e30\u30e2\u30c7\u30eb\uff08<code>glm<\/code>\uff09\u300d\u3092\u5b9f\u884c\u3059\u308b\u3002<\/li>\n\n\n\n<li>\u5404\u95be\u5024\u3067\u5f97\u3089\u308c\u305f\u8aac\u660e\u5909\u6570\u306e\u56de\u5e30\u4fc2\u6570 $\\beta$\uff08\u5bfe\u6570\u30aa\u30c3\u30ba\uff09\u307e\u305f\u306f\u30aa\u30c3\u30ba\u6bd4\uff08OR\uff09\u3068\u305d\u306e95%\u4fe1\u983c\u533a\u9593\u3092\u4e26\u3079\u3066\u30d7\u30ed\u30c3\u30c8\u3059\u308b\u3002<\/li>\n\n\n\n<li>\u5404\u5909\u6570\u306e\u4fc2\u6570\u304c\u30ab\u30c3\u30c8\u30dd\u30a4\u30f3\u30c8\u9593\u3067<strong>\u6982\u306d\u5e73\u884c\u30fb\u8fd1\u63a5\u3057\u3066\u3044\u308b\u304b\uff08\u91cd\u306a\u308a\u5408\u3063\u3066\u3044\u308b\u304b\uff09\u3092\u76ee\u8996\u8a55\u4fa1<\/strong>\u3059\u308b\u3002<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">\u70b9\u63a8\u5b9a\u5024\uff08$\\beta$\uff09\u306e\u4e26\u3073\u304c\u6982\u306d\u5e73\u5766\u3067\u3042\u308a\u300195%\u4fe1\u983c\u533a\u9593\u304c\u4e92\u3044\u306b\u5927\u304d\u304f\u91cd\u306a\u308a\u5408\u3063\u3066\u3044\u308c\u3070\u3001\u81e8\u5e8a\u7684\u306b\u6bd4\u4f8b\u30aa\u30c3\u30ba\u4eee\u5b9a\u306f\u5341\u5206\u6e80\u305f\u3055\u308c\u3066\u3044\u308b\u3068\u5224\u65ad\u3067\u304d\u308b\u3002<\/p>\n\n\n\n<div id=\"biost-754640933\" class=\"biost- biost-entity-placement\"><p style=\"text-align: center;\"><span style=\"font-size: 20px;\"><strong><a href=\"https:\/\/best-biostatistics.com\/kmhl\">\uff1e\uff1e\u3082\u3046\u7d71\u8a08\u3067\u60a9\u3080\u306e\u306f\u7d42\u308f\u308a\u306b\u3057\u307e\u305b\u3093\u304b\uff1f\u00a0<\/a><\/strong><\/span><\/p>\r\n<a href=\"https:\/\/best-biostatistics.com\/kmhl\"><img class=\"aligncenter wp-image-2794 size-full\" src=\"https:\/\/best-biostatistics.com\/wp\/wp-content\/uploads\/2023\/11\/bn_r_03.png\" alt=\"\" width=\"500\" height=\"327\" \/><\/a>\r\n<p style=\"text-align: center;\"><span style=\"color: #ff0000; font-size: 20px;\"><strong><span class=\"marker2\">\u21911\u4e07\u4eba\u4ee5\u4e0a\u306e\u533b\u7642\u5f93\u4e8b\u8005\u304c\u8cfc\u8aad\u4e2d<\/span><\/strong><\/span><\/p><\/div><h2 class=\"wp-block-heading\">3. \u6bd4\u4f8b\u30aa\u30c3\u30ba\u6027\u304c\u5927\u304d\u304f\u5d29\u308c\u3066\u3044\u305f\u5834\u5408\u306e\u81e8\u5e8a\u7684\u5bfe\u51e6\u6cd5<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u30b0\u30e9\u30d5\u6cd5\u306b\u3088\u308b\u8996\u899a\u7684\u78ba\u8a8d\u3067\u3001\u7279\u5b9a\u306e\u5909\u6570\u306e\u50be\u304d\u304c\u3042\u304b\u3089\u3055\u307e\u306b\u7570\u306a\u3063\u3066\u3044\u305f\uff08\u30ab\u30c3\u30c8\u30dd\u30a4\u30f3\u30c8\u306b\u3088\u3063\u3066\u52b9\u679c\u304c\u5168\u304f\u9006\u8ee2\u30fb\u6025\u5909\u52d5\u3057\u3066\u3044\u308b\uff09\u5834\u5408\u3001\u4ee5\u4e0b\u306e2\u3064\u306e\u5bfe\u51e6\u6cd5\u3092\u691c\u8a0e\u3059\u308b\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u5bfe\u51e6\u6cd51\uff1a\u90e8\u5206\u6bd4\u4f8b\u30aa\u30c3\u30ba\u30e2\u30c7\u30eb\uff08Partial Proportional Odds Model\uff09\u306e\u691c\u8a0e<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u6bd4\u4f8b\u30aa\u30c3\u30ba\u4eee\u5b9a\u304c\u4fdd\u305f\u308c\u3066\u3044\u308b\u5909\u6570\u306b\u306f\u5171\u901a\u306e\u4fc2\u6570 $\\beta$ \u3092\u5f53\u3066\u306f\u3081\u3001\u4eee\u5b9a\u304c\u5927\u304d\u304f\u5d29\u308c\u3066\u3044\u308b\u7279\u5b9a\u306e\u5909\u6570\u306e\u307f\u30ab\u30c3\u30c8\u30dd\u30a4\u30f3\u30c8\u3054\u3068\u306e\u7570\u306a\u308b\u4fc2\u6570 $\\beta_k$ \u3092\u8a31\u5bb9\u3059\u308b\u67d4\u8edf\u306a\u30e2\u30c7\u30eb\u3067\u3042\u308b\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">R\u306e <code>VGAM<\/code> \u30d1\u30c3\u30b1\u30fc\u30b8\uff08<code>vglm<\/code> \u95a2\u6570\uff09\u3084 <code>rms<\/code> \u30d1\u30c3\u30b1\u30fc\u30b8\uff08<code>blrm<\/code> \/ <code>clm<\/code> \u7b49\uff09\u3092\u7528\u3044\u308b\u3053\u3068\u3067\u69cb\u7bc9\u53ef\u80fd\u3067\u3042\u308a\u3001\u5168\u5909\u6570\u3092\u5206\u96e2\u3059\u308b\u591a\u9805\u30ed\u30b8\u30b9\u30c6\u30a3\u30c3\u30af\u56de\u5e30\u3088\u308a\u3082\u81e8\u5e8a\u7684\u89e3\u91c8\u6027\u3092\u9ad8\u304f\u4fdd\u3064\u3053\u3068\u304c\u3067\u304d\u308b\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u5bfe\u51e6\u6cd52\uff1a\u81e8\u5e8a\u7684\u306b\u672c\u8cea\u7684\u306a\u4e8c\u5024\u5316\u3078\u306e\u7d71\u5408<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u4f8b\u3048\u3070 mRS 0\u301c6\uff08\u8133\u5352\u4e2d\u306e\u6a5f\u80fd\u4e88\u5f8c\u8a55\u4fa1\uff09\u3092\u89e3\u6790\u3059\u308b\u969b\u3001\u81e8\u5e8a\u8a66\u9a13\u306e\u4e3b\u8981\u8a55\u4fa1\u9805\u76ee\u3068\u3057\u3066\u6a19\u6e96\u7684\u306b\u4f7f\u308f\u308c\u308b\u300c\u81e8\u5e8a\u7684\u826f\u597d\uff08mRS 0-2\uff09vs \u4e0d\u826f\uff08mRS 3-6\uff09\u300d\u306e\u3088\u3046\u306b\u3001\u533b\u5b66\u7684\u59a5\u5f53\u6027\u30fb\u5148\u884c\u7814\u7a76\u306e\u6a19\u6e96\u57fa\u6e96\u306b\u57fa\u3065\u3044\u305f\u5358\u4e00\u306e\u95be\u5024\u3067\u4e8c\u5024\u30ed\u30b8\u30b9\u30c6\u30a3\u30c3\u30af\u56de\u5e30\u306b\u7d71\u5408\u3059\u308b\u30a2\u30d7\u30ed\u30fc\u30c1\u3067\u3042\u308b\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">4. \u3010\u5b9f\u8df5R\u30b3\u30fc\u30c9\u3011\u95be\u5024\u5225\u4e8c\u5024\u30ed\u30b8\u30b9\u30c6\u30a3\u30c3\u30af\u56de\u5e30\u306e\u53ef\u8996\u5316\u3068 R \u5b9f\u88c5\uff08Step by Step\uff09<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u6a19\u6e96\u30d1\u30c3\u30b1\u30fc\u30b8 <code>MASS<\/code> \u304a\u3088\u3073 <code>tidyverse<\/code> \/ <code>ggplot2<\/code> \u3092\u7528\u3044\u3066\u3001\u7591\u4f3c\u81e8\u5e8a\u30c7\u30fc\u30bf\u3092\u7528\u3044\u305f\u9806\u5e8f\u30ed\u30b8\u30b9\u30c6\u30a3\u30c3\u30af\u56de\u5e30\u306e\u69cb\u7bc9\u3001\u95be\u5024\u5225\u4e8c\u5024\u30ed\u30b8\u30b9\u30c6\u30a3\u30c3\u30af\u56de\u5e30\u306e\u72ec\u7acb\u5b9f\u884c\u3001\u4fc2\u6570\u30d7\u30ed\u30c3\u30c8\u306e\u53ef\u8996\u5316\u307e\u3067\u3092 Step by Step \u3067\u89e3\u8aac\u3059\u308b\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1: \u7591\u4f3c\u81e8\u5e8a\u30c7\u30fc\u30bf\u306e\u4f5c\u6210\u3068\u78ba\u8a8d<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u60a3\u8005300\u4eba\u5206\u30014\u6bb5\u968e\u306e\u75be\u60a3\u91cd\u75c7\u5ea6\uff08<code>grade<\/code>: 1\/2\/3\/4\uff09\u3092\u76ee\u7684\u5909\u6570\u3068\u3057\u3001\u6cbb\u7642\u7fa4\uff08<code>treatment<\/code>\uff09\u3001\u5e74\u9f62\uff08<code>age<\/code>\uff09\u3001BMI\uff08<code>bmi<\/code>\uff09\u3092\u8aac\u660e\u5909\u6570\u3068\u3059\u308b\u7591\u4f3c\u30c7\u30fc\u30bf\u3092\u751f\u6210\u3059\u308b\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>library(tidyverse)\nlibrary(MASS)\n\n# \u4e71\u6570\u30b7\u30fc\u30c9\u306e\u8a2d\u5b9a\nset.seed(123)\nn &lt;- 300\n\n# \u7591\u4f3c\u81e8\u5e8a\u30c7\u30fc\u30bf\u306e\u4f5c\u6210\ndf_ordinal &lt;- tibble(\n  id = 1:n,\n  treatment = factor(sample(c(\"Control\", \"New\"), n, replace = TRUE), levels = c(\"Control\", \"New\")),\n  age = round(rnorm(n, mean = 65, sd = 10)),\n  bmi = round(rnorm(n, mean = 24, sd = 3), 1)\n) %&gt;%\n  mutate(\n    # \u9806\u5e8f\u76ee\u7684\u5909\u6570\u306e\u751f\u6210\uff08\u5bfe\u6570\u30aa\u30c3\u30ba\u306b\u57fa\u3065\u3044\u3066\u30ab\u30c6\u30b4\u30ea\u5316\uff09\n    latent_score = 0.8 * (treatment == \"New\") + 0.03 * (age - 65) - 0.05 * (bmi - 24) + rlogis(n),\n    grade = case_when(\n      latent_score &lt; 0.0 ~ 1,\n      latent_score &lt; 1.2 ~ 2,\n      latent_score &lt; 2.5 ~ 3,\n      TRUE ~ 4\n    ) %&gt;% factor(ordered = TRUE)\n  )\n\n# \u30c7\u30fc\u30bf\u69cb\u9020\u306e\u78ba\u8a8d\ntable(df_ordinal$grade)\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2: \u9806\u5e8f\u30ed\u30b8\u30b9\u30c6\u30a3\u30c3\u30af\u56de\u5e30\u306e\u69cb\u7bc9\u3068P\u5024\u306e\u7b97\u51fa\uff08<code>MASS::polr<\/code>\uff09<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><code>MASS::polr()<\/code> \u95a2\u6570\u3092\u7528\u3044\u3066\u3001\u6a19\u6e96\u7684\u306a\u9806\u5e8f\u30ed\u30b8\u30b9\u30c6\u30a3\u30c3\u30af\u56de\u5e30\u30e2\u30c7\u30eb\u3092\u69cb\u7bc9\u3057\u3001\u30aa\u30c3\u30ba\u6bd4\uff08OR\uff09\u304a\u3088\u307395%\u4fe1\u983c\u533a\u9593\u3092\u53d6\u5f97\u3059\u308b\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u9806\u5e8f\u30ed\u30b8\u30b9\u30c6\u30a3\u30c3\u30af\u56de\u5e30\uff08Proportional Odds Model\uff09\u306e\u5b9f\u884c\nfit_polr &lt;- polr(grade ~ treatment + age + bmi, data = df_ordinal, Hess = TRUE)\n\n# \u30e2\u30c7\u30eb\u6982\u8981\u306e\u78ba\u8a8d\nsummary(fit_polr)\n\n# \u4fc2\u6570\u30fb\u6a19\u6e96\u8aa4\u5dee\u30fbt\u5024\u304a\u3088\u307395%\u4fe1\u983c\u533a\u9593\u306e\u53d6\u5f97\u30fb\u7b97\u51fa\nord_coef &lt;- summary(fit_polr)$coefficients\nord_ci &lt;- confint(fit_polr)\n\n# t\u5024\uff08\u8868\u8a18\u306ft\u3060\u304c\u4e2d\u8eab\u306fz\u5024\uff1dWald\u7d71\u8a08\u91cf\uff09\u304b\u3089\u6a19\u6e96\u6b63\u898f\u5206\u5e03\u306b\u57fa\u3065\u304dP\u5024\u3092\u7b97\u51fa\np_values &lt;- pnorm(abs(ord_coef&#91;, \"t value\"]), lower.tail = FALSE)\n\n# \u30aa\u30c3\u30ba\u6bd4\uff08OR\uff09\u30fb95\uff05\u4fe1\u983c\u533a\u9593\u30fbP\u5024\u306e\u7d71\u5408\u30c6\u30fc\u30d6\u30eb\u4f5c\u6210\ndf_polr_res &lt;- tibble(\n  term = rownames(ord_ci),\n  estimate = ord_coef&#91;rownames(ord_ci), \"Value\"],\n  std_error = ord_coef&#91;rownames(ord_ci), \"Std. Error\"],\n  t_value = ord_coef&#91;rownames(ord_ci), \"t value\"],\n  p_value = p_values&#91;rownames(ord_ci)],\n  or = exp(estimate),\n  or_lower = exp(ord_ci&#91;, 1]),\n  or_upper = exp(ord_ci&#91;, 2])\n)\n\nprint(df_polr_res)\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Step 3: \u5404\u95be\u5024\u3067\u306e\u4e8c\u5024\u30ed\u30b8\u30b9\u30c6\u30a3\u30c3\u30af\u56de\u5e30\u306e\u72ec\u7acb\u5b9f\u884c\u3068\u4fc2\u6570\u62bd\u51fa<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u76ee\u7684\u5909\u6570 <code>grade<\/code>\uff081\u301c4\uff09\u306e\u5404\u95be\u5024\uff08<code>grade &gt;= 2<\/code>, <code>grade &gt;= 3<\/code>, <code>grade &gt;= 4<\/code>\uff09\u3067\u300c0 \/ 1\u300d\u306b\u4e8c\u5024\u5316\u3057\u3001\u72ec\u7acb\u3057\u3066 <code>glm(family = binomial)<\/code> \u3092\u5b9f\u884c\u3059\u308b\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u30ab\u30c3\u30c8\u30dd\u30a4\u30f3\u30c8\u30ea\u30b9\u30c8\uff082\u4ee5\u4e0a\u30013\u4ee5\u4e0a\u30014\uff09\ncutpoints &lt;- c(2, 3, 4)\n\n# \u95be\u5024\u5225\u4e8c\u5024\u30ed\u30b8\u30b9\u30c6\u30a3\u30c3\u30af\u56de\u5e30\u306e\u4e00\u62ec\u5b9f\u884c\u3068\u4fc2\u6570\u62bd\u51fa\ndf_binary_res &lt;- map_dfr(cutpoints, function(k) {\n  # \u95be\u5024 k \u3067\u4e8c\u5024\u5316\u30c7\u30fc\u30bf\u3092\u52d5\u7684\u4f5c\u6210\n  df_temp &lt;- df_ordinal %&gt;%\n    mutate(y_binary = if_else(as.numeric(grade) &gt;= k, 1, 0))\n  \n  # \u4e8c\u5024\u30ed\u30b8\u30b9\u30c6\u30a3\u30c3\u30af\u56de\u5e30\n  fit_bin &lt;- glm(y_binary ~ treatment + age + bmi, data = df_temp, family = binomial)\n  \n  # \u4fc2\u6570\u3068\u4fe1\u983c\u533a\u9593\u306e\u62bd\u51fa\n  ci_bin &lt;- confint(fit_bin)\n  coef_bin &lt;- summary(fit_bin)$coefficients\n  \n  tibble(\n    cutpoint = paste0(\"Y &gt;= \", k),\n    term = names(coef(fit_bin))&#91;-1], # \u5207\u7247\u3092\u9664\u5916\n    estimate = coef_bin&#91;-1, \"Estimate\"],\n    std_error = coef_bin&#91;-1, \"Std. Error\"],\n    conf_low = ci_bin&#91;-1, 1],\n    conf_high = ci_bin&#91;-1, 2]\n  )\n})\n\nprint(df_binary_res)\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Step 4: \u4fc2\u6570\u30d7\u30ed\u30c3\u30c8\uff08<code>ggplot2<\/code>\uff09\u306b\u3088\u308b\u5e73\u884c\u6027\u306e\u8996\u899a\u7684\u8a55\u4fa1<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u5404\u95be\u5024\u3054\u3068\u306e\u56de\u5e30\u4fc2\u6570\uff08\u5bfe\u6570\u30aa\u30c3\u30ba $\\beta$\uff09\u306895%\u4fe1\u983c\u533a\u9593\u3092\u30d7\u30ed\u30c3\u30c8\u3057\u3001\u76f4\u7dda\u30fb\u5e73\u5766\u3055\u306e\u78ba\u8a8d\uff08\u8996\u899a\u7684\u8a55\u4fa1\uff09\u3092\u884c\u3046\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u4fc2\u6570\u30d7\u30ed\u30c3\u30c8\uff08\u5e73\u884c\u6027\u306e\u8996\u899a\u7684\u8a55\u4fa1\uff09\u306e\u63cf\u753b\nggplot(df_binary_res, aes(x = cutpoint, y = estimate, color = term, group = term)) +\n  geom_point(position = position_dodge(width = 0.3), size = 3) +\n  geom_errorbar(aes(ymin = conf_low, ymax = conf_high), width = 0.15, position = position_dodge(width = 0.3)) +\n  geom_line(position = position_dodge(width = 0.3), linetype = \"dashed\") +\n  facet_wrap(~ term, scales = \"free_y\") +\n  theme_minimal() +\n  labs(\n    title = \"Parallel Slopes Assessment via Binary Logistic Regressions\",\n    subtitle = \"Log-odds coefficients across cumulative cutpoints (Y &gt;= k)\",\n    x = \"Cutpoint Threshold\",\n    y = \"Regression Coefficient (Log-Odds)\",\n    color = \"Variable\"\n  ) +\n  theme(legend.position = \"none\")\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u30d7\u30ed\u30c3\u30c8\u4e0a\u3067\u3001\u5404\u5909\u6570\u306e\u56de\u5e30\u4fc2\u6570\uff08\u70b9\uff09\u304c\u95be\u5024\u9593\u3067\u5927\u304d\u304f\u62e1\u6563\u30fb\u9006\u8ee2\u3059\u308b\u3053\u3068\u306a\u304f\u6a2a\u3070\u3044\uff08\u5e73\u884c\uff09\u306b\u63a8\u79fb\u3057\u300195%\u4fe1\u983c\u533a\u9593\u306e\u5e2f\u304c\u5341\u5206\u306b\u91cd\u306a\u308a\u5408\u3063\u3066\u3044\u308c\u3070\u3001\u6bd4\u4f8b\u30aa\u30c3\u30ba\u4eee\u5b9a\u306f\u59a5\u5f53\u3067\u3042\u308b\u3068\u81ea\u4fe1\u3092\u6301\u3063\u3066\u5224\u5b9a\u3067\u304d\u308b\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"800\" height=\"600\" src=\"https:\/\/best-biostatistics.com\/toukei-er\/wp-content\/uploads\/2026\/08\/image-11.png\" alt=\"\" class=\"wp-image-4745\" srcset=\"https:\/\/best-biostatistics.com\/toukei-er\/wp-content\/uploads\/2026\/08\/image-11.png 800w, https:\/\/best-biostatistics.com\/toukei-er\/wp-content\/uploads\/2026\/08\/image-11-300x225.png 300w, https:\/\/best-biostatistics.com\/toukei-er\/wp-content\/uploads\/2026\/08\/image-11-768x576.png 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">5. \u8ad6\u6587\u3067\u305d\u306e\u307e\u307e\u4f7f\u3048\u308b\u82f1\u6587\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\uff08Methods &amp; Results\uff09<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u8ad6\u6587\u306e Methods \u304a\u3088\u3073 Results \u30bb\u30af\u30b7\u30e7\u30f3\u306b\u8a18\u8ff0\u3059\u308b\u6a19\u6e96\u7684\u306a\u82f1\u6587\u8868\u73fe\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u793a\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Methods \u30bb\u30af\u30b7\u30e7\u30f3\u82f1\u6587\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8<\/h3>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">&#8220;An ordinal logistic regression (proportional odds) model was fitted to evaluate the association between baseline covariates and disease severity grades. The proportional odds assumption was assessed visually by estimating separate binary logistic regression models at each cumulative threshold (Grade &gt;= 2, Grade &gt;= 3, and Grade &gt;= 4) and inspecting the graphical parallelism of the estimated regression coefficients, rather than relying solely on sample-size-dependent formal hypothesis tests.&#8221;<\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">Results \u30bb\u30af\u30b7\u30e7\u30f3\u82f1\u6587\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8<\/h3>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">&#8220;Separate binary logistic regressions across all cumulative thresholds demonstrated consistent effect estimates across cutpoints, confirming the adequacy of the proportional odds assumption for the primary model. In the ordinal logistic regression model, treatment with the new agent was significantly associated with a higher likelihood of achieving lower severity grades (Common Odds Ratio [OR], 2.02; 95% CI, 1.33 to 3.08; P &lt; 0.001).&#8221;<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">6. \u307e\u3068\u3081\uff06\u4e00\u62ec\u30b3\u30d4\u30da\u7528R\u30b9\u30af\u30ea\u30d7\u30c8<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u672c\u8a18\u4e8b\u306e\u30dd\u30a4\u30f3\u30c8\u304a\u3055\u3089\u3044<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Brant\u691c\u5b9a\u306e<\/strong> $P &lt; 0.05$ <strong>\u3067\u614c\u3066\u3066\u30e2\u30c7\u30eb\u3092\u7834\u68c4\u3057\u306a\u3044<\/strong>: \u7d71\u8a08\u7684\u691c\u5b9a\u306f\u30b5\u30f3\u30d7\u30eb\u30b5\u30a4\u30ba\u306b\u4f9d\u5b58\u3057\u3001\u5927\u6a19\u672c\u3067\u306f\u5fae\u5c0f\u306a\u30ba\u30ec\u3067\u6709\u610f\u3068\u306a\u308a\u3001\u5c0f\u6a19\u672c\u3067\u306f\u691c\u51fa\u529b\u4e0d\u8db3\u306b\u306a\u308b\u3002<\/li>\n\n\n\n<li><strong>\u6b63\u653b\u6cd5\u306f\u300c\u95be\u5024\u5225\u4e8c\u5024\u30ed\u30b8\u30b9\u30c6\u30a3\u30c3\u30af\u56de\u5e30\u306e\u4fc2\u6570\u30d7\u30ed\u30c3\u30c8\u300d<\/strong>: \u76ee\u7684\u5909\u6570\u3092\u5206\u5272\u3057\u3066\u5404\u95be\u5024\u3067 <code>glm<\/code> \u3092\u5b9f\u884c\u3057\u3001\u4fc2\u6570\u304c\u6982\u306d\u5e73\u884c\u30fb\u8fd1\u63a5\u3057\u3066\u3044\u308b\u304b\u3092\u76ee\u8996\u78ba\u8a8d\u3059\u308b\u3002<\/li>\n\n\n\n<li><strong>\u5927\u5e45\u306a\u7834\u7dbb\u6642\u306f\u90e8\u5206\u6bd4\u4f8b\u30aa\u30c3\u30ba\u30e2\u30c7\u30eb\u3084\u81e8\u5e8a\u7684\u4e8c\u5024\u5316\u3078<\/strong>: \u8996\u899a\u7684\u8a55\u4fa1\u3067\u5927\u304d\u304f\u50be\u304d\u304c\u7570\u306a\u3063\u3066\u3044\u308b\u5834\u5408\u306f\u3001\u7279\u5b9a\u5909\u6570\u306e\u307f\u5225\u4fc2\u6570\u3092\u8a31\u5bb9\u3059\u308b\u90e8\u5206\u6bd4\u4f8b\u30aa\u30c3\u30ba\u30e2\u30c7\u30eb\u3084\u5358\u4e00\u306e\u81e8\u5e8a\u7684\u95be\u5024\u3078\u306e\u7d71\u5408\u3092\u691c\u8a0e\u3059\u308b\u3002<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">\u4e00\u62ec\u5b9f\u884c\u7528R\u30b9\u30af\u30ea\u30d7\u30c8<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u4ee5\u4e0b\u306e\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc\uff06\u30da\u30fc\u30b9\u30c8\u3059\u308b\u3053\u3068\u3067\u3001\u7591\u4f3c\u30c7\u30fc\u30bf\u4f5c\u6210\u304b\u3089\u9806\u5e8f\u30ed\u30b8\u30b9\u30c6\u30a3\u30c3\u30af\u56de\u5e30\u3001\u95be\u5024\u5225\u4e8c\u5024\u30ed\u30b8\u30b9\u30c6\u30a3\u30c3\u30af\u56de\u5e30\u3001\u4fc2\u6570\u30d7\u30ed\u30c3\u30c8\u306e\u63cf\u753b\u307e\u3067\u3092\u4e00\u6c17\u901a\u8cab\u3067\u5b9f\u884c\u3067\u304d\u308b\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># ==============================================================================\n# \u9806\u5e8f\u30ed\u30b8\u30b9\u30c6\u30a3\u30c3\u30af\u56de\u5e30\uff1a\u6bd4\u4f8b\u30aa\u30c3\u30ba\u6027\u306e\u8996\u899a\u7684\u78ba\u8a8d\uff08\u30b0\u30e9\u30d5\u6cd5\uff09\u4e00\u62ec\u5b9f\u884c\u30b9\u30af\u30ea\u30d7\u30c8\n# \u30d1\u30c3\u30b1\u30fc\u30b8: MASS, tidyverse\n# ==============================================================================\n\nif (!requireNamespace(\"MASS\", quietly = TRUE)) install.packages(\"MASS\")\nif (!requireNamespace(\"tidyverse\", quietly = TRUE)) install.packages(\"tidyverse\")\n\nlibrary(tidyverse)\nlibrary(MASS)\n\n# 1. \u7591\u4f3c\u81e8\u5e8a\u30c7\u30fc\u30bf\u306e\u4f5c\u6210\nset.seed(123)\nn &lt;- 300\n\ndf_ordinal &lt;- tibble(\n  id = 1:n,\n  treatment = factor(sample(c(\"Control\", \"New\"), n, replace = TRUE), levels = c(\"Control\", \"New\")),\n  age = round(rnorm(n, mean = 65, sd = 10)),\n  bmi = round(rnorm(n, mean = 24, sd = 3), 1)\n) %>%\n  mutate(\n    latent_score = 0.8 * (treatment == \"New\") + 0.03 * (age - 65) - 0.05 * (bmi - 24) + rlogis(n),\n    grade = case_when(\n      latent_score &lt; 0.0 ~ 1,\n      latent_score &lt; 1.2 ~ 2,\n      latent_score &lt; 2.5 ~ 3,\n      TRUE ~ 4\n    ) %>% factor(ordered = TRUE)\n  )\n\n# 2. \u9806\u5e8f\u30ed\u30b8\u30b9\u30c6\u30a3\u30c3\u30af\u56de\u5e30\u306e\u69cb\u7bc9\ncat(\"\\n--- \u9806\u5e8f\u30ed\u30b8\u30b9\u30c6\u30a3\u30c3\u30af\u56de\u5e30\u30e2\u30c7\u30eb\u69cb\u7bc9 ---\\n\")\nfit_polr &lt;- polr(grade ~ treatment + age + bmi, data = df_ordinal, Hess = TRUE)\nsummary(fit_polr)\n\n# \u4fc2\u6570\u30fb\u6a19\u6e96\u8aa4\u5dee\u30fbt\u5024\u304a\u3088\u307395%\u4fe1\u983c\u533a\u9593\u306e\u53d6\u5f97\u30fb\u7b97\u51fa\nord_coef &lt;- summary(fit_polr)$coefficients\nord_ci &lt;- confint(fit_polr)\n\n# t\u5024\uff08\u8868\u8a18\u306ft\u3060\u304c\u4e2d\u8eab\u306fz\u5024\uff1dWald\u7d71\u8a08\u91cf\uff09\u304b\u3089\u6a19\u6e96\u6b63\u898f\u5206\u5e03\u306b\u57fa\u3065\u304dP\u5024\u3092\u7b97\u51fa\np_values &lt;- pnorm(abs(ord_coef&#91;, \"t value\"]), lower.tail = FALSE)\n\n# \u30aa\u30c3\u30ba\u6bd4\uff08OR\uff09\u30fb95\uff05\u4fe1\u983c\u533a\u9593\u30fbP\u5024\u306e\u7d71\u5408\u30c6\u30fc\u30d6\u30eb\u4f5c\u6210\ndf_polr_res &lt;- tibble(\n  term = rownames(ord_ci),\n  estimate = ord_coef&#91;rownames(ord_ci), \"Value\"],\n  std_error = ord_coef&#91;rownames(ord_ci), \"Std. Error\"],\n  t_value = ord_coef&#91;rownames(ord_ci), \"t value\"],\n  p_value = p_values&#91;rownames(ord_ci)],\n  or = exp(estimate),\n  or_lower = exp(ord_ci&#91;, 1]),\n  or_upper = exp(ord_ci&#91;, 2])\n)\n\nprint(df_polr_res)\n\n# 3. \u95be\u5024\u5225\u4e8c\u5024\u30ed\u30b8\u30b9\u30c6\u30a3\u30c3\u30af\u56de\u5e30\u306e\u5b9f\u884c\u3068\u4fc2\u6570\u62bd\u51fa\ncutpoints &lt;- c(2, 3, 4)\n\ndf_binary_res &lt;- map_dfr(cutpoints, function(k) {\n  df_temp &lt;- df_ordinal %>%\n    mutate(y_binary = if_else(as.numeric(grade) >= k, 1, 0))\n  \n  fit_bin &lt;- glm(y_binary ~ treatment + age + bmi, data = df_temp, family = binomial)\n  ci_bin &lt;- confint(fit_bin)\n  coef_bin &lt;- summary(fit_bin)$coefficients\n  \n  tibble(\n    cutpoint = paste0(\"Y >= \", k),\n    term = names(coef(fit_bin))&#91;-1],\n    estimate = coef_bin&#91;-1, \"Estimate\"],\n    std_error = coef_bin&#91;-1, \"Std. Error\"],\n    conf_low = ci_bin&#91;-1, 1],\n    conf_high = ci_bin&#91;-1, 2]\n  )\n})\n\ncat(\"\\n--- \u95be\u5024\u5225\u4e8c\u5024\u30ed\u30b8\u30b9\u30c6\u30a3\u30c3\u30af\u56de\u5e30 \u4fc2\u6570\u4e00\u89a7 ---\\n\")\nprint(df_binary_res)\n\n# 4. \u4fc2\u6570\u30d7\u30ed\u30c3\u30c8\uff08\u5e73\u884c\u6027\u306e\u53ef\u8996\u5316\uff09\u306e\u4f5c\u6210\np_parallel &lt;- ggplot(df_binary_res, aes(x = cutpoint, y = estimate, color = term, group = term)) +\n  geom_point(position = position_dodge(width = 0.3), size = 3) +\n  geom_errorbar(aes(ymin = conf_low, ymax = conf_high), width = 0.15, position = position_dodge(width = 0.3)) +\n  geom_line(position = position_dodge(width = 0.3), linetype = \"dashed\") +\n  facet_wrap(~ term, scales = \"free_y\") +\n  theme_minimal() +\n  labs(\n    title = \"Parallel Slopes Assessment via Binary Logistic Regressions\",\n    subtitle = \"Log-odds coefficients across cumulative cutpoints (Y >= k)\",\n    x = \"Cutpoint Threshold\",\n    y = \"Regression Coefficient (Log-Odds)\",\n    color = \"Variable\"\n  ) +\n  theme(legend.position = \"none\")\n\n# \u30d7\u30ed\u30c3\u30c8\u306e\u8868\u793a\nprint(p_parallel)\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u304a\u3059\u3059\u3081\u66f8\u7c4d<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/amzn.to\/4x0RGmV\">\u8ab0\u3082\u6559\u3048\u3066\u304f\u308c\u306a\u304b\u3063\u305f\u3000\u533b\u7642\u7d71\u8a08\u306e\u4f7f\u3044\u5206\u3051\u301c\u8ff7\u3044\u3084\u3059\u3044\u89e3\u6790\u624b\u6cd5\u306e\u9078\u3073\u65b9\u304c\uff0cR\u3067\u5b9f\u611f\u3057\u306a\u304c\u3089\u308f\u304b\u308b\uff01<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u300c\u5148\u751f\uff01\u75be\u60a3\u306e\u91cd\u75c7\u5ea6\uff08\u8efd\u75c7\/\u4e2d\u7b49\u75c7\/\u91cd\u75c7\/\u6700\u91cd\u75c7\uff09\u3092\u76ee\u7684\u5909\u6570\u306b\u3057\u3066\u9806\u5e8f\u30ed\u30b8\u30b9\u30c6\u30a3\u30c3\u30af\u56de\u5e30\u30e2\u30c7\u30eb\u3092\u7d44\u3082\u3046\u3068\u3057\u3001Brant test\uff08\u30d6\u30e9\u30f3\u30c8\u691c\u5b9a\uff09\u3092\u3084\u3063\u305f\u3089 $P &lt; 0.05$ \u3068\u5224\u5b9a\u3055\u308c\u3066\u3057\u307e\u3044\u307e\u3057\u305f\uff01\u6bd4\u4f8b\u30aa\u30c3\u30ba [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":4746,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"swell_btn_cv_data":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[94],"tags":[],"class_list":["post-4744","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-94"],"jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/best-biostatistics.com\/toukei-er\/wp-content\/uploads\/2026\/08\/\u6bd4\u4f8b\u30aa\u30c3\u30ba\u6027-scaled.jpeg","_links":{"self":[{"href":"https:\/\/best-biostatistics.com\/toukei-er\/wp-json\/wp\/v2\/posts\/4744","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/best-biostatistics.com\/toukei-er\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/best-biostatistics.com\/toukei-er\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/best-biostatistics.com\/toukei-er\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/best-biostatistics.com\/toukei-er\/wp-json\/wp\/v2\/comments?post=4744"}],"version-history":[{"count":1,"href":"https:\/\/best-biostatistics.com\/toukei-er\/wp-json\/wp\/v2\/posts\/4744\/revisions"}],"predecessor-version":[{"id":4747,"href":"https:\/\/best-biostatistics.com\/toukei-er\/wp-json\/wp\/v2\/posts\/4744\/revisions\/4747"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/best-biostatistics.com\/toukei-er\/wp-json\/wp\/v2\/media\/4746"}],"wp:attachment":[{"href":"https:\/\/best-biostatistics.com\/toukei-er\/wp-json\/wp\/v2\/media?parent=4744"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/best-biostatistics.com\/toukei-er\/wp-json\/wp\/v2\/categories?post=4744"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/best-biostatistics.com\/toukei-er\/wp-json\/wp\/v2\/tags?post=4744"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}