2 Changed Function to Filter
source | link

PowerShell Core, 134134128 bytes

FunctionFilter F($o){$p=($o$_-creplace"[^A-Z]",'').Length/($o$_-replace"[^a-z]",'').Length;$l=1-$p;(.({"$p upp"},{"$l low"})[$p-lt$l])+"ercase"}

Try it online!Try it online!

Thanks, Veskah, for saving six bytes by converting the function to a filter!

PowerShell Core, 134 bytes

Function F($o){$p=($o-creplace"[^A-Z]",'').Length/($o-replace"[^a-z]",'').Length;$l=1-$p;(.({"$p upp"},{"$l low"})[$p-lt$l])+"ercase"}

Try it online!

PowerShell Core, 134128 bytes

Filter F{$p=($_-creplace"[^A-Z]",'').Length/($_-replace"[^a-z]",'').Length;$l=1-$p;(.({"$p upp"},{"$l low"})[$p-lt$l])+"ercase"}

Try it online!

Thanks, Veskah, for saving six bytes by converting the function to a filter!

1
source | link

PowerShell Core, 134 bytes

Function F($o){$p=($o-creplace"[^A-Z]",'').Length/($o-replace"[^a-z]",'').Length;$l=1-$p;(.({"$p upp"},{"$l low"})[$p-lt$l])+"ercase"}

Try it online!