What explanations are there for a rug steadily creeping at about a millimeter/day rate across a room? I have bought a handmade rug of size 1.5 $\times$ 2m. About 1-2 weeks ago I noticed the rug was not in the center of my room and it had moved a bit. I thought maybe because I walked on it, it has moved. I put it in its place and it happened again and again.
It moves about 1 millimeter each day; I placed a marker on the floor so I can calculate the distance it moves. I avoid walking on it so my steps don't move it.
What reason can be causing this rug to move? Can a magnetic field be the reason? It is a handmade rug made of animal fur, like wool. I used my smartphone to find if any magnetic field exists near the rug and I see $40\text{-}50\:\mu\mathrm{T}$ which is close to the Earth's magnetic field. I used an app with an orientation sensor and the floor is level, so that Earth's gravity can't be moving the rug.
I have no pet, no maid, no room mate. Nobody can prank me or move this rug.
 A: It is probably creeping.  This is often because of thermal (or humidity) cycling.  Essentially, the rug and the floor are going through some thermal or humidity cycle (over the course of the day usually).  During this cycle their sizes change slightly relative to each other.  And different bits of the rug stick to the floor at different parts of the cycle, which causes it to creep along the floor.
So imagine a cycle where the rug gets larger and then returns to its original size.  Now imagine that, while the rug is growing, its left-hand edge (viewed from some direction) doesn't move with respect to the floor (it is the sticky bit of the rug in this part of the cycle).  So when it is at its largest, the left hand edge is where it was, but the right hand edge has moved right.  Now, when it shrinks, suppose that its right hand edge now sticks to the floor: it will then drag its left hand edge rightwards. At the end of the cycle it has moved right.
This changing in relative size can either be through differing thermal expansion constants, differing temperatures (the rug will see temperature changes sooner than the floor, and indeed will insulate the floor from them) or through one or both of the objects having differing responses to humidity changes.
In particular if the rug is hand-made as you say it is, it is quite likely also made from wool or cotton, both of which experience quite significant size changes with humidity.  And probably you are only in the room for part of the day so there's a whacking great humidity cycle going on because of your breath.
The differential-slipping thing can be caused by things like the structure of the cloth: if there are lots of hairs sticking in one direction under the rug then it will 'want to' move one way, and will creep.  You can often check this by just trying to slide it around.  See user40292's answer for more on this mechanism.
The solution is some kind of underlay: something which has enough friction between both the rug and the floor to stop it moving.  You can buy this stuff, as this is quite a common problem.
A: rugs woven by machine often exhibit a built-in anisotropy in the direction of the fiber "lay" within the rug's structure: rather than being perfectly perpendicular to the plane in which the rug lies, the fibers in the rug are all tilted slightly in one direction. This is manifestly apparent if you run a vacuum cleaner head back and forth across the surface of such a rug: the vacuum cleaner head will be deflected off a straight path and persistently skate sideways.
If that fiber lay is present on the backside of the rug, then vibrations from the floor or the action of walking across the rug will flex the fibers and urge the rug to creep in one direction. 
toys have been designed to exploit this creep phenomenon: a little piece of stiff, rough cloth with a uniform tilt to the bristles in it will "magically" scoot across a smooth vibrating surface at a speed proportional to the strength of the vibrations. 
