You are just too good man!
Quick Question

High rating based upon analysis doesn't necessarily indicate cheating; it could be you did a move that chess.com considered brilliant, and mistook your level.

if you want to improve, dont play against bots.
That doesn't seem to be of any relevance to the forum subject...
Also, since we're on the topic: bots DO help your improve.

This is the game: https://www.chess.com/analysis/game/computer/79850763?tab=review

Looking at the game in your profile, you played a lot of good moves - especially at the start - and a number of book moves in the opening. You played well in the other stages of the game too, but naturally, the Hikaru bot overpowered you.
So, I see why the computer said 2000. It's because you played quite well and were up against a super good opponent, so it had trouble discerning how much of a difference there was between both of your guys' levels. Anyways, it's one game though, which means it is likely more of an outlier than a standard.

I agree with @savageoppress; you did various good moves that seemingly were considered overrated by the analysis computer.

Looking at the game in your profile, you played a lot of good moves - especially at the start - and a number of book moves in the opening. You played well in the other stages of the game too, but naturally, the Hikaru bot overpowered you.
So, I see why the computer said 2000. It's because you played quite well and were up against a super good opponent, so it had trouble discerning how much of a difference there was between both of your guys' levels. Anyways, it's one game though, which means it is likely more of an outlier than a standard.
But this game I played against a real person says I'm estimated to be 1050. I'm confused https://www.chess.com/analysis/game/live/84202897527?tab=review

700s are 700s cause they make blunders and these mistakes are actually reeeeeeeeeeeeally great moves and drives you to death if you didn't punish them properly . put engines play straight forward and you won't lode that hard against them . maybe that is the reason that you can play against the bots so well. however Iam 1500 and even in my level if I didn't punish my opponents mistakes am ton getting any higher[a good thing to know is even 1900s make mistakes so if you learn how to think and play the most forcing and moves you'll win soooooooooooo easily] والسلام عليكم

Because in this game, you played lesser good moves as opposed to the game you played against the bot. No offense. This causes the rating to severely decrease.

Because the real person's rating is 677.
I already told you the answer, the algo works off your opponents rating.
Play exactly the same game and draw against a 1000 and a 2000 and chess.com will rate you your play 1000 higher in the second game.

Looking at the game in your profile, you played a lot of good moves - especially at the start - and a number of book moves in the opening. You played well in the other stages of the game too, but naturally, the Hikaru bot overpowered you.
So, I see why the computer said 2000. It's because you played quite well and were up against a super good opponent, so it had trouble discerning how much of a difference there was between both of your guys' levels. Anyways, it's one game though, which means it is likely more of an outlier than a standard.
But this game I played against a real person says I'm estimated to be 1050. I'm confused https://www.chess.com/analysis/game/live/84202897527?tab=review
Peoples' performances vary, and so will their level and rating they play at in each game. The Elo you have is the Elo you have. If you're consistently playing better than it, then that may be a sign of future improvement.
However, I would recommend remembering that this tool is flawed, and there are gonna be a lot of outliers in both directions. Once again, your actual rating is generally a much more trustworthy tool than this is.

its a bot hikaru wouldve destroyed u izily (no offense) if u played the real hikaru
nope. check out this game https://www.chess.com/game/computer/79878457

I play w/ an 500 elo, it says me 1k elo; I play w/ 1900 elo, it says me 2000 elo.
It isn't only based on your elo, but also your opponent's

Those rating estimates can vary considerably from one game to another. They're more of a "did I play a good game?" scorecard than an accurate estimate of the level of understanding demonstrated by your play in the game.
Like accuracy scores, they can often be highly inflated in long, straightforward endgames or games decided by an early game-losing blunder. And they can be too low in highly complex games because blunders are inevitable in highly complex positions.
I don't consider it to be remotely useful for cheat detection.
I played against the Hikaru Nakamura bot and I lost but it says I'm around 2000 ELO and I swear I didn't cheat, but I'm in the 700s, and when I battle a real person that's my level, it says I'm like 800-1000. Why is this?