geepack:: geeglm `对比<-`(`*tmp*`, value = contr.funs[1 + isOF[nn]]): contrasts can be applied only to factors with 2 or more levels

问题描述 投票:0回答:1
我正在使用

geeglm()

 命令通过 GEE 拟合逻辑回归模型,打算合并非结构化相关矩阵来捕获参与者内的相关性(对于具有两只合格眼睛的受试者)。但是,每当我尝试将相关结构指定为非结构化时,我都会遇到错误。相反,当我将 
corstr
 参数设置为“可交换”时,代码运行没有问题。由于簇大小最多为 2,因此可交换相关结构和非结构化相关结构都应该产生相同的结果,只需要估计一个 alpha。因此,我很困惑为什么一个有效而另一个无效。

请看下面的例子:

library(tidyverse) library(geepack)
example <- structure(list(patient = structure(c(1L, 2L, 2L, 3L, 4L, 5L, 
5L, 6L, 7L, 8L, 8L, 9L, 10L, 11L, 12L, 12L, 13L, 14L, 15L, 15L, 
16L, 16L, 17L, 18L, 19L, 20L, 20L, 21L, 21L, 22L, 23L, 24L, 24L, 
25L, 26L, 26L, 27L, 28L, 28L, 29L, 30L, 31L, 32L, 33L, 34L, 35L, 
35L, 36L, 37L, 38L, 38L, 39L, 39L, 40L, 41L, 41L, 42L, 43L, 43L, 
44L), .Label = c("1", "2", "3", "4", "5", "6", "9", "11", "12", 
"14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "25", 
"27", "28", "29", "30", "31", "32", "35", "36", "37", "38", "39", 
"40", "42", "45", "47", "48", "49", "50", "51", "52", "53", "54", 
"55", "56", "57", "59", "61", "62", "63", "64", "65", "66", "67", 
"68", "69", "70", "71", "72", "74", "75", "76", "78", "80", "81", 
"82", "83", "86", "87", "89", "90", "91", "92", "93", "94", "95", 
"99", "100", "101", "102", "103", "104", "105", "107", "108", 
"109", "110", "111", "113", "114", "116", "117", "118", "120", 
"122", "123", "124", "125", "128", "129", "130", "131", "133", 
"134", "136", "137", "139", "140", "141", "143", "144", "145", 
"146", "150", "153", "154", "155", "157", "158", "159", "160", 
"161", "163", "164", "165", "166", "167", "168", "169", "170", 
"173", "174", "175", "176", "177", "178", "181", "182", "183", 
"185", "190", "192", "193", "195", "196", "198", "199", "200", 
"201", "202", "203", "204", "205", "206", "207", "208", "209", 
"210", "212", "213", "214", "215", "216", "217", "218", "219", 
"220", "221", "224", "225", "229", "230", "231", "233", "234", 
"235", "236", "237", "238", "239", "241", "242", "243", "244", 
"245", "246", "247", "249", "251", "252", "253", "254", "255", 
"256", "257", "258", "260", "261", "262", "264", "266", "267", 
"268", "269", "270", "271", "272", "273", "274", "275", "276", 
"277", "278", "281", "282", "284", "285", "287", "288", "289", 
"290", "291", "292", "296", "297", "298", "299", "300", "301", 
"302", "304", "305", "307", "309", "310", "312", "313", "318", 
"320", "322", "323", "324", "325", "326", "327", "330", "331", 
"334", "335", "336", "337", "338", "343", "344", "345", "346", 
"347", "348", "351", "353", "356", "358", "359", "362", "363", 
"364", "365", "366", "367", "368", "370", "371", "373", "375", 
"376", "377", "380", "381", "382", "383", "384", "385", "386", 
"387", "388", "389", "390", "392", "393", "395", "396", "398", 
"402", "403", "404", "406", "407", "408", "409", "411", "412", 
"413", "414", "416", "417", "422", "423", "424", "425", "426", 
"427", "428", "430", "433", "434", "435", "436", "437", "439", 
"440", "441", "442", "443", "444", "445", "446", "447", "449", 
"451", "452", "453", "454", "457", "461", "465", "467", "468", 
"469", "471", "472", "473", "476", "479", "480", "484", "485", 
"486", "490", "493", "494", "500", "503", "507", "511", "514", 
"515", "516", "517", "518", "525", "526", "527", "530", "536", 
"537", "540", "541", "542", "543", "544", "548", "549", "553", 
"560", "562", "563", "564", "565", "569", "570", "575", "576", 
"580", "581", "582", "583", "584", "587", "588", "589", "590", 
"593", "595", "597", "598", "601", "604", "609", "613", "614", 
"623", "624", "629", "630", "632", "633", "634", "635", "636", 
"637", "639", "640", "641", "642", "643", "644", "645", "646", 
"648", "650", "653", "654", "657", "659", "660", "661", "665", 
"669", "670", "671", "674", "675", "677", "679", "680", "683", 
"684", "690", "691", "692", "693", "694", "699", "703", "705", 
"706", "707", "708", "709", "710", "711", "712", "713", "714", 
"716", "720", "721", "722", "726", "727", "729", "731", "733", 
"734", "736", "737", "741", "743", "745", "747", "748", "749", 
"751", "753", "754", "755", "756", "758", "759", "760", "761", 
"763", "764", "765", "768", "769", "770", "773", "775", "776", 
"777", "778", "779", "780", "782", "783", "784", "786", "787", 
"788", "789", "793", "794", "796", "797", "798", "799", "801", 
"803", "804", "805", "807", "808", "809", "810", "811", "813", 
"814", "817", "818", "821", "822", "823", "824", "825", "826", 
"827", "828", "830", "833", "834", "835", "838", "841", "842", 
"845", "846", "847", "848", "851", "853", "854", "855", "857", 
"859", "861", "864", "865", "868", "869", "870", "872", "873", 
"879", "883", "884", "888", "890", "891", "894", "898", "901", 
"903", "908", "909", "914", "915", "919", "920", "925", "927", 
"930", "931", "932", "933", "934", "938", "939", "940", "942", 
"944", "947", "949", "950", "951", "952", "953", "955", "957", 
"959", "960", "961", "963", "966", "970", "971", "976", "977", 
"978", "979", "981", "985", "986", "989", "991", "992", "998", 
"1000", "1001", "1002", "1003", "1004", "1006", "1011", "1012", 
"1013", "1014", "1016", "1018", "1019", "1024", "1026", "1027", 
"1028", "1029", "1030", "1031", "1032", "1034", "1035", "1036", 
"1037", "1038", "1040", "1041", "1042", "1043", "1047", "1049", 
"1050", "1051", "1054", "1055", "1056", "1057", "1059", "1060", 
"1061", "1062", "1064", "1065", "1067", "1068", "1071", "1072", 
"1077", "1080", "1081", "1082", "1084", "1086", "1088", "1089", 
"1091", "1094", "1098", "1100", "1111", "1112", "1118", "1119", 
"1120", "1129", "1139", "1145", "1155", "1161", "1167", "1176", 
"1178", "1181", "1184", "1185", "1188", "1190", "1192", "1196", 
"1197", "1199", "1200", "1201", "1206", "1209", "1211", "1225", 
"1229", "1231", "1234", "1235", "1236", "1238", "1239", "1240", 
"1241", "1242", "1243", "1245", "1247", "1250", "1252", "1253", 
"1254", "1255", "1256", "1258", "1260", "1261", "1265", "1271", 
"1272", "1273", "1274", "1275", "1276", "1279", "1281", "1285", 
"1287", "1288", "1290", "1291", "1296", "1302", "1304", "1306", 
"1308", "1310", "1311", "1313", "1314", "1315", "1319", "1326", 
"1337", "1341", "1343", "1346", "1348", "1352", "1353", "1358", 
"1360", "1362", "1365", "1366", "1367", "1368", "1369", "1370", 
"1371", "1372", "1375", "1380", "1382", "1385", "1386", "1392", 
"1393", "1394", "1395", "1396", "1399", "1408", "1411", "1413", 
"1415", "1416", "1421", "1422", "1423", "1425", "1431", "1433", 
"1436", "1439", "1440", "1441", "1443", "1444", "1460", "1464", 
"1467", "1470", "1475", "1476", "1477", "1479", "1481", "1482", 
"1484", "1486", "1488", "1489", "1490", "1491", "1492", "1499", 
"1500", "1501", "1502", "1505", "1509", "1511", "1513", "1515", 
"1517", "1518", "1520", "1525", "1533", "1538", "1539", "1542", 
"1543", "1549", "1550", "1553", "1554", "1558", "1561", "1568", 
"1571", "1572", "1574", "1575", "1578", "1579", "1581", "1583", 
"1586", "1590", "1593", "1595", "1597", "1600", "1603", "1604", 
"1608", "1613", "1615", "1616", "1617", "1619", "1620", "1621", 
"1622", "1624", "1629", "1633", "1635", "1637", "1638", "1639", 
"1649", "1651", "1652", "1653", "1658", "1659", "1660", "1661", 
"1666", "1674", "1675", "1680", "1682", "1687", "1689", "1691", 
"1693", "1694", "1695", "1699", "1700", "1701", "1702", "1703", 
"1706", "1707", "1710", "1712", "1713", "1714", "1716", "1717", 
"1718", "1719", "1721", "1723", "1727", "1728", "1729", "1730", 
"1732", "1733", "1734", "1735", "1737", "1740", "1744", "1750", 
"1751", "1753", "1755", "1757", "1759", "1760", "1762", "1766", 
"1770", "1773", "1774", "1775", "1777", "1778", "1779", "1782", 
"1784", "1787", "1790", "1796", "1799", "1801", "1808", "1809", 
"1810", "1811", "1812", "1813", "1814", "1818", "1819", "1820", 
"1821", "1822", "1824", "1827", "1830", "1833", "1834", "1835", 
"1837", "1841", "1844", "1853", "1854", "1857", "1858", "1860", 
"1863", "1867", "1868", "1871", "1872", "1876", "1879", "1881", 
"1883", "1884", "1886", "1890", "1891", "1892", "1893", "1897", 
"1898", "1900", "1902", "1904", "1905", "1906", "1910", "1912", 
"1913", "1917", "1918", "1919", "1920", "1921", "1922", "1923", 
"1924", "1925", "1926", "1927", "1929", "1930", "1931", "1933", 
"1935", "1936", "1939", "1941", "1942", "1945", "1949", "1954", 
"1955", "1957", "1964", "1965", "1966", "1970", "1973", "1974", 
"1975", "1976", "1978", "1979", "1984", "1985", "1987", "1988", 
"1993", "1994", "1996", "1997", "1999", "2000", "2002", "2004", 
"2005", "2007", "2008", "2009", "2010", "2017", "2018", "2022", 
"2024", "2026", "2027", "2030", "2031", "2032", "2033", "2035", 
"2036", "2037", "2039", "2040", "2044", "2047", "2048", "2049", 
"2051", "2053", "2054", "2056", "2057", "2059", "2063", "2064", 
"2065", "2066", "2067", "2069", "2071", "2073", "2075", "2077", 
"2078", "2082", "2083", "2088", "2089", "2090", "2092", "2096", 
"2097", "2099", "2100", "2109", "2110", "2113", "2114", "2116", 
"2117", "2119", "2120", "2121", "2125", "2127", "2128"), class = "factor"), 
    Study.Eye = structure(c(1L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 
    2L, 1L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 1L, 1L, 2L, 1L, 2L, 2L, 
    1L, 1L, 1L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 2L, 1L, 1L, 
    2L, 1L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 
    1L, 1L, 2L, 1L, 1L, 2L, 2L), .Label = c("1", "2"), class = "factor"), 
    Age = c(50L, 55L, 80L, 65L, 55L, 90L, 45L, 53L, 59L, 58L, 
    49L, 84L, 82L, 89L, 77L, 77L, 68L, 75L, 93L, 93L, 64L, 64L, 
    88L, 68L, 85L, 78L, 88L, 90L, 90L, 75L, 88L, 44L, 42L, 47L, 
    71L, 60L, 55L, 50L, 88L, 82L, 69L, 74L, 64L, 90L, 76L, 72L, 
    80L, 83L, 54L, 61L, 69L, 56L, 78L, 83L, 89L, 78L, 81L, 61L, 
    61L, 85L), Gender = structure(c(2L, 2L, 1L, 2L, 2L, 2L, 2L, 
    1L, 2L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 2L, 
    1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 2L, 
    2L, 1L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 
    1L, 2L, 1L, 2L, 1L, 1L, 1L, 2L), .Label = c("1", "2"), class = "factor"), 
    Disease= c(0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 
    1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 
    1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 
    1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1)), row.names = c(NA, 60L
), class = "data.frame")
example <- example %>% arrange(patient,Study.Eye)

geepack::geeglm(Disease~Age+Gender,family=binomial("logit"),id=patient,corstr="unstructured",data=example)

我收到以下错误消息

Error in `contrasts<-`(`*tmp*`, value = contr.funs[1 + isOF[nn]]) : contrasts can be applied only to factors with 2 or more levels
但是,与可交换相关性似乎相同:

example <- example %>% arrange(patient,Study.Eye) geepack::geeglm(Disease~Age+Gender,family=binomial("logit"),id=patient,corstr="exchangeable",data=example)
    
r error-handling statistics
1个回答
0
投票
这是因为您对某些患者进行了单一测量,这是非结构化相关性的问题。

非结构化相关结构估计每个簇内每对观测值的唯一相关性。如果一个簇只有一个观测值,则无法估计该簇内的相关性,从而导致错误。如果您对每个患者恰好有 2 个观察值,那么您仍然会获得与患者数量一样多的 alpha。

可交换结构:假设簇内所有观察对之间具有相同的相关性。对于所有簇,仅估计一个相关参数(alpha)(每个簇具有相同的 alpha),因此仍然可以毫无问题地包含具有单个观察值的簇

© www.soinside.com 2019 - 2024. All rights reserved.