这是我的第一篇文章,所以希望我做对了。
我在 R 中运行 polr 模型,并尝试使用 margins 包生成一些边际效应图。当我查看结果时,除了 AME 之外的所有内容都具有 NA 值。谁能帮我弄清楚我做错了什么?
这是我的结果的副本:
factor AME SE z p lower upper
Gender -0.0452 NA NA NA NA NA
IsNonwhite 0.0087 NA NA NA NA NA
PartyNumeric 0.1898 NA NA NA NA NA
PartyStrength -0.0358 NA NA NA NA NA
这是我的代码的副本:
debate <- debate %>%
mutate(UnfairIndex = as.numeric((debate$UnfairCountTrump-debate$UnfairCountBiden)))
debate<- debate%>%
mutate(AbsUnfairIndex = abs(debate$UnfairIndex))
debate <- debate %>%
mutate(X7PartyScale=case_when(debate$StrongRep ==1 ~ 3,
debate$StrongRep ==2 ~ 2,
debate$StrongDem ==1 ~ -3,
debate$StrongDem ==2 ~ -2,
debate$IndCloser ==1 ~ 1,
debate$IndCloser ==2 ~ -1,
debate$IndCloser ==3 ~ 0))
debate<- debate %>%
mutate(PartyFactor=as.factor(case_when(debate$X7PartyScale==-3 ~ "Democrat",
debate$X7PartyScale==-2 ~ "Democrat",
debate$X7PartyScale==-1 ~ "Democrat",
debate$X7PartyScale==0 ~ "Independent",
debate$X7PartyScale==1 ~ "Republican",
debate$X7PartyScale==2 ~ "Republican",
debate$X7PartyScale==3 ~ "Republican")))
debate<- debate %>%
mutate(PartyStrength= abs(debate$X7PartyScale))
debate<- debate %>%
mutate(PartyNumeric = as.numeric(PartyFactor) - 1)
interact<- polr(factor(AbsUnfairIndex) ~ PartyStrength + PartyNumeric + PartyStrength*PartyNumeric + Gender + IsNonwhite, data=debate, Hess=TRUE)
summary(interact)
interactmargins2<- margins(interact)
summary(interactmargins2)
编辑以提供数据样本:
structure(list(Consent = c(1L, 1L, 1L, 1L, 1L, 1L), Gender = c(2L,
2L, 2L, 2L, 1L, 1L), IsFemale = c(0L, 0L, NA, 0L, NA, 1L), Age = c(19L,
19L, 19L, 19L, 19L, 20L), Race = c(1L, 1L, 4L, 1L, 4L, 1L), IsNonwhite = c(0L,
0L, 1L, 0L, 1L, 0L), PartyID = c(1L, 2L, 1L, 1L, 1L, 1L), StrongDem = c(1L,
NA, 1L, 1L, 2L, 2L), StrongRep = c(NA, 1L, NA, NA, NA, NA), IndCloser = c(NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_, NA_integer_
), DemImportant = c(1L, NA, 2L, 1L, 2L, 3L), DemDescribe = c(2L,
NA, 2L, 1L, 2L, 2L), DemWeThey = c(2L, NA, 2L, 2L, 3L, 4L), DemThink = c(1L,
NA, 2L, 1L, 2L, 1L), RepImportant = c(NA, 1L, NA, NA, NA, NA),
RepDescribe = c(NA, 1L, NA, NA, NA, NA), RepWeThey = c(NA,
2L, NA, NA, NA, NA), RepThink = c(NA, 1L, NA, NA, NA, NA),
FeelingThermTrump = c(0L, 100L, 0L, 0L, 0L, NA), FeelingThermBiden = c(64L,
NA, 100L, 95L, 50L, 100L), WatchLive = c(1L, 1L, 1L, 1L,
1L, 1L), WatchAfter = c(1L, 1L, 1L, 1L, 1L, 1L), WatchDebate = structure(c(2L,
2L, 2L, 2L, 2L, 2L), .Label = c("", "WatchAll", "WatchNone",
"WatchSome"), class = "factor"), FollowCoverage = c(1L, 1L,
1L, 1L, 2L, 1L), FairnessHonesty = c(4L, 2L, 5L, 4L, 5L,
4L), WhoUnfair = structure(c(5L, 4L, 6L, 5L, 9L, 5L), .Label = c("",
"1,2", "1,2,3", "1,3", "2", "2,3", "3", "3,4", "4"), class = "factor"),
WhoDishonest = structure(c(6L, 2L, 6L, 6L, 5L, 6L), .Label = c("",
"Biden", "Moderator", "More than one", "Not Sure", "Trump"
), class = "factor"), TrumpFairnessRater = c(0L, 9L, 1L,
2L, 5L, NA), BidenFairnessRater = c(7L, 2L, 9L, 7L, 5L, 10L
), WallaceFairnessRater = c(10L, 2L, 6L, 4L, 8L, 10L), TrumpHonestyRater = c(1L,
10L, 1L, 2L, 5L, NA), BidenHonestyRater = c(6L, 2L, 9L, 10L,
5L, 10L), WallaceHonestyRater = c(10L, 0L, 6L, 8L, 8L, 10L
), Voting1 = c(1L, 1L, 1L, 1L, 1L, 1L), WhoVote1 = c(2L,
1L, 2L, 2L, 2L, 2L), WhoVoteLean1 = c(NA_integer_, NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_), TrustGov = c(3L,
3L, 4L, 3L, 2L, 5L), Q4_First.Click = c(14.215, 460.794,
160.691, 0, 8.308, 0), Q4_Last.Click = c(356.559, 461.175,
407.781, 0, 104.224, 0), Q4_Page.Submit = c(390.864, 461.601,
414.195, 449.768, 415.194, 414.337), Q4_Click.Count = c(24L,
2L, 8L, 0L, 3L, 0L), BidenInterruptTrump = c(21L, 19L, 21L,
22L, 20L, 25L), TrumpInterruptBiden = c(19L, 21L, 19L, 19L,
19L, 19L), ModeratorInterruptTrump = c(24L, 20L, 22L, 20L,
19L, 25L), ModeratorInterruptBiden = c(24L, 24L, 20L, 21L,
21L, 21L), BidenAggressive = c(20L, 18L, 22L, 20L, 20L, 24L
), TrumpAggressive = c(18L, 19L, 18L, 18L, 18L, 18L), ModeratorAggressivetoTrump = c(20L,
19L, 20L, 19L, 19L, 19L), ModeratorAggressivetoBiden = c(22L,
23L, 20L, 21L, 20L, 21L), BidenLie = c(8L, 6L, 8L, 9L, 9L,
8L), TrumpLie = c(8L, 11L, 8L, 10L, 10L, 8L), BidenMischarTrump = c(12L,
12L, 14L, 10L, 12L, 15L), TrumpMischarBiden = c(9L, 12L,
9L, 10L, 11L, 9L), ModeratorFavorTrump = c(13L, 14L, 10L,
13L, 11L, 12L), ModeratorFavorBiden = c(11L, 8L, 11L, 9L,
11L, 10L), UnfairCountTrump = c(3L, 4L, 4L, 2L, 1L, 1L),
UnfairCountBiden = c(5L, 2L, 5L, 3L, 2L, 5L), WhoVote2 = c(2L,
1L, 2L, 2L, 2L, 2L), WhoVoteLean2 = c(NA_integer_, NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_), TrustGov.1 = c(3L,
3L, 4L, 3L, 3L, 3L), OfficialsCare = c(3L, 3L, 3L, 3L, 5L,
7L), LoseTouch = c(2L, 4L, 1L, 3L, 3L, 2L), OnlyCareVotes = c(2L,
4L, 1L, 4L, 2L, 1L)), row.names = c(NA, 6L), class = "data.frame")